# Makefile for the HOWTO directory # LaTeX HOWTOs can be turned into HTML, PDF, PS, DVI or plain text output. # reST HOWTOs can only be turned into HTML. # Variables to change # Paper size for non-HTML formats (letter or a4) PAPER=letter # Arguments to rst2html.py, and location of the script RSTARGS = --input-encoding=utf-8 RST2HTML = rst2html.py # List of HOWTOs that aren't to be processed. This should contain the # base name of the HOWTO without any extension (e.g. 'advocacy', # 'unicode'). REMOVE_HOWTOS = MKHOWTO=../tools/mkhowto WEBDIR=. PAPERDIR=../paper-$(PAPER) HTMLDIR=../html # Determine list of files to be built TEX_SOURCES = $(wildcard *.tex) RST_SOURCES = $(wildcard *.rst) TEX_NAMES = $(filter-out $(REMOVE_HOWTOS),$(patsubst %.tex,%,$(TEX_SOURCES))) PAPER_PATHS=$(addprefix $(PAPERDIR)/,$(TEX_NAMES)) DVI =$(addsuffix .dvi,$(PAPER_PATHS)) PDF =$(addsuffix .pdf,$(PAPER_PATHS)) PS =$(addsuffix .ps,$(PAPER_PATHS)) ALL_HOWTO_NAMES = $(TEX_NAMES) $(patsubst %.rst,%,$(RST_SOURCES)) HOWTO_NAMES = $(filter-out $(REMOVE_HOWTOS),$(ALL_HOWTO_NAMES)) HTML = $(addprefix $(HTMLDIR)/,$(HOWTO_NAMES)) # Rules for building various formats # reST to HTML $(HTMLDIR)/%: %.rst if [ ! -d $@ ] ; then mkdir $@ ; fi $(RST2HTML) $(RSTARGS) $< >$@/index.html # LaTeX to various output formats $(PAPERDIR)/%.dvi : %.tex $(MKHOWTO) --dvi $< mv $*.dvi $@ $(PAPERDIR)/%.pdf : %.tex $(MKHOWTO) --pdf $< mv $*.pdf $@ $(PAPERDIR)/%.ps : %.tex $(MKHOWTO) --ps $< mv $*.ps $@ $(HTMLDIR)/% : %.tex $(MKHOWTO) --html --iconserver="." --dir $@ $< # Rule that isn't actually used -- we no longer support the 'txt' target. $(PAPERDIR)/%.txt : %.tex $(MKHOWTO) --text $< mv $@ txt default: @echo "'all' -- build all files" @echo "'dvi', 'pdf', 'ps', 'html' -- build one format" all: dvi pdf ps html .PHONY : dvi pdf ps html dvi: $(DVI) pdf: $(PDF) ps: $(PS) html: $(HTML) clean: rm -f *~ *.log *.ind *.l2h *.aux *.toc *.how *.bkm rm -f *.dvi *.pdf *.ps clobber: rm -rf $(HTML) rm -rf $(DVI) $(PDF) $(PS)