aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: a6b777f30dfafa1cd06474e10451cb8ff79873eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PREFIX ?= /usr/local

LUA ?= lua5.2
LUAC ?= luac5.2

COMPLETIONSDIR ?= $(shell pkg-config --variable=completionsdir bash-completion)

all : openrussian openrussian-sqlite3.db

openrussian : openrussian.lua
	echo "#!$(shell which $(LUA))" >$@
	$(LUAC) -o - $< >>$@
	chmod a+x $@

# Marking the ZIP intermediate makes sure it is automatically deleted after
# generating the SQLite database while we don't always re-download it.
# Effectively, it will behave like a temporary file.
# NOTE: This is disabled for the time being since the database schema changes
# from time to time, so a rebuild could easily break the script.
# Instead, we add the file to Git, so every clone is guaranteed to contain
# a database matching the openrussian.lua script.
#.INTERMEDIATE: openrussian-sql.zip
openrussian-sql.zip:
	wget -O $@ 'https://en.openrussian.org/downloads/openrussian-sql.zip'

openrussian-sqlite3.db : openrussian-sql.zip mysql2sqlite postprocess.sql
	$(RM) $@
	unzip -p $< openrussian.sql | ./mysql2sqlite - | sqlite3 $@
	sqlite3 $@ -batch <postprocess.sql

# NOTE: Installation of the Bash completions depends on the Debain bash-completion
# package being installed or something similar
install : openrussian openrussian-sqlite3.db openrussian-completion.bash
	mkdir -p $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PREFIX)/share/openrussian
	install openrussian $(DESTDIR)$(PREFIX)/bin
	cp openrussian-sqlite3.db $(DESTDIR)$(PREFIX)/share/openrussian
	cp openrussian-completion.bash $(DESTDIR)$(COMPLETIONSDIR)/openrussian

clean:
	$(RM) openrussian openrussian-sql.zip openrussian-sqlite3.db