From 1fc8ecf76bb72ea7f0cbd04b1252c65dbd804051 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Fri, 25 Sep 2020 02:58:42 +0100 Subject: [PATCH] Makefile: Rewrite to be less awful. --- Makefile | 110 ++++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 74 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index 96a6d44..f5045ea 100644 --- a/Makefile +++ b/Makefile @@ -1,40 +1,78 @@ -## Makefile for texmf stuff +### -*-makefile-*- +### Makefile for texmf stuff -texmf = $(HOME)/texmf -bibtexdir = $(texmf)/bibtex -bibdir = $(bibtexdir)/bib -bstdir = $(bibtexdir)/bst -texdir = $(texmf)/tex -latexdir = $(texdir)/latex -fontinstdir = $(texdir)/fontinst +all:: +.PHONY: all + +install:: +uninstall:: +.PHONY: install uninstall + +clean:: +.PHONY: clean + +.SECONDEXPANSION: #sorry + +V ?= 0 +if_v = $(call if_v_$V,$1,$2) +if_v_0 = $1 +if_v_1 = $2 +V_AT = $(call if_v,@,) +v_tag = \ + $(call if_v,@printf " %-8s %s\n" "$1" "$(or $2,$@)";,) + +texmfdir = $(HOME)/texmf + +INSTALLDIRS += bib bst +bibtexdir = $(texmfdir)/bibtex +bibdir = $(bibtexdir)/bib +bstdir = $(bibtexdir)/bst + +INSTALLDIRS += latex +texdir = $(texmfdir)/tex +latexdir = $(texdir)/latex + +INSTALLDIRS += fontinst +fontinstdir = $(texdir)/fontinst default: all -INSTALL_TARGETS = \ - $(latexdir)/po.sty \ - $(latexdir)/babelbst.tex $(bstdir)/mdwalpha.bst \ - $(bibdir)/mdw-crypto.bib $(bibdir)/mdw-fixes.bib \ - $(fontinstdir)/zrhax.mtx \ - $(fontinstdir)/zrmhax.mtx \ - $(fontinstdir)/zrmkern.mtx \ - $(fontinstdir)/zrvhax.mtx \ - $(fontinstdir)/zryhax.mtx - -install: $(INSTALL_TARGETS) $(texmf)/ls-R -all: babelbst.tex mdwalpha.bst - -$(texmf)/ls-R: $(INSTALL_TARGETS); mktexlsr $(texmf) -$(texdir) $(latexdir) $(bibtexdir) $(bibdir) $(bstdir) $(fontinstdir): %: - mkdir -p $@ -$(latexdir)/%: % $(latexdir); cp $< $@ -$(fontinstdir)/%: % $(fontinstdir); cp $< $@ -$(bibdir)/%: % $(bibdir); cp $< $@ -$(bstdir)/%: % $(bstdir); cp $< $@ - -babelbst.tex mdwalpha.bst: mdwalpha.dbj - rm -f babelbst.tex mdwalpha.bst - tex '\let\ifbatching\iftrue \input mdwalpha.dbj' - -clean:; rm -f mdwalpha.bst babelbst.tex *.log *.bix - -.PHONY: all install clean +latex_FILES += po.sty +latex_FILES += babelbst.tex + +bib_FILES += mdw-crypto.bib mdw-fixes.bib +bst_FILES += mdwalpha.bst + +fontinst_FILES += zrmkern.mtx +fontinst_FILES += zrhax.mtx zrmhax.mtx zrvhax.mtx zryhax.mtx + +CLEANFILES += *.log + +TARGETS += babelbst.tex mdwalpha.bst +CLEANFILES += *.bix +babelbst.tex: mdwalpha.bst +mdwalpha.bst: mdwalpha.dbj + $(V_AT)rm -f babelbst.tex mdwalpha.bst + $(call v_tag,TEX)tex \ + $(call if_v,>/dev/null --interaction=batchmode) \ + '\let\ifbatching\iftrue \input mdwalpha.dbj' + +INSTALL_RULES = $(foreach d,$(INSTALLDIRS), install/$d) +install:: $(INSTALL_RULES) + mktexlsr $(texmfdir) +$(INSTALL_RULES): install/%: $$($$*_FILES) + $(V_AT)mkdir -p $(DESTDIR)$($*dir) + $(call v_tag,INST,$($*dir): $($*_FILES))\ + cp $+ $(DESTDIR)$($*dir)/ +.PHONY: $(INSTALL_RULES) + +UNINSTALL_RULES = $(foreach d,$(INSTALLDIRS), uninstall/$d) +uninstall:: $(UNINSTALL_RULES) + mktexlsr $(texmfdir) +$(UNINSTALL_RULES): uninstall/%: $$($$*_FILES) + $(call v_tag,RM,$($*dir): $($*_FILES))\ + rm -f $(foreach f,$($*_FILES), $(DESTDIR)$($*dir)/$f) +.PHONY: $(UNINSTALL_RULES) + +all:: $(TARGETS) +clean::; rm -f $(CLEANFILES) $(TARGETS) -- 2.11.0