Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. TOOLS_DIR := ./tools
  2. DST_DIR := ./_dst
  3. PUBLISH_DIR := ./_publish
  4. DOCSET_TMP_DIR := ./_docset_tmp
  5. DOCSET_DST_DIR := ./Elvish.docset
  6. MDS := home.md $(filter-out %/README.md,$(wildcard [^_]*/*.md))
  7. HTMLS := $(MDS:.md=.html)
  8. TOOLS := highlight macros elvdoc genblog
  9. default: gen
  10. %.html: %.md $(TOOL_BINARIES) $(TOOLS_DIR)/md-to-html
  11. $(TOOLS_DIR)/md-to-html $< $@
  12. # Generates the website into the dst directory.
  13. gen: tools $(HTMLS)
  14. $(TOOLS_DIR)/genblog.bin . $(DST_DIR)
  15. ln -sf `pwd`/fonts `pwd`/favicons/* $(DST_DIR)/
  16. rm -f $(DST_DIR)/fonts.css # clean up leftover fonts.css
  17. # Generates docset into Elvish.docset.
  18. docset: tools $(HTMLS)
  19. ELVISH_DOCSET_MODE=1 $(TOOLS_DIR)/genblog.bin . $(DOCSET_TMP_DIR)
  20. ./tools/mkdocset $(DOCSET_TMP_DIR) $(DOCSET_DST_DIR)
  21. tools:
  22. for tool in $(TOOLS); do \
  23. go build -o $(TOOLS_DIR)/$$tool.bin ./cmd/$$tool; \
  24. done
  25. genblog:
  26. : # a nop, kept for backward compatibility with elves/up
  27. # Synchronizes the generated website into $(PUBLISH_DIR). The PUBLISH_DIR
  28. # environment variable can be overridden to a remote place to publish this online.
  29. publish: gen
  30. rsync -aLv --delete ./_dst/ $(PUBLISH_DIR)/
  31. clean:
  32. rm -f $(HTMLS) _tools/*.bin
  33. rm -rf $(DST_DIR) $(DOCSET_TMP_DIR) $(DOCSET_DST_DIR)
  34. .PHONY: default gen tools genblog publish clean
  35. .SECONDARY: $(TOOL_BINARIES)