b2325f939c184b3fc40240357076047c7e5d6034
[platform/upstream/groff.git] / doc / Makefile.sub
1 # Copyright (C) 2002-2014  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 3 of the License, or
9 # (at your option) any later 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
17 # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
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'`
22
23 groff_bin_dirs=\
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
37
38 FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
39 TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
40
41 GROFF=\
42   sed -e "s;@VERSION@;$(version)$(revision);" $< \
43   | GROFF_COMMAND_PREFIX= \
44     GROFF_BIN_PATH="$(GROFF_BIN_PATH)" \
45     $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
46
47 DOCFILES=\
48   meref.me \
49   meintro.me \
50   meintro_fr.me \
51   pic.ms
52
53 PROCESSEDDOCFILES=\
54   meref.ps \
55   meintro.ps \
56   meintro_fr.ps \
57   pic.ps
58
59 HTMLDOCFILES=\
60   pic.html
61
62 HTMLDOCFILESALL=\
63   pic*.html
64
65 HTMLDOCIMAGEFILES=\
66   pic*
67
68 EXAMPLEFILES=\
69   webpage.ms \
70   groff.css \
71   grnexmpl.g \
72   grnexmpl.me
73
74 PROCESSEDEXAMPLEFILES=\
75   webpage.ps \
76   grnexmpl.ps
77
78 HTMLEXAMPLEFILES=\
79   webpage.html
80
81 HTMLEXAMPLEFILESALL=\
82   webpage*.html
83
84 HTMLEXAMPLEIMAGEFILES=\
85   webpage*
86
87 imagedir=img
88 htmldocimagedir=$(htmldocdir)/$(imagedir)
89 exampleimagedir=$(exampledir)/$(imagedir)
90
91 MOSTLYCLEANADD=\
92   $(PROCESSEDDOCFILES) \
93   $(PROCESSEDEXAMPLEFILES) \
94   $(HTMLEXAMPLEFILESALL) \
95   $(HTMLDOCFILESALL) \
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* \
99   examples.stamp
100
101 MOSTLYCLEANDIRADD=\
102   $(imagedir)
103
104 MOSTLYCLEANNOTSRCDIRADD=\
105   groff.css \
106   grnexmpl.g \
107   groff.info \
108   groff-*.info \
109   gnu.eps
110
111 RM=rm -f
112
113 .SUFFIXES: .me .ms .ps .html
114
115 # For simplicity, we always call preconv, grn, and eqn.
116 .me.ps:
117         $(GROFF) -k -Tps -ge -me >$@
118
119 .ms.html:
120         $(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
121                  -P-D$(imagedir) -P-V -Thtml -ms >$@
122 .ms.ps:
123         $(GROFF) -Tps -ms -mwww >$@
124
125 all: $(make_otherdoc) \
126      $(make_infodoc) \
127      $(make_htmldoc) \
128      $(make_examples) \
129      $(make_htmlexamples)
130
131 otherdoc: $(PROCESSEDDOCFILES)
132 infodoc: groff.info
133 htmldoc: $(HTMLDOCFILES)
134
135 examples: examples.stamp $(PROCESSEDEXAMPLEFILES)
136
137 html_examples: $(HTMLEXAMPLEFILES)
138
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 .; \
147           fi; \
148         fi
149         echo timestamp > $@
150
151 groff.info: groff.texinfo
152         $(MAKEINFO) --enable-encoding -I$(srcdir) $(srcdir)/groff.texinfo
153
154 gnu.eps: gnu.xpm
155         xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 \
156           | $(pnmtops_nosetpage) -noturn -rle >$@
157
158 pic.html: pic.ms
159         $(GROFF) -P-p -P-I`basename $< | sed -e 's|.ms$$||'` \
160                  -P-D$(imagedir) -P-j`basename $< | sed -e 's|.ms$$||'` \
161                  -Thtml -P-V -ms >$@
162
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 >$@
167
168 webpage.ps: gnu.eps
169
170 grnexmpl.ps: grnexmpl.me grnexmpl.g
171
172 distfiles: groff.info gnu.eps
173
174 install_data: install_always $(make_install_otherdoc) \
175               $(make_install_infodoc) $(make_install_htmldoc) \
176               $(make_install_examples)
177
178 install_always:
179         -test -d $(DESTDIR)$(docdir) || $(mkinstalldirs) $(DESTDIR)$(docdir)
180
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; \
185         done
186         for f in $(PROCESSEDDOCFILES); do \
187           $(RM) $(DESTDIR)$(docdir)/$$f; \
188           $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f; \
189         done
190
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 \
197             f=`basename $$p`; \
198             $(RM) $(DESTDIR)$(infodir)/$$f; \
199             $(INSTALL_DATA) $$p $(DESTDIR)$(infodir)/$$f; \
200           done
201         $(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) \
202           $(DESTDIR)$(infodir)/groff.info
203
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; \
210         done
211         -test -d $(DESTDIR)$(htmldocimagedir) \
212           || $(mkinstalldirs) $(DESTDIR)$(htmldocimagedir)
213         $(RM) $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
214         $(INSTALL_DATA) $(imagedir)/$(HTMLDOCIMAGEFILES) \
215           $(DESTDIR)$(htmldocimagedir)
216
217 install_examples: install_always install_examples_always \
218                   $(make_install_htmlexamples)
219
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; \
230         done
231         for f in $(PROCESSEDEXAMPLEFILES); do \
232           $(RM) $(DESTDIR)$(exampledir)/$$f; \
233           $(INSTALL_DATA) $$f $(DESTDIR)$(exampledir)/$$f; \
234         done
235
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; \
240         done
241         -test -d $(DESTDIR)$(exampleimagedir) \
242           || $(mkinstalldirs) $(DESTDIR)$(exampleimagedir)
243         $(RM) $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
244         $(INSTALL_DATA) $(imagedir)/$(HTMLEXAMPLEIMAGEFILES) \
245           $(DESTDIR)$(exampleimagedir)
246
247 uninstall_sub: uninstall_always \
248                 $(make_uninstall_infodoc) $(make_uninstall_htmldoc) \
249                 $(make_uninstall_examples)
250
251 uninstall_always:
252         -for f in $(DOCFILES) $(PROCESSEDDOCFILES); do \
253           $(RM) $(DESTDIR)$(docdir)/$$f; \
254         done
255
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; \
261         done
262
263 uninstall_htmldoc: uninstall_always
264         -for f in `ls $(HTMLDOCFILESALL)`; do \
265           $(RM) $(DESTDIR)$(htmldocdir)/$$f; \
266         done
267         $(RM) $(DESTDIR)$(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
268         -test -d $(DESTDIR)$(htmldocimagedir) && \
269           rmdir $(DESTDIR)$(htmldocimagedir)
270
271 uninstall_examples: uninstall_always uninstall_examples_always \
272                     $(make_uninstall_htmlexamples)
273         -test -d $(DESTDIR)$(exampledir) && \
274           rmdir $(DESTDIR)$(exampledir)
275
276 uninstall_examples_always:
277         -for f in $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES); do \
278           $(RM) $(DESTDIR)$(exampledir)/$$f; \
279         done
280         $(RM) $(DESTDIR)$(exampledir)/gnu.eps
281
282 uninstall_htmlexamples: uninstall_examples_always
283         -for f in `ls $(HTMLEXAMPLEFILESALL)`; do \
284           $(RM) $(DESTDIR)$(exampledir)/$$f; \
285         done
286         $(RM) $(DESTDIR)$(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
287         -test -d $(DESTDIR)$(exampleimagedir) && \
288           rmdir $(DESTDIR)$(exampleimagedir)
289
290 ########################################################################
291 # Emacs settings
292 ########################################################################
293 #
294 # Local Variables:
295 # mode: makefile
296 # End: