blob: 18110a2d4902550950dcda5a26ad9fbba6ebfbbc [file] [log] [blame]
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +00001# Makefile for the HOWTO directory
2# LaTeX HOWTOs can be turned into HTML, PDF, PS, DVI or plain text output.
3# reST HOWTOs can only be turned into HTML.
4
5# Variables to change
6
7# Paper size for non-HTML formats (letter or a4)
8PAPER=letter
9
10# Arguments to rst2html.py, and location of the script
11RSTARGS = --input-encoding=utf-8
12RST2HTML = rst2html.py
13
14# List of HOWTOs that aren't to be processed. This should contain the
15# base name of the HOWTO without any extension (e.g. 'advocacy',
16# 'unicode').
17REMOVE_HOWTOS =
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000018
19MKHOWTO=../tools/mkhowto
20WEBDIR=.
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000021PAPERDIR=../paper-$(PAPER)
22HTMLDIR=../html
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000023
24# Determine list of files to be built
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000025TEX_SOURCES = $(wildcard *.tex)
26RST_SOURCES = $(wildcard *.rst)
27TEX_NAMES = $(filter-out $(REMOVE_HOWTOS),$(patsubst %.tex,%,$(TEX_SOURCES)))
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000028
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000029PAPER_PATHS=$(addprefix $(PAPERDIR)/,$(TEX_NAMES))
30DVI =$(addsuffix .dvi,$(PAPER_PATHS))
31PDF =$(addsuffix .pdf,$(PAPER_PATHS))
32PS =$(addsuffix .ps,$(PAPER_PATHS))
33
34ALL_HOWTO_NAMES = $(TEX_NAMES) $(patsubst %.rst,%,$(RST_SOURCES))
35HOWTO_NAMES = $(filter-out $(REMOVE_HOWTOS),$(ALL_HOWTO_NAMES))
36HTML = $(addprefix $(HTMLDIR)/,$(HOWTO_NAMES))
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000037
38# Rules for building various formats
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000039
40# reST to HTML
41$(HTMLDIR)/%: %.rst
42 if [ ! -d $@ ] ; then mkdir $@ ; fi
43 $(RST2HTML) $(RSTARGS) $< >$@/index.html
44
45# LaTeX to various output formats
46$(PAPERDIR)/%.dvi : %.tex
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000047 $(MKHOWTO) --dvi $<
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000048 mv $*.dvi $@
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000049
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000050$(PAPERDIR)/%.pdf : %.tex
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000051 $(MKHOWTO) --pdf $<
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000052 mv $*.pdf $@
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000053
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000054$(PAPERDIR)/%.ps : %.tex
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000055 $(MKHOWTO) --ps $<
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000056 mv $*.ps $@
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000057
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000058$(HTMLDIR)/% : %.tex
59 $(MKHOWTO) --html --iconserver="." --dir $@ $<
60
61# Rule that isn't actually used -- we no longer support the 'txt' target.
62$(PAPERDIR)/%.txt : %.tex
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000063 $(MKHOWTO) --text $<
64 mv $@ txt
65
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000066default:
67 @echo "'all' -- build all files"
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000068 @echo "'dvi', 'pdf', 'ps', 'html' -- build one format"
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000069
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000070all: dvi pdf ps html
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000071
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000072.PHONY : dvi pdf ps html
73dvi: $(DVI)
74pdf: $(PDF)
75ps: $(PS)
76html: $(HTML)
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000077
78clean:
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000079 rm -f *~ *.log *.ind *.l2h *.aux *.toc *.how *.bkm
80 rm -f *.dvi *.pdf *.ps
Andrew M. Kuchlinge8f44d62005-08-30 01:25:05 +000081
82clobber:
Andrew M. Kuchling48a49f02006-06-23 19:23:40 +000083 rm -rf $(HTML)
84 rm -rf $(DVI) $(PDF) $(PS)