# Makefile for tex-refs # # $Id: Makefile 146 2005-05-14 15:34:22Z mw $ PROJECT=tex-refs VERSION = 0.3.9 TITLE="Ref. for TeX and Friends" DISTDIR = $(PROJECT)-$(VERSION) SRC_FILES=$(PROJECT)-xinclude.xml $(PROJECT)-chapter*.xml \ $(PROJECT).ent $(PROJECT)-local.mapping.xml MOD_XSL_FILES = db2latex-mw-table.xsl \ db2latex-mw-variablelist.xsl \ db2latex-mw-itemizedlist.xsl DIST_FILES=$(SRC_FILES) GFDL README AUTHORS TODO RELEASE-NEWS THANKS \ $(PROJECT).css $(PROJECT)*.xsl $(MOD_XSL_FILES) \ catalog.xml $(PROJECT).ist Makefile OUT_FILES = $(PROJECT).html html $(PROJECT).css $(PROJECT).txt \ $(PROJECT)-plucker.pdb $(PROJECT).pdf CLEAN_FILES = $(PROJECT).html $(PROJECT).txt $(PROJECT).pdf \ $(PROJECT).chm $(PROJECT)-plucker.pdb html/* \ $(PROJECT)-plucker-input.html \ $(PROJECT).tex $(PROJECT).ind $(PROJECT).ilg \ $(PROJECT).glo $(PROJECT).toc $(PROJECT).out \ $(PROJECT).idx $(PROJECT).aux $(PROJECT).log TAR = tar GZIP = --best # name and options to 'xsltproc' XSLTPROC=xsltproc XSLTPROC_OPTS=--nonet #--verbose CHUNKDIR = html TIDY=tidy TIDY_OPTS=-mq --show-warnings false # XSL file to generate non-chunked HTML XSLFILE=$(PROJECT).xsl # XSL file to generate HTML for plucker XSLPLUCKERFILE=$(PROJECT)-plucker.xsl # XSL file to generate chunked HTML XSLCHUNKFILE=$(PROJECT)-chunk.xsl # XSL file with commoin customizations XSLCOMMONFILE=$(PROJECT)-common.xsl PDFLATEX=pdflatex PDFLATEX_OPTS=-interaction=nonstopmode PDFOPT=pdfopt-afpl MAKEINDEX=makeindex # XSL file for DB2LateX XSLPDFFILE=$(PROJECT)-pdf.xsl ##### %.txt : %.html @# w3m wraps words like '\something' at the '\' @# w3m -dump -cols 72 $< > $@ lynx -nolist -dump -width=72 $< > $@ @# discard 'Index', it makes no sense in TXT output sed -e '/^Index/,$$d' \ $@ > x.tmp && mv x.tmp $@ ##### # default target all: $(PROJECT).html chunk-html $(PROJECT).pdf $(PROJECT).txt \ $(PROJECT)-plucker.pdb # make master document $(PROJECT).xml: $(SRC_FILES) Makefile $(PROJECT)-local.mapping.xml xmllint --nonet --output $@ --xinclude $(PROJECT)-xinclude.xml # HTML related targets $(PROJECT).html: $(PROJECT).xml $(XSLFILE) $(XSLCOMMONFILE) $(XSLTPROC) $(XSLTPROC_OPTS) --output $@ $(XSLFILE) $< -$(TIDY) $(TIDY_OPTS) $@ chunk-html: $(CHUNKDIR)/index.html $(CHUNKDIR)/index.html : $(PROJECT).xml $(XSLCHUNKFILE) $(XSLCOMMONFILE) test -d $(CHUNKDIR) || mkdir $(CHUNKDIR) || exit 1 $(RM) $(CHUNKDIR)/* $(XSLTPROC) -o $(CHUNKDIR)/ $(XSLCHUNKFILE) $< -(cd $(CHUNKDIR) && $(TIDY) $(TIDY_OPTS) *.html ) # ASCII $(PROJECT).txt: $(PROJECT).html # PDF related targets $(PROJECT).tex: $(PROJECT).xml $(XSLPDFFILE) $(MOD_XSL_FILES) $(XSLTPROC) $(XSLTPROC_OPTS) --output $@ $(XSLPDFFILE) $< $(PROJECT).pdf: $(PROJECT).tex $(PROJECT).ist $(RM) $(PROJECT).aux $(PROJECT).toc $(PROJECT).ind $(PDFLATEX) $(PDFLATEX_OPTS) $< && \ $(PDFLATEX) $(PDFLATEX_OPTS) $< && \ ( test -s $(PROJECT).idx && \ $(MAKEINDEX) -s $(PROJECT).ist $(PROJECT) || true ) && \ $(PDFLATEX) $(PDFLATEX_OPTS) $< && \ $(PDFOPT) $(PROJECT).pdf out.pdf && $(RM) $(PROJECT).pdf && \ mv out.pdf $(PROJECT).pdf && \ ls -l $(PROJECT).pdf # PDB related targets # generate PDB file for Palm reader 'plucker' # we generate a separate HTML file for plucker first, because # we cannot use the xhtml stylesheets and so have to provide a # separate XSL stylesheet file $(PROJECT)-plucker-input.html: $(PROJECT).xml $(XSLPLUCKERFILE) $(XSLCOMMONFILE) $(XSLTPROC) -o $@ $(XSLPLUCKERFILE) $< $(PROJECT)-plucker.pdb: $(PROJECT)-plucker-input.html plucker-build \ --stayonhost \ --zlib-compression \ --doc-file=$(PWD)/$(PROJECT)-plucker \ --doc-name=$(TITLE) \ --exclusion-list=$(PROJECT)-plucker-exclude.txt \ --noimages $(PROJECT)-plucker-input.html # local "enhancements" ifeq "$(wildcard Makefile.miwie)" "Makefile.miwie" include Makefile.miwie endif targets: @echo "Most important targets:" @echo @echo "all generate all available output formats" @echo @echo "$(PROJECT).html generate $(PROJECT).html" @echo "chunk-html generate chunked HTML output" @echo "$(PROJECT).pdf generate $(PROJECT).pdf" @echo "$(PROJECT).txt generate $(PROJECT).txt" @echo @echo "clean remove generated files" @echo "dist create tarball with source files" outfiles: -rm -fr $(PROJECT)-out-$(VERSION).tar.gz -rm -fr $(PROJECT)-out-$(VERSION).tar.bz2 GZIP=$(GZIP) $(TAR) chozf $(PROJECT)-out-$(VERSION).tar.gz $(OUT_FILES) $(TAR) chojf $(PROJECT)-out-$(VERSION).tar.bz2 $(OUT_FILES) ls -l $(PROJECT)-out-$(VERSION).tar.gz ls -l $(PROJECT)-out-$(VERSION).tar.bz2 install: @echo "Nothing to install..." uninstall: @echo "Nothing to uninstall..." clean: $(RM) $(CLEAN_FILES) distclean: clean dist: distdir @-chmod -R a+r $(DISTDIR) @GZIP=$(GZIP) $(TAR) chozf $(DISTDIR).tar.gz $(DISTDIR) @$(TAR) chojf $(DISTDIR).tar.bz2 $(DISTDIR) ls -l $(DISTDIR).tar.gz ls -l $(DISTDIR).tar.bz2 ls -l $(PROJECT)-src.zip @-rm -rf $(DISTDIR) distdir: $(DIST_FILES) @-rm -rf $(DISTDIR) @mkdir $(DISTDIR) @-chmod 777 $(DISTDIR) @for file in $(DIST_FILES); do \ test -f $(DISTDIR)/$$file \ || ln ./$$file $(DISTDIR)/$$file 2> /dev/null \ || cp -p ./$$file $(DISTDIR)/$$file; \ done