################################################################ # make a zip for CTAN submission including the TeX directory structure. # # The overall procedure is to run make in this directory $(HERE) and then # export it to a temporary directory $(EXPORTED) without all the generated # files. On this directory we run "make ctanext" (see below) which makes a # CTAN-compliant directory structure, and zips it up to the file # .ctan.zip which can be submitted to the CTAN maintainers. # # Note that part of the CTAN submission is a zip file with a TDS-compliant # directory struture, which is generated by running "make tdsext" (see below) # on $(EXPORTED). # # Note furthermore, that this Makefile only automates the top-level mechanics # of the CTAN zip files, ... It relies on the Variables set in the regular Makefiles # and in particular on their targets "ltds", "lctan", "filedate", and "checksum". ################################################################ HERE = $(shell pwd) GITREPOS = $(HERE) REPOSNAME = LaTeX-proposal TMP = /tmp #TDSCOLL ?= $(shell basename $$PWD) TDSCOLL = proposal EXPORTED = $(TMP)/$(TDSCOLL).exp TDS.dir = $(TDSCOLL).tds TDSDIR = $(TMP)/$(TDS.dir) TDS.zip = $(TDS.dir).zip TDSZIP = $(TMP)/$(TDS.zip) CTANDIR = $(TMP)/$(TDSCOLL) CTAN.zip = $(TDSCOLL).ctan.zip CTANZIP = $(TMP)/$(CTAN.zip) MAKE = make # this target makes the file CTANZIP by creating and populating the directory # CTANDIR and zipping it. To be current, we first make all, and update # the filedates and the checksums. To get rid of all the junk we commit and # export a clean copy EXPORTED, on which we run the target ctanexp below, # which generates a directory CTANDIR, which we zip and move into place. ctan: all filedate checksum git commit -am'draining just to be sure for CTAN distribution' --allow-empty rm -Rf $(EXPORTED) @echo "exporting a clean copy to $(EXPORTED)" cd $(TMP);rm -Rf $(REPOSNAME);git clone $(GITREPOS);mv $(REPOSNAME) $(EXPORTED) rm -Rf $(EXPORTED)/.git find $(EXPORTED) -name ".gitignore" -delete cd $(EXPORTED);$(MAKE) -$(MAKEFLAGS) ctanext @echo "zipping the result to $(TDSCOLL).ctan.zip" cd $(TMP);zip -r $(CTANZIP) $(TDS.zip) $(TDSCOLL);cp $(CTANZIP) $(HERE) @echo "cleaning up" rm -Rf $(EXPORTED) $(CTANDIR) $(CTANZIP) $(TDSZIP) @echo "disabling checksums again for further development" $(MAKE) -$(MAKEFLAGS) disablechecksum # this target is run on EXPORTED. It first makes the target tdsext below, # and then copies all necessary stuff into CTANDIR. ctanext: tdsext @echo "making a CTAN compliant archive in $(CTANDIR)" rm -Rf $(CTANDIR) $(CTANZIP) mkdir -p $(CTANDIR) @echo " copying material from $(EXPORTED) to $(CTANDIR)" @for d in $(DTXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) lctan) done @for d in $(SRCDIRS) $(DOCDIRS); do (cp -R $$d $(CTANDIR)) done; @for d in $(SRCFILES); do (cp -p $$d $(CTANDIR)) done; cp $(TDS.README) $(CTANDIR)/README # this target makes the file TDSZIP by creating and populating the directory # TDSDIR and zipping it. tdsext: @echo "making a TDS compliant archive" rm -Rf $(TDSDIR) $(TDSZIP) @echo " enabling checksums" $(MAKE) -$(MAKEFLAGS) enablechecksum @echo " copying LaTeX Sources to $(TDSDIR)" @for d in $(DTXDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) ltds) done @echo " copying binary dir to $(TDSDIR)" @for d in $(SRCDIRS); do (cp -R $$d $(TDSDIR)/source/latex/$(TDSCOLL)) done; @for d in $(SRCFILES); do (cp -R $$d $(TDSDIR)/source/latex/$(TDSCOLL)) done; @echo " copying documentation to $(TDSDIR)" @for d in $(DOCDIRS); do (cp -R $$d $(TDSDIR)/doc/latex/$(TDSCOLL)) done; @for d in $(TDS.doc); do (cp -R $$d $(TDSDIR)/doc/latex/$(TDSCOLL)) done; @echo "zipping the result to $(TDSCOLL).tds.zip" cd $(TDSDIR);zip -r -q $(TDSZIP) . @echo "and removing the temporary directory $(TDSDIR)" rm -Rf $(TDSDIR)