Makefile.in revision 1.1
1# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
2#      Written by Werner Lemberg <wl@gnu.org>
3# 
4# This file is part of groff.
5# 
6# groff is free software; you can redistribute it and/or modify it under
7# the terms of the GNU General Public License as published by the Free
8# Software Foundation; either version 2, or (at your option) any later
9# version.
10# 
11# groff is distributed in the hope that it will be useful, but WITHOUT ANY
12# WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14# for more details.
15# 
16# You should have received a copy of the GNU General Public License along
17# with groff; see the file COPYING.  If not, write to the Free Software
18# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA.
19
20
21# Use this file to produce documentation in various formats; e.g. you can
22# say
23#
24#   make groff.pdf
25#
26# to get the groff texinfo manual as a PDF file.
27#
28# Note that you have to compile the groff package first.
29
30
31srcdir=@srcdir@
32top_srcdir=@abs_top_srcdir@
33VPATH=@srcdir@
34top_builddir=@abs_top_builddir@
35pnmtops=@pnmtops_nosetpage@
36
37# These may be overridden if cross-compiling.
38TROFFBIN=$(top_builddir)/src/roff/troff/troff
39GROFFBIN=$(top_builddir)/src/roff/groff/groff
40GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's|  *|:|g'`
41
42# info files are distributed with the groff package, so makeinfo is
43# usually not needed (however, to build from CVS you NEED it!)
44# FIXME: Add autoconf test to check whether makeinfo exists.
45MAKEINFO=makeinfo
46
47# Users who want to print out the groff manual are expected to have
48# a working TeX installation.
49TEXI2DVI=texi2dvi
50
51groff_bin_dirs=\
52  $(top_builddir)/src/roff/groff \
53  $(top_builddir)/src/roff/troff \
54  $(top_builddir)/src/preproc/pic \
55  $(top_builddir)/src/preproc/eqn \
56  $(top_builddir)/src/preproc/tbl \
57  $(top_builddir)/src/preproc/grn \
58  $(top_builddir)/src/preproc/refer \
59  $(top_builddir)/src/preproc/soelim \
60  $(top_builddir)/src/preproc/html \
61  $(top_builddir)/src/devices/grops \
62  $(top_builddir)/src/devices/grodvi \
63  $(top_builddir)/src/devices/grotty \
64  $(top_builddir)/src/devices/grolj4 \
65  $(top_builddir)/src/devices/grolbp \
66  $(top_builddir)/src/devices/grohtml
67
68version=`cat $(top_srcdir)/VERSION`
69# No additional number if revision is zero.
70revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION`
71
72FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
73TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
74
75TROFF=$(TROFFBIN) $(TFLAG) $(FFLAG) -ww
76GROFF=GROFF_COMMAND_PREFIX=''; \
77      export GROFF_COMMAND_PREFIX; \
78      GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
79      export GROFF_BIN_PATH; \
80      sed -e "s;@VERSION@;$(version)$(revision);" $< \
81      | $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
82
83imagedir=img
84
85.SUFFIXES: .me .ms .ps .html .txt .texinfo .dvi .pdf
86.PHONY: all prepare_examples clean distclean realclean extraclean
87
88# For simplicity, we always call grn and eqn.
89.me.txt:
90	$(GROFF) -Tascii -ge -me >$@
91.me.ps:
92	$(GROFF) -Tps -ge -me >$@
93
94.ms.html:
95	$(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
96		 -P-D$(imagedir) -Thtml -ms >$@
97.ms.txt:
98	$(GROFF) -Tascii -ms -mwww >$@
99.ms.ps:
100	$(GROFF) -Tps -ms -mwww >$@
101
102.texinfo.dvi:
103	$(TEXI2DVI) -e $<
104.texinfo.pdf:
105	$(TEXI2DVI) -e --pdf $<
106.texinfo.html:
107	$(MAKEINFO) --enable-encoding -I$(srcdir) --html --no-split $< \
108	&& $(SHELL) $(srcdir)/fixinfo.sh $@
109
110
111all: prepare_examples
112
113prepare_examples: grnexmpl.g groff.css
114	test -f grnexmpl.g || cp $(srcdir)/grnexmpl.g .
115	test -f groff.css || cp $(srcdir)/groff.css .
116
117groff: groff.texinfo
118	$(MAKEINFO) --enable-encoding -I$(srcdir) $(srcdir)/groff.texinfo
119
120gnu.eps: gnu.xpm
121	xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | $(pnmtops) -noturn >$@
122gnu.png: gnu.xpm
123	xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@
124
125pic.html: pic.ms
126	$(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
127                 -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \
128                 -Thtml -ms >$@
129
130webpage.html: webpage.ms gnu.png gnu.eps groff.css
131webpage.ps: gnu.eps
132
133grnexmpl.ps: grnexmpl.me grnexmpl.g
134
135
136clean:
137	-rm -f *.ps *.html *.txt core
138	-rm -f *.aux *.dvi *.pdf *.log *.toc texput.log
139	-rm -f *.cp *.cps *.cv *.cn *.es *.ess *.fn *.fns *.ky *.kys \
140               *.ma *.mas *.op *.ops *.pg *.pgs *.rq *.rqs *.st *.sts \
141               *.tp *.tps *.tr *.vr *.vrs
142	-rm -rf img
143
144distclean: clean
145
146realclean: distclean
147	-rm -f *.png *.eps
148
149extraclean: distclean
150	-rm -f core *~ \#* junk temp grot
151