1 # Copyright (C) 2002-2014 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 3 of the License, or
9 # (at your option) any later version.
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
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
19 # These may be overridden if cross-compiling.
20 GROFFBIN=$(top_builddir)/src/roff/groff/groff
21 GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's| *|$(SH_SEP)|g'`
24 $(top_builddir)/src/roff/groff \
25 $(top_builddir)/src/roff/troff \
26 $(top_builddir)/src/preproc/preconv \
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/gropdf \
36 $(top_builddir)/src/devices/grohtml
38 FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
39 TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
42 sed -e "s;@VERSION@;$(version)$(revision);" $< \
43 | GROFF_COMMAND_PREFIX= \
44 GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \
45 $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
74 PROCESSEDEXAMPLEFILES=\
84 HTMLEXAMPLEIMAGEFILES=\
88 htmldocimagedir=$(htmldocdir)/$(imagedir)
89 exampleimagedir=$(exampledir)/$(imagedir)
92 $(PROCESSEDDOCFILES) \
93 $(PROCESSEDEXAMPLEFILES) \
94 $(HTMLEXAMPLEFILESALL) \
96 groff.aux groff.cp* groff.dvi groff.es* groff.fn* groff.html groff.ky* \
97 groff.log groff.ma* groff.op* groff.pdf groff.pg* groff.ps groff.rq* \
98 groff.st* groff.toc groff.tp groff.vr* \
104 MOSTLYCLEANNOTSRCDIRADD=\
113 .SUFFIXES: .me .ms .ps .html
115 # For simplicity, we always call preconv, grn, and eqn.
117 $(GROFF) -k -Tps -ge -me >$@
120 $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
121 -P-D$(imagedir) -P-V -Thtml -ms >$@
123 $(GROFF) -Tps -ms -mwww >$@
125 all: $(make_otherdoc) \
131 otherdoc: $(PROCESSEDDOCFILES)
133 htmldoc: $(HTMLDOCFILES)
135 examples: examples.stamp $(PROCESSEDEXAMPLEFILES)
137 html_examples: $(HTMLEXAMPLEFILES)
139 examples.stamp: grnexmpl.g groff.css gnu.eps
140 test -f grnexmpl.g || cp $(srcdir)/grnexmpl.g .
141 test -f groff.css || cp $(srcdir)/groff.css .
142 if test ! -f gnu.eps; then \
143 if test -f $(srcdir)/gnu.eps; then \
144 cp $(srcdir)/gnu.eps .; \
145 elif test -f $(top_builddir)/contrib/pdfmark/gnu.eps; then \
146 cp $(top_builddir)/contrib/pdfmark/gnu.eps .; \
151 groff.info: groff.texinfo
152 $(MAKEINFO) --enable-encoding -I$(srcdir) $(srcdir)/groff.texinfo
155 xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 \
156 | $(pnmtops_nosetpage) -noturn -rle >$@
159 $(GROFF) -P-p -P-I`basename $< | sed -e 's|.ms$$||'` \
160 -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \
163 webpage.html: webpage.ms gnu.eps groff.css
164 $(GROFF) -P-j`basename $< | sed -e 's|.ms$$||'` \
165 -P-nrpb -P-I`basename $< | sed -e 's|.ms$$||'` \
166 -P-D$(imagedir) -Thtml -ms >$@
170 grnexmpl.ps: grnexmpl.me grnexmpl.g
172 distfiles: groff.info gnu.eps
174 install_data: install_always $(make_install_otherdoc) \
175 $(make_install_infodoc) $(make_install_htmldoc) \
176 $(make_install_examples)
179 -test -d $(DESTDIR)$(docdir) || $(mkinstalldirs) $(DESTDIR)$(docdir)
181 install_otherdoc: install_always $(DOCFILES) $(PROCESSEDDOCFILES)
182 for f in $(DOCFILES); do \
183 $(RM) $(DESTDIR)$(docdir)/$$f; \
184 $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(docdir)/$$f; \
186 for f in $(PROCESSEDDOCFILES); do \
187 $(RM) $(DESTDIR)$(docdir)/$$f; \
188 $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f; \
191 install_infodoc: install_always groff.info
192 # Prefer info files in builddir over srcdir; we test for
193 # the existence of `groff.info'.
194 -test -d $(DESTDIR)$(infodir) || $(mkinstalldirs) $(DESTDIR)$(infodir)
195 d=.; test -f "groff.info" || d=$(srcdir); \
196 for p in $$d/groff.info `ls $$d/groff.info*`; do \
198 $(RM) $(DESTDIR)$(infodir)/$$f; \
199 $(INSTALL_DATA) $$p $(DESTDIR)$(infodir)/$$f; \
201 $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) \
202 $(DESTDIR)$(infodir)/groff.info
204 install_htmldoc: install_always $(HTMLDOCFILES)
205 -test -d $(DESTDIR)$(htmldocdir) \
206 || $(mkinstalldirs) $(DESTDIR)$(htmldocdir)
207 for f in `ls $(HTMLDOCFILESALL)`; do \
208 $(RM) $(DESTDIR)$(htmldocdir)/$$f; \
209 $(INSTALL_DATA) $$f $(DESTDIR)$(htmldocdir)/$$f; \
211 -test -d $(DESTDIR)$(htmldocimagedir) \
212 || $(mkinstalldirs) $(DESTDIR)$(htmldocimagedir)
213 $(RM) $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
214 $(INSTALL_DATA) $(imagedir)/$(HTMLDOCIMAGEFILES) \
215 $(DESTDIR)$(htmldocimagedir)
217 install_examples: install_always install_examples_always \
218 $(make_install_htmlexamples)
220 install_examples_always: gnu.eps $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES)
221 # Prefer gnu.eps in builddir over srcdir.
222 -test -d $(DESTDIR)$(exampledir) \
223 || $(mkinstalldirs) $(DESTDIR)$(exampledir)
224 d=.; test -f "gnu.eps" || d=$(srcdir); \
225 $(RM) $(DESTDIR)$(exampledir)/gnu.eps; \
226 $(INSTALL_DATA) $$d/gnu.eps $(DESTDIR)$(exampledir)/gnu.eps
227 for f in $(EXAMPLEFILES); do \
228 $(RM) $(DESTDIR)$(exampledir)/$$f; \
229 $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(exampledir)/$$f; \
231 for f in $(PROCESSEDEXAMPLEFILES); do \
232 $(RM) $(DESTDIR)$(exampledir)/$$f; \
233 $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \
236 install_htmlexamples: install_examples_always $(HTMLEXAMPLEFILES)
237 for f in `ls $(HTMLEXAMPLEFILESALL)`; do \
238 $(RM) $(DESTDIR)$(exampledir)/$$f; \
239 $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \
241 -test -d $(DESTDIR)$(exampleimagedir) \
242 || $(mkinstalldirs) $(DESTDIR)$(exampleimagedir)
243 $(RM) $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
244 $(INSTALL_DATA) $(imagedir)/$(HTMLEXAMPLEIMAGEFILES) \
245 $(DESTDIR)$(exampleimagedir)
247 uninstall_sub: uninstall_always \
248 $(make_uninstall_infodoc) $(make_uninstall_htmldoc) \
249 $(make_uninstall_examples)
252 -for f in $(DOCFILES) $(PROCESSEDDOCFILES); do \
253 $(RM) $(DESTDIR)$(docdir)/$$f; \
256 uninstall_infodoc: uninstall_always
257 -$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)$(infodir) \
258 $(DESTDIR)$(infodir)/groff.info
259 -for f in groff `ls groff.info*`; do \
260 $(RM) $(DESTDIR)$(infodir)/$$f; \
263 uninstall_htmldoc: uninstall_always
264 -for f in `ls $(HTMLDOCFILESALL)`; do \
265 $(RM) $(DESTDIR)$(htmldocdir)/$$f; \
267 $(RM) $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
268 -test -d $(DESTDIR)$(htmldocimagedir) && \
269 rmdir $(DESTDIR)$(htmldocimagedir)
271 uninstall_examples: uninstall_always uninstall_examples_always \
272 $(make_uninstall_htmlexamples)
273 -test -d $(DESTDIR)$(exampledir) && \
274 rmdir $(DESTDIR)$(exampledir)
276 uninstall_examples_always:
277 -for f in $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES); do \
278 $(RM) $(DESTDIR)$(exampledir)/$$f; \
280 $(RM) $(DESTDIR)$(exampledir)/gnu.eps
282 uninstall_htmlexamples: uninstall_examples_always
283 -for f in `ls $(HTMLEXAMPLEFILESALL)`; do \
284 $(RM) $(DESTDIR)$(exampledir)/$$f; \
286 $(RM) $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
287 -test -d $(DESTDIR)$(exampleimagedir) && \
288 rmdir $(DESTDIR)$(exampleimagedir)
290 ########################################################################
292 ########################################################################