nix-book/Makefile
Amy de Buitléir abeb0f63cd initial commit
2023-06-12 17:55:05 +01:00

32 lines
1.3 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Tab characters are invisible evil. Use a different prefix in recipes.
.RECIPEPREFIX = >
# The operator != is not negation; it executes a shell script and sets a variable to its output.
STATIC_ADOC_FILES != find source -name '*.adoc'
GENERATED_ADOC_FILES != find source -name '*.adoc0' | sed 's/\.adoc0/-generated.adoc/'
ADOC_FILES = $(STATIC_ADOC_FILES) $(GENERATED_ADOC_FILES)
MAIN_ADOC_FILE = source/book.adoc
.PHONY: debug
debug :
> @echo "STATIC_ADOC_FILES=$(STATIC_ADOC_FILES)"
> @echo "GENERATED_ADOC_FILES=$(GENERATED_ADOC_FILES)"
> @echo "ADOC_FILES=$(ADOC_FILES)"
.PHONY: html
html : index.html
# Files with the "adoc0" extension contain code that must be executed and included in order to generate asciidoc files.
# My "run-code-inline" script is available at https://github.com/mhwombat/bin/blob/master/run-code-inline.
# We want to treat any paths in commands as relative to the adoc0 file, so we cd to its directory.
# The "dir" and "notdir" functions extract the directory and base filename from a path, respectively.
%-generated.adoc : %.adoc0
> cd $(dir $@); run-code-inline < $(notdir $<) 2>&1 | tee $(notdir $@)
index.html : $(ADOC_FILES)
> asciidoctor -b html5 -d book -o $@ $(MAIN_ADOC_FILE)
.PHONY: clean
clean :
> rm -rf $(GENERATED_ADOC_FILES) hello-python