1 # Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
2 # Written by Werner Lemberg <wl@gnu.org>
4 # This file is part of groff.
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
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
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.
20 # These may be overridden if cross-compiling.
21 GROFFBIN=$(top_builddir)/src/roff/groff/groff
22 GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|$(SH_SEP)|g'`
25 $(top_builddir)/src/roff/groff \
26 $(top_builddir)/src/roff/troff \
27 $(top_builddir)/src/preproc/pic \
28 $(top_builddir)/src/preproc/eqn \
29 $(top_builddir)/src/preproc/tbl \
30 $(top_builddir)/src/preproc/grn \
31 $(top_builddir)/src/preproc/refer \
32 $(top_builddir)/src/preproc/soelim \
33 $(top_builddir)/src/preproc/html \
34 $(top_builddir)/src/devices/grops \
35 $(top_builddir)/src/devices/grohtml
37 FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
38 TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
41 GROFF_COMMAND_PREFIX=''; \
42 export GROFF_COMMAND_PREFIX; \
43 GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
44 export GROFF_BIN_PATH; \
45 sed -e "s;@VERSION@;$(version)$(revision);" $< \
46 | $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
73 PROCESSEDEXAMPLEFILES=\
83 HTMLEXAMPLEIMAGEFILES=\
87 htmldocimagedir=$(htmldocdir)/$(imagedir)
88 exampleimagedir=$(exampledir)/$(imagedir)
91 $(PROCESSEDDOCFILES) \
92 $(PROCESSEDEXAMPLEFILES) \
93 $(HTMLEXAMPLEFILESALL) \
95 groff.aux groff.cp* groff.dvi groff.es* groff.fn* groff.html groff.ky* \
96 groff.log groff.ma* groff.op* groff.pdf groff.pg* groff.ps groff.rq* \
97 groff.st* groff.toc groff.tp groff.vr* \
111 .SUFFIXES: .me .ms .ps .html
113 # For simplicity, we always call grn and eqn.
115 $(GROFF) -Tps -ge -me >$@
118 $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
119 -P-D$(imagedir) -Thtml -ms >$@
121 $(GROFF) -Tps -ms -mwww >$@
124 all: groff.info $(PROCESSEDDOCFILES) prepare_examples \
125 $(PROCESSEDEXAMPLEFILES) $(make_html)
127 html: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES)
129 prepare_examples: examples.stamp
131 examples.stamp: grnexmpl.g groff.css gnu.eps
132 test -f grnexmpl.g || cp $(srcdir)/grnexmpl.g .
133 test -f groff.css || cp $(srcdir)/groff.css .
134 if test ! -f gnu.eps; then \
135 if test -f $(srcdir)/gnu.eps; then \
136 cp $(srcdir)/gnu.eps .; \
137 elif test -f $(top_builddir)/contrib/pdfmark/gnu.eps; then \
138 cp $(top_builddir)/contrib/pdfmark/gnu.eps .; \
143 groff.info: groff.texinfo
144 $(MAKEINFO) --enable-encoding -I$(srcdir) $(srcdir)/groff.texinfo
147 xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | \
148 $(pnmtops_nosetpage) -noturn -rle >$@
151 xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@
154 $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
155 -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \
158 webpage.html: webpage.ms gnu.png groff.css
159 $(GROFF) -P-j`basename $< | sed -e 's|.ms$$||'` \
160 -P-nrpb -P-I`basename $< | sed -e 's|.ms$$||'` \
161 -P-D$(imagedir) -Thtml -ms >$@
165 grnexmpl.ps: grnexmpl.me grnexmpl.g
167 distfiles: groff.info gnu.eps gnu.png
169 install_data: groff.info $(DOCFILES) $(PROCESSEDDOCFILES) $(make_install_html) \
170 $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES)
171 -test -d $(DESTDIR)$(infodir) || $(mkinstalldirs) $(DESTDIR)$(infodir)
172 # Prefer info files in builddir over srcdir; we test for
173 # the existence of `groff.info'.
175 test -f "groff.info" || d=$(srcdir); \
176 for f in $$d/groff.info `ls $$d/groff.info*`; do \
177 rm -f $(DESTDIR)$(infodir)/$$f; \
178 $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$f; \
180 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) \
181 $(DESTDIR)$(infodir)/groff.info
182 -test -d $(DESTDIR)$(docdir) || $(mkinstalldirs) $(DESTDIR)$(docdir)
183 for f in $(DOCFILES); do \
184 rm -f $(DESTDIR)$(docdir)/$$f; \
185 $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(docdir)/$$f; \
187 for f in $(PROCESSEDDOCFILES); do \
188 rm -f $(DESTDIR)$(docdir)/$$f; \
189 $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f; \
191 -test -d $(DESTDIR)$(exampledir) \
192 || $(mkinstalldirs) $(DESTDIR)$(exampledir)
193 for f in $(EXAMPLEFILES); do \
194 rm -f $(DESTDIR)$(exampledir)/$$f; \
195 $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(exampledir)/$$f; \
197 for f in $(PROCESSEDEXAMPLEFILES); do \
198 rm -f $(DESTDIR)$(exampledir)/$$f; \
199 $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \
202 install_html: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES)
203 -test -d $(DESTDIR)$(htmldocdir) \
204 || $(mkinstalldirs) $(DESTDIR)$(htmldocdir)
205 for f in `ls $(HTMLDOCFILESALL)`; do \
206 rm -f $(DESTDIR)$(htmldocdir)/$$f; \
207 $(INSTALL_DATA) $$f $(DESTDIR)$(htmldocdir)/$$f; \
209 -test -d $(DESTDIR)$(htmldocimagedir) \
210 || $(mkinstalldirs) $(DESTDIR)$(htmldocimagedir)
211 rm -f $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
212 $(INSTALL_DATA) $(imagedir)/$(HTMLDOCIMAGEFILES) \
213 $(DESTDIR)$(htmldocimagedir)
214 -test -d $(DESTDIR)$(exampledir) \
215 || $(mkinstalldirs) $(DESTDIR)$(exampledir)
216 for f in `ls $(HTMLEXAMPLEFILESALL)`; do \
217 rm -f $(DESTDIR)$(exampledir)/$$f; \
218 $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \
220 -test -d $(DESTDIR)$(exampleimagedir) \
221 || $(mkinstalldirs) $(DESTDIR)$(exampleimagedir)
222 rm -f $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
223 $(INSTALL_DATA) $(imagedir)/$(HTMLEXAMPLEIMAGEFILES) \
224 $(DESTDIR)$(exampleimagedir)
227 -for f in groff `ls groff-*`; do \
228 rm -f $(DESTDIR)$(infodir)/$$f; \
230 $(INSTALL_INFO) --remove --info-dir=$(DESTDIR)$(infodir) \
231 $(DESTDIR)$(infodir)/groff.info
232 -for f in $(DOCFILES) $(PROCESSEDDOCFILES); do \
233 rm -f $(DESTDIR)$(docdir)/$$f; \
235 -for f in `ls $(HTMLDOCFILESALL)`; do \
236 rm -f $(DESTDIR)$(htmldocdir)/$$f; \
238 -rm -f $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
239 -rmdir $(DESTDIR)$(htmldocimagedir)
240 -for f in $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES) \
241 `ls $(HTMLEXAMPLEFILESALL)`; do \
242 rm -f $(DESTDIR)$(exampledir)/$$f; \
244 -rm -f $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
245 -rmdir $(DESTDIR)$(exampleimagedir)