ethica

Spinozas ethics and various translations, edited for easy post processing.
git clone https://git.repetitions.de/ethica

makefile (1480B)


 1 LISP=sbcl
 2 
 3 BUILD_DIR=./build
 4 DATA_DIR=./data
 5 TEMPLATE_DIR=./html
 6 
 7 SRC_DIRS=$(DATA_DIR) $(TEMPLATE_DIR) ./lisp ./assets
 8 
 9 FILES=makefile readme.md
10 ARCHIVE=$(BUILD_DIR)/ethica.zip
11 
12 GEN=lisp/bin/ethicagen
13 
14 VERSIONS=la_spinoza en_elwes de_stern de_auerbach fr_saisset fr_appuhn
15 HTML = $(foreach v, $(VERSIONS), $(BUILD_DIR)/$(v).html)
16 
17 .PHONY: all deploy clean
18 
19 all: $(HTML) $(BUILD_DIR)/assets
20 
21 $(BUILD_DIR):
22 	@echo ---
23 	@echo Create build directory.
24 	@echo
25 	mkdir -p $@
26 	@echo ---
27 
28 $(BUILD_DIR)/assets: $(BUILD_DIR)
29 	@echo ---
30 	@echo Link assets.
31 	@echo
32 	ln -sfr assets -t $(BUILD_DIR)
33 	@echo ---
34 
35 $(HTML) &: $(DATA_DIR)/* $(DATA_DIR)/meta.json $(TEMPLATE_DIR) $(GEN) $(BUILD_DIR)
36 	@echo ---
37 	@echo Generating HTML files.
38 	@echo
39 	$(GEN) --data-dir $(DATA_DIR)/\
40 		--build-dir $(BUILD_DIR)/\
41 		--template-dir $(TEMPLATE_DIR)/\
42 		-- $(VERSIONS)
43 	@echo ---
44 
45 $(ARCHIVE): $(SRC_DIRS) $(FILES) $(BUILD_DIR)
46 	@echo ---
47 	@echo Generating source archive.
48 	@echo
49 	git archive main -o $@
50 	@echo ---
51 
52 $(GEN): lisp/lou.spinoza.ethica.asd lisp/ethics.lisp
53 	@echo ---
54 	@echo Compiling LISP.
55 	@echo
56 	$(LISP) --load 'lisp/lou.spinoza.ethica.asd'\
57 		--eval '(ql:quickload :lou.spinoza.ethica)'\
58 		--eval '(asdf:make :lou.spinoza.ethica)'\
59 		--eval '(quit)'
60 	@echo ---
61 
62 deploy: $(ARCHIVE) all
63 	@echo ---
64 	@echo Uploading files.
65 	@echo
66 	rsync -vrL --delete $(BUILD_DIR)/ repetitions:~/ethica
67 	@echo ---
68 
69 clean:
70 	@echo ---
71 	@echo Cleaning directory.
72 	@echo
73 	rm -R $(BUILD_DIR)
74 	rm -R lisp/bin
75 	@echo ---
76