-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
+latex_FILES += beamerthememdw.sty
+
+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)