summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--Makefile67
1 files changed, 53 insertions, 14 deletions
diff --git a/Makefile b/Makefile
index bfdb50a..3f384c6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,60 @@
-.PHONY: default backend tmpl frontend docs sql iadocs
+# TODO: Use some variables to clean up the massive documentation file specifiers
-default: backend tmpl frontend docs sql iadocs
+.PHONY: cca default minifier iadocs docs build_iadocs build_docs
-backend:
- make -C backend
+default: dist/cca docs iadocs
-tmpl:
- make -C tmpl
+cca: dist/cca
-frontend:
- make -C frontend
+docs: dist/docs/admin_handbook.html dist/docs/handbook.css dist/docs/cca.scfg.example
-docs:
- make -C docs
+iadocs: dist/iadocs/cover_page.htm dist/iadocs/appendix.pdf dist/iadocs/crita_planning.pdf dist/iadocs/critb_design.pdf dist/iadocs/critb_recordoftasks.pdf dist/iadocs/critc_development.pdf dist/iadocs/critd_functionality.pdf dist/iadocs/crite_evaluation.pdf
-sql:
- make -C sql
+# Final binary which tries to embed stuff
+dist/cca: *.go build/static/style.css build/static/student.js tmpl/* build/docs/admin_handbook.html build/docs/handbook.css build/docs/cca.scfg.example build/iadocs/cover_page.htm build/iadocs/appendix.pdf build/iadocs/crita_planning.pdf build/iadocs/critb_design.pdf build/iadocs/critb_recordoftasks.pdf build/iadocs/critc_development.pdf build/iadocs/critd_functionality.pdf build/iadocs/crite_evaluation.pdf
+ mkdir -p dist
+ go build -o $@
-iadocs:
- make -C iadocs
+# Documentation
+dist/docs/%: build/docs/%
+ mkdir -p dist/docs
+ cp $< $@
+build/docs/%.html: docs/%.html
+ mkdir -p build/docs
+ minify --html-keep-end-tags --html-keep-document-tags -o $@ $<
+build/docs/handbook.css: docs/handbook.css
+ mkdir -p build/docs
+ minify -o $@ $<
+build/docs/cca.scfg.example: docs/cca.scfg.example
+ mkdir -p build/docs
+ cp $< $@
+
+# IA documentation
+dist/iadocs/%.pdf: build/iadocs/%.pdf
+ mkdir -p dist/iadocs
+ cp $< $@
+dist/iadocs/%.htm: build/iadocs/%.htm
+ mkdir -p dist/iadocs
+ cp $< $@
+build/iadocs/%.htm: iadocs/%.htm
+ mkdir -p build/iadocs
+ minify --html-keep-end-tags --html-keep-document-tags -o $@ $<
+build/iadocs/%.pdf: iadocs/%.tex build/iadocs/header.inc
+ mkdir -p build/iadocs
+ lualatex -output-directory=build/iadocs $<
+ lualatex -output-directory=build/iadocs $<
+build/iadocs/%.inc: iadocs/%.inc
+ mkdir -p build/iadocs
+ cp $< $@
+
+# Temporary files in build/ to be embedded into the final binary
+build/static/style.css: frontend/style.css
+ mkdir -p build/static
+ minify -o $@ $<
+build/static/student.js: frontend/student.js
+ mkdir -p build/static
+ minify -o $@ $<
+
+# External dependencies
+minifier:
+ go install github.com/tdewolff/minify/v2/cmd/minify@latest