################################################################################ # # File: $Id$ # # Standard rules for a variety of situations. Includes standard suffixes and # paths. # # ################################################################################ ################################################################################ # # Required make variables. These should be defined by the calling makefile. # # SUBJECT_CODE # The paper number for the current paper, e.g., 212. # PAPER_NUMBER?=$(error The required make variable PAPER_NUMBER has not been defined. Please set it to the correct value) # # IMGDIR # The path to the directory that contains images, e.g., images. # IMGDIR?=$(error The required make variable IMGDIR has not been defined. Please set it to the directory in which images are located) ################################################################################ # # Default rules. # # # PDF from LaTeX via DVI, typically for images drawn using PSTricks). # %.pdf %-print.pdf: $(IMGDIR)/%.tex latex --jobname=$(IMGDIR)/$* $< dvips -q -f $(IMGDIR)/$* | ps2eps -q -l | epstopdf -f -o=$(IMGDIR)/$@ # # PDF from LaTeX. # %.pdf: %.tex pdflatex $< pdflatex $< # # 2-up PDF from 1-up PDF. # %-2up.pdf: %.pdf pdfnup $< --nup 2x1 --outfile $@ # # Derived XML with inclusions from source XML without inclusions. # %-derived.xml: %.xml xmllint --xinclude $< > $@ # # LaTeX from derived XML. # %.tex: %-derived.xml $(call xslt,$<,xml2latex.xsl,$(call xslt_parameter,paper,$(PAPER_NUMBER))) > $@ # # HTML from derived XML. # %.html: %-derived.xml $(call xslt,$<,xml2html.xsl,$(call xslt_parameter,paper,$(PAPER_NUMBER))) > $@ # # PDF and PNG from OmniGraffle. (We can't automate this.) # %.pdf %-print.pdf %.png %-web.png: %.graffle @echo "$(notdir $<): regenerate $(notdir $@)" @exit 1 # # Various bitmap types embedded in OmniGraffle. (We can't automate this.) # %.graffle: %.png @echo "$(notdir $@): reinsert $(notdir $<)" @exit 1 %.graffle: %.jpg @echo "$(notdir $@): reinsert $(notdir $<)" @exit 1 # # PNG from TIFF. # %.png %-print.png %-web.png: %.tif convert "$<" $(IMGDIR)/$@ # # PNG from PICT. # %.png %-print.png %-web.png: %.pict convert "$<" $(IMGDIR)/$@ # # PDF from Ploticus. # %.pdf %-print.pdf: %.plo ploticus -eps -tightcrop -o stdout $< | shiftbbox | epstopdf --filter --outfile=$(IMGDIR)/$@ # # PDF from PS # %.pdf %-print.pdf: %.ps ps2eps --ignoreBB --nohires --loose < $< | ps2pdf -dEPSCrop - $(IMGDIR)/$@ # # PDF from EPS # %.pdf %-print.pdf: %.eps ps2eps --ignoreBB --nohires --loose < $< | ps2pdf -dEPSCrop - $(IMGDIR)/$@ # # PDF from SVG (via Inkscape) # We remove the intermediate file manually rather than through the tidy/clean # mechanism. # %.pdf %-print.pdf: %.svg inkscape --file=$< --export-text-to-path --without-gui --export-pdf=$*-tmp.pdf pdfcrop $*-tmp.pdf $@ -rm -f $*-tmp.pdf # # PNG from SVG (via Inkscape) # %.png %-print.png %-web.png: %.svg inkscape --file=$< --without-gui --export-area-drawing --export-background-opacity=1.0 --export-dpi=96 --export-png=$@