makefile 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Environment vars
  2. DIST_DIR := dist
  3. # Computed vars
  4. SRC_HTMLS := $(shell find src -name '*.src.html')
  5. SRC_MDS := $(shell find src -name '*.src.md')
  6. SRC_TEMPLATES := $(shell find src/templates -name '*.html')
  7. GEN_HTMLS := $(SRC_HTMLS:%.src.html=%.gen.html)
  8. GEN_MDS := $(SRC_MDS:%.src.md=%.gen.html)
  9. GEN_FILES := $(GEN_HTMLS) $(GEN_MDS)
  10. INCLUDED_FILES := $(shell find src/include -type f)
  11. DOWNLOAD_FILES := $(shell find src/download -type f)
  12. EMBEDDED_FILES := $(shell find src -name '*.png' -type f)
  13. DIST_GEN_FILES := $(GEN_FILES:src/%.gen.html=$(DIST_DIR)/%.html)
  14. DIST_INC_FILES := $(INCLUDED_FILES:src/%=$(DIST_DIR)/%)
  15. DIST_DWN_FILES := $(DOWNLOAD_FILES:src/%=$(DIST_DIR)/%)
  16. DIST_EMB_FILES := $(EMBEDDED_FILES:src/%=$(DIST_DIR)/%)
  17. DIST_FILES := $(DIST_GEN_FILES) $(DIST_INC_FILES) $(DIST_DWN_FILES) $(DIST_EMB_FILES) $(DIST_DIR)/favicon.ico
  18. PANDOC_GEN := pandoc --standalone --wrap=none --template src/templates/main.html --metadata-file src/meta.yml
  19. .PHONY: build dist
  20. build: $(GEN_FILES)
  21. $(info HTML generated)
  22. %.gen.html: %.src.html $(SRC_TEMPLATES)
  23. $(PANDOC_GEN) --output $@ $<
  24. %.gen.html: %.src.md $(SRC_TEMPLATES)
  25. $(PANDOC_GEN) --output $@ $<
  26. dist: $(DIST_DIR)
  27. $(info Distributed folder generated)
  28. $(DIST_DIR): $(DIST_FILES)
  29. $(DIST_DIR)/include/%: src/include/%
  30. mkdir --parents $(dir $@)
  31. cp $< $@
  32. $(DIST_DIR)/download/%: src/download/%
  33. mkdir --parents $(dir $@)
  34. cp $< $@
  35. $(DIST_DIR)/%.html: src/%.gen.html
  36. mkdir --parents $(dir $@)
  37. cp $< $@
  38. $(DIST_DIR)/%.png: src/%.png
  39. mkdir --parents $(dir $@)
  40. cp $< $@
  41. $(DIST_DIR)/favicon.ico: src/favicon.ico
  42. cp $< $@
  43. .PHONY: clean
  44. clean:
  45. rm -f $(GEN_FILES)
  46. clean-dist:
  47. rm -rf $(DIST_DIR)/*
  48. .PHONY: debug
  49. debug:
  50. $(info SRC_HTMLS $(SRC_HTMLS))
  51. $(info SRC_MDS $(SRC_MDS))
  52. $(info SRC_TEMPLATES $(SRC_TEMPLATES))
  53. $(info GEN_HTMLS $(GEN_HTMLS))
  54. $(info GEN_MDS $(GEN_MDS))
  55. $(info GEN_FILES $(GEN_FILES))
  56. $(info INCLUDED_FILES $(INCLUDED_FILES))
  57. $(info DOWNLOAD_FILES $(DOWNLOAD_FILES))
  58. $(info EMBEDDED_FILES $(EMBEDDED_FILES))
  59. $(info DIST_FILES $(DIST_FILES))