Makefile.sub revision 114402
1# Copyright (C) 2002, 2003 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19
20# These may be overridden if cross-compiling.
21GROFFBIN=$(top_builddir)/src/roff/groff/groff
22GROFF_BIN_PATH=`echo $(groff_bin_dirs) | sed -e 's|  *|:|g'`
23
24# Since info files are distributed within the groff package, no
25# autoconf test for the makeinfo binary is done.
26MAKEINFO=makeinfo
27
28groff_bin_dirs=\
29  $(top_builddir)/src/roff/groff \
30  $(top_builddir)/src/roff/troff \
31  $(top_builddir)/src/preproc/pic \
32  $(top_builddir)/src/preproc/eqn \
33  $(top_builddir)/src/preproc/tbl \
34  $(top_builddir)/src/preproc/grn \
35  $(top_builddir)/src/preproc/refer \
36  $(top_builddir)/src/preproc/soelim \
37  $(top_builddir)/src/preproc/html \
38  $(top_builddir)/src/devices/grops \
39  $(top_builddir)/src/devices/grohtml
40
41FFLAG=-F$(top_builddir)/font -F$(top_srcdir)/font
42TFLAG=-M$(top_builddir)/tmac -M$(top_srcdir)/tmac
43
44GROFF=\
45  GROFF_COMMAND_PREFIX=''; \
46  export GROFF_COMMAND_PREFIX; \
47  GROFF_BIN_PATH=$(GROFF_BIN_PATH); \
48  export GROFF_BIN_PATH; \
49  sed -e "s;@VERSION@;$(version)$(revision);" $< \
50  | $(GROFFBIN) $(TFLAG) $(FFLAG) -Upet -ww
51
52DOCFILES=\
53  meref.me \
54  meintro.me \
55  pic.ms
56
57PROCESSEDDOCFILES=\
58  meref.ps \
59  meintro.ps \
60  pic.ps
61
62HTMLDOCFILES=\
63  pic.html
64
65HTMLDOCIMAGEFILES=\
66  pic*
67
68EXAMPLEFILES=\
69  webpage.ms \
70  grnexmpl.g \
71  grnexmpl.me
72
73PROCESSEDEXAMPLEFILES=\
74  webpage.ps \
75  grnexmpl.ps
76
77HTMLEXAMPLEFILES=\
78  webpage.html
79
80HTMLEXAMPLEIMAGEFILES=\
81  webpage*
82
83imagedir=img
84htmldocimagedir=$(htmldocdir)/$(imagedir)
85exampleimagedir=$(exampledir)/$(imagedir)
86
87CLEANADD=\
88  $(PROCESSEDDOCFILES) \
89  $(PROCESSEDEXAMPLEFILES) \
90  $(HTMLEXAMPLEFILES) \
91  $(HTMLDOCFILES)
92
93CLEANDIRADD=\
94  $(imagedir)
95
96CLEANNOTSRCDIRADD=\
97  grnexmpl.g \
98  groff \
99  groff-* \
100  gnu.eps \
101  gnu.png
102
103.SUFFIXES: .me .ms .ps .html
104
105# For simplicity, we always call grn and eqn.
106.me.ps:
107	$(GROFF) -Tps -ge -me >$@
108
109.ms.html:
110	$(GROFF) -P-p -P-b -P-I`basename $< | sed -e 's|.ms$$||'` \
111		 -P-D$(imagedir) -Thtml -ms >$@
112.ms.ps:
113	$(GROFF) -Tps -ms -mwww >$@
114
115
116all: groff $(PROCESSEDDOCFILES) prepare_examples \
117     $(PROCESSEDEXAMPLEFILES) $(make_html)
118
119html: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES)
120
121prepare_examples: grnexmpl.g
122	test -f grnexmpl.g || cp $(srcdir)/grnexmpl.g .
123
124groff: groff.texinfo
125	$(MAKEINFO) -I$(srcdir) $(srcdir)/groff.texinfo
126
127gnu.eps: gnu.xpm
128	xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | \
129          $(pnmtops_nosetpage) -noturn -rle >$@
130gnu.png: gnu.xpm
131	xpmtoppm $(srcdir)/gnu.xpm | pnmdepth 15 | pnmtopng >$@
132
133webpage.html: webpage.ms gnu.png
134webpage.ps: gnu.eps
135
136grnexmpl.ps: grnexmpl.me grnexmpl.g
137
138distfiles: groff gnu.eps gnu.png
139
140install_data: groff $(DOCFILES) $(PROCESSEDDOCFILES) $(make_install_html) \
141              $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES)
142	-test -d $(infodir) || $(mkinstalldirs) $(infodir)
143# Prefer info files in builddir over srcdir; we test for
144# the existence of `groff'.
145	d=.; \
146	  test -f "groff" || d=$(srcdir); \
147	  for f in $$d/groff $$d/groff-*; do \
148	    rm -f $(infodir)/`basename $$f`; \
149	    $(INSTALL_DATA) $$f $(infodir)/`basename $$f`; \
150	  done
151	$(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/groff
152	-test -d $(docdir) || $(mkinstalldirs) $(docdir)
153	for f in $(DOCFILES); do \
154	  rm -f $(docdir)/$$f; \
155	  $(INSTALL_DATA) $(srcdir)/$$f $(docdir)/$$f; \
156	done
157	for f in $(PROCESSEDDOCFILES); do \
158	  rm -f $(docdir)/$$f; \
159	  $(INSTALL_DATA) $$f $(docdir)/$$f; \
160	done
161	-test -d $(exampledir) || $(mkinstalldirs) $(exampledir)
162	for f in $(EXAMPLEFILES); do \
163	  rm -f $(exampledir)/$$f; \
164	  $(INSTALL_DATA) $(srcdir)/$$f $(exampledir)/$$f; \
165	done
166	for f in $(PROCESSEDEXAMPLEFILES); do \
167	  rm -f $(exampledir)/$$f; \
168	  $(INSTALL_DATA) $$f $(exampledir)/$$f; \
169	done
170
171install_html: $(HTMLDOCFILES) $(HTMLEXAMPLEFILES)
172	-test -d $(htmldocdir) || $(mkinstalldirs) $(htmldocdir)
173	for f in $(HTMLDOCFILES); do \
174	  rm -f $(htmldocdir)/$$f; \
175	  $(INSTALL_DATA) $$f $(htmldocdir)/$$f; \
176	done
177	-test -d $(htmldocimagedir) || $(mkinstalldirs) $(htmldocimagedir)
178	rm -f $(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
179	$(INSTALL_DATA) $(imagedir)/$(HTMLDOCIMAGEFILES) $(htmldocimagedir)
180	-test -d $(exampledir) || $(mkinstalldirs) $(exampledir)
181	for f in $(HTMLEXAMPLEFILES); do \
182	  rm -f $(exampledir)/$$f; \
183	  $(INSTALL_DATA) $$f $(exampledir)/$$f; \
184	done
185	-test -d $(exampleimagedir) || $(mkinstalldirs) $(exampleimagedir)
186	rm -f $(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
187	$(INSTALL_DATA) $(imagedir)/$(HTMLEXAMPLEIMAGEFILES) $(exampleimagedir)
188
189uninstall_sub:
190	-for f in groff groff-*; do \
191	  rm -f $(infodir)/$$f; \
192	done
193	$(INSTALL_INFO) --delete --info-dir=$(infodir) $(infodir)/groff
194	-for f in $(DOCFILES) $(PROCESSEDDOCFILES); do \
195	  rm -f $(docdir)/$$f; \
196	done
197	-for f in $(HTMLDOCFILES); do \
198	  rm -f $(htmldocdir)/$$f; \
199	done
200	-rm -f $(htmldocimagedir)/$(HTMLDOCIMAGEFILES)
201	-rmdir $(htmldocimagedir)
202	-for f in $(EXAMPLEFILES) $(PROCESSEDEXAMPLEFILES); do \
203	  rm -f $(exampledir)/$$f; \
204	done
205	-rm -f $(exampleimagedir)/$(HTMLEXAMPLEIMAGEFILES)
206	-rmdir $(exampleimagedir)
207