# Makefile for building SAMP document. # Main useful targets are # # build: builds PDF and HTML documents, as well as SAMP.zip file # suitable for submission to IVOA doc coordinator # (default target) # clean: deletes all files not under version control DOC = samp UPLOAD = SAMP ARCHIVE = sampdoc CSS_HREF = http://www.ivoa.net/misc/ivoa_doc.css TTH = tth_C/tth FIGURES = samp-archi samp-notification samp-asynchronous samp-synchronous ARCHIVE_FILES = $(DOC).tex $(DOC).pdf $(DOC).html $(FIGURES:=.gif) # Requirements: # XML validator and XSLT processor # pdflatex # PDF->GIF converter (ImageMagick) # jar (JDK) # All most likely present on, e.g., a linux disribution. # Could use substitites for some of these if they are not available. XSLTPROC = xsltproc XMLLINT = xmllint -noout PDFLATEX = pdflatex PDF2GIF = convert -density 54x54 JAR = jar .SUFFIXES: .pdf .gif .tex build: $(DOC).pdf $(DOC).html $(UPLOAD).zip $(ARCHIVE).zip examples: sendex1.tex replyex2.tex sendex3.tex sendex4.tex clean: rm -f sendex1.tex replyex2.tex sendex3.tex sendex4.tex rm -f $(DOC).pdf $(DOC).aux $(DOC).log $(DOC).toc texput.log rm -f $(DOC).html $(DOC).xhtml $(UPLOAD).zip $(ARCHIVE).zip rm -f $(FIGURES:=.gif) rm -f $(TTH) $(DOC).pdf: $(DOC).tex $(FIGURES:=.pdf) $(PDFLATEX) $(DOC) && $(PDFLATEX) $(DOC) && $(PDFLATEX) $(DOC) $(DOC).html: $(DOC).tex $(DOC).pdf $(FIGURES:=.gif) tth-ivoa.xslt $(TTH) $(TTH) -w2 -e2 -L$(DOC) <$(DOC).tex \ | $(XSLTPROC) --html \ --stringparam CSS_HREF $(CSS_HREF) \ tth-ivoa.xslt - \ >$(DOC).html $(UPLOAD).zip: $(DOC).pdf $(DOC).html $(FIGURES:=.gif) rm -rf tmp/ mkdir tmp cp $(DOC).pdf tmp/$(UPLOAD).pdf cp $(DOC).html tmp/$(UPLOAD).html cp $(FIGURES:=.gif) tmp/ cd tmp; $(JAR) cfM ../$(UPLOAD).zip \ $(UPLOAD).pdf $(UPLOAD).html $(FIGURES:=.gif) rm -rf tmp/ $(ARCHIVE).zip: $(ARCHIVE_FILES) rm -rf tmp/ mkdir tmp cp $(ARCHIVE_FILES) tmp/ cd tmp; $(JAR) cfM ../$(ARCHIVE).zip $(ARCHIVE_FILES) rm -rf tmp/ # Build TtH from source. See http://hutchinson.belmont.ma.us/tth/. # TtH source seems to be highly portable, so compilation should be easy # as long as you have a C compiler. $(TTH): tth_C/tth.c $(CC) -o $(TTH) tth_C/tth.c .pdf.gif: $(PDF2GIF) $*.pdf $@ sendex1.tex: sendex1.xml $(XMLLINT) sendex1.xml ./httpblock.sh sendex1.xml >sendex1.tex sendex3.tex: sendex3.xml $(XMLLINT) sendex3.xml ./httpblock.sh sendex3.xml >sendex3.tex sendex4.tex: sendex4.xml $(XMLLINT) sendex4.xml ./httpblock.sh sendex4.xml >sendex4.tex replyex2.tex: replyex2.xml $(XMLLINT) replyex2.xml ./httpblock.sh -response replyex2.xml >replyex2.tex