beamerthememdw.sty: My own theme for presentations.
[doc/texmf] / Makefile
index d300d22..2a6b446 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,79 @@
-## 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
+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-crypto.bix
+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
 
-install: $(INSTALL_TARGETS) $(texmf)/ls-R
-all: babelbst.tex mdwalpha.bst mdw-crypto.bix
+CLEANFILES             += *.log
 
-$(texmf)/ls-R: $(INSTALL_TARGETS); mktexlsr $(texmf)
-$(texdir) $(latexdir) $(bibtexdir) $(bibdir) $(bstdir): %:; mkdir -p $@
-$(latexdir)/%: % $(latexdir); cp $< $@
-$(bibdir)/%: % $(bibdir); cp $< $@
-$(bstdir)/%: % $(bstdir); cp $< $@
-%.bix: %.bib; bibindex $<
+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'
 
-babelbst.tex mdwalpha.bst: mdwalpha.dbj
-       rm -f babelbst.tex mdwalpha.bst
-       tex '\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)
 
-clean:; rm -f mdwalpha.bst babelbst.tex *.log *.bix
+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)
 
-.PHONY: all install clean
+all:: $(TARGETS)
+clean::; rm -f $(CLEANFILES) $(TARGETS)