diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6ebf497 --- /dev/null +++ b/Makefile @@ -0,0 +1,93 @@ +# Makefile for luaextra. + +NAME = luaextra +DTX = $(wildcard *.dtx) +DOC_DTX = $(patsubst %.dtx, %.pdf, $(DTX)) +EXTRA = $(wildcard luaextra-*.lua) + +# Files grouped by generation mode +UNPACKED= luaextra.lua +COMPILED = $(DOC_DTX) +GENERATED = $(UNPACKED) $(DOC_DTX) +SOURCE = $(DTX) $(EXTRA) README Makefile News + +# Files grouped by installation location +RUNFILES = $(UNPACKED) $(EXTRA) +DOCFILES = $(DOC_DTX) README News +SRCFILES = $(DTX) $(SRC_TEX) Makefile + +# The following definitions should be equivalent +# ALL_FILES = $(RUNFILES) $(DOCFILES) $(SRCFILES) +ALL_FILES = $(GENERATED) $(SOURCE) + +# Installation locations +FORMAT = luatex +RUNDIR = $(TEXMFROOT)/tex/$(FORMAT)/$(NAME) +DOCDIR = $(TEXMFROOT)/doc/$(FORMAT)/$(NAME) +SRCDIR = $(TEXMFROOT)/source/$(FORMAT)/$(NAME) +TEXMFROOT = ./texmf + +CTAN_ZIP = $(NAME).zip +TDS_ZIP = $(NAME).tds.zip +ZIPS = $(CTAN_ZIP) $(TDS_ZIP) + +DO_TEX = tex --interaction=batchmode $< >/dev/null +DO_PDFLATEX = pdflatex --interaction=batchmode $< >/dev/null +DO_PDFLUALATEX = pdflualatex --interaction=batchmode $< >/dev/null +DO_MAKEINDEX = makeindex -s gind.ist $(subst .dtx,,$<) >/dev/null 2>&1 + +all: $(GENERATED) $(DOC_TEX) +doc: $(COMPILED) +unpack: $(UNPACKED) +ctan: $(CTAN_ZIP) +tds: $(TDS_ZIP) +world: all ctan +.PHONY: all doc unpack ctan tds world + +%.pdf: %.dtx + $(DO_PDFLATEX) + $(DO_MAKEINDEX) + $(DO_PDFLATEX) + $(DO_PDFLATEX) + +$(UNPACKED): luaextra.dtx + $(DO_TEX) + +$(CTAN_ZIP): $(SOURCE) $(COMPILED) $(TDS_ZIP) + @echo "Making $@ for CTAN upload." + @$(RM) -- $@ + @zip -9 $@ $^ >/dev/null + +define run-install +@mkdir -p $(RUNDIR) && cp $(RUNFILES) $(RUNDIR) +@mkdir -p $(DOCDIR) && cp $(DOCFILES) $(DOCDIR) +@mkdir -p $(SRCDIR) && cp $(SRCFILES) $(SRCDIR) +endef + +$(TDS_ZIP): TEXMFROOT=./tmp-texmf +$(TDS_ZIP): $(ALL_FILES) + @echo "Making TDS-ready archive $@." + @$(RM) -- $@ + $(run-install) + @cd $(TEXMFROOT) && zip -9 ../$@ -r . >/dev/null + @$(RM) -r -- $(TEXMFROOT) + +.PHONY: install manifest clean mrproper + +install: $(ALL_FILES) + @echo "Installing in '$(TEXMFROOT)'." + $(run-install) + +manifest: + @echo "Source files:" + @for f in $(SOURCE); do echo $$f; done + @echo "" + @echo "Derived files:" + @for f in $(GENERATED); do echo $$f; done + +clean: + @$(RM) -- *.log *.aux *.toc *.idx *.ind *.ilg + +mrproper: clean + @$(RM) -- $(GENERATED) $(ZIPS) + |