Merge from vendor branch CVS:
[dragonfly.git] / contrib / groff / Makefile.comm
1 # Copyright (C) 1989-2000, 2002 Free Software Foundation, Inc.
2 #      Written by James Clark (jjc@jclark.com)
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 # Makefile.comm
21 #
22 SHELL=/bin/sh
23 INCLUDES=-I. -I$(srcdir) \
24   -I$(top_builddir)/src/include -I$(top_srcdir)/src/include
25 ALL_CCFLAGS=$(INCLUDES) $(CCDEFINES) $(CCFLAGS) $(CPPFLAGS)
26 COMPILE.cc=$(CCC) $(ALL_CCFLAGS) -c
27 ALL_CFLAGS=$(INCLUDES) $(CDEFINES) $(CFLAGS) $(CPPFLAGS)
28 COMPILE.c=$(CC) $(ALL_CFLAGS) -c
29 LINK.cc=$(CCC) $(CCFLAGS) $(LDFLAGS)
30 LINK.c=$(CC) $(CFLAGS) $(LDFLAGS)
31 LIBGROFF=$(top_builddir)/src/libs/libgroff/libgroff.a
32 LIBBIB=$(top_builddir)/src/libs/libbib/libbib.a
33 LIBDRIVER=$(top_builddir)/src/libs/libdriver/libdriver.a
34 MLIB=
35 XLIBS=
36 YTABH=
37 YTABC=
38 GRAM=
39 LIBCLEAN=
40 CLEANADD=
41 CLEANDIRADD=
42 CLEANNOTSRCDIRADD=
43 MOSTLYCLEANFILES=$(MANCLEAN) $(PROG) $(OBJS) $(GENSRCS) $(GENHDRS) \
44   depend.temp core y.output $(CLEANADD)
45 CLEANFILES=$(LIBCLEAN)
46 DISTCLEANFILES=TAGS Makefile Makefile.dep
47 REALCLEANFILES=$(YTABC) $(YTABH)
48 NAMEPREFIX=
49 HDRS=
50 MANPAGES=$(MAN1) $(MAN5) $(MAN7)
51 MANCLEAN=$(MANPAGES)
52 fontsubdir=$(fontdir)/dev$(DEV)
53
54 all install install_bin install_data TAGS depend distfiles uninstall_sub:
55
56 install: prefix_must_exist install_bin install_data
57 uninstall: uninstall_sub
58 pure:
59
60 .PHONY: all clean distclean mostlyclean realclean extraclean depend distfiles
61 .PHONY: install install_bin install_data prefix_must_exist
62 .PHONY: uninstall uninstall_sub
63 .PHONY: pure
64
65 prefix_must_exist:
66         @test -d $(prefix) \
67           || (echo ; \
68               echo The prefix directory \`$(prefix)\' doesn\'t exist; \
69               echo ; \
70               exit 1)
71
72 mostlyclean:
73         -rm -f $(MOSTLYCLEANFILES)
74         -rm -rf $(CLEANDIRADD)
75         -@if test `cd $(srcdir); pwd` = `pwd`; then \
76           :; \
77         else \
78           rm -f $(CLEANNOTSRCDIRADD); \
79         fi
80
81 clean: mostlyclean
82         -rm -f $(CLEANFILES)
83
84 distclean: clean
85         -rm -f $(DISTCLEANFILES)
86         -@if test `cd $(srcdir); pwd` = `pwd`; then \
87           :; \
88         else \
89           rm -f $(YTABC) $(YTABH); \
90         fi
91
92 realclean: distclean
93         -rm -f $(REALCLEANFILES)
94
95 extraclean: distclean
96         -rm -f \#* *~ =* core junk grot old temp tmp tem
97
98 .SUFFIXES:
99 .SUFFIXES: .o .obj .cc .c .y .man .n
100
101 .cc.o:
102         $(COMPILE.cc) $<
103
104 .c.o:
105         $(COMPILE.c) $<
106
107 .cc.obj:
108         $(COMPILE.cc) $<
109
110 .c.obj:
111         $(COMPILE.c) $<
112
113 .y.cc:
114         if test -n "$(YTABH)"; then \
115           $(YACC) $(YACCFLAGS) -d $<; \
116         else \
117           $(YACC) $(YACCFLAGS) $<; \
118         fi
119         -test -f y.tab.h && mv y.tab.h y_tab.h
120         -test -f y.tab.c && mv y.tab.c y_tab.c
121         mv y_tab.c $(YTABC)
122         if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi
123
124 # The next rule is needed for make of Solaris 2.5.1 to override its
125 # built-in .y.o rule (which takes precedence over the .y.cc rule above).
126 .y.o:
127         if test -n "$(YTABH)"; then \
128           $(YACC) $(YACCFLAGS) -d $<; \
129         else \
130           $(YACC) $(YACCFLAGS) $<; \
131         fi
132         -test -f y.tab.h && mv y.tab.h y_tab.h
133         -test -f y.tab.c && mv y.tab.c y_tab.c
134         mv y_tab.c $(YTABC)
135         if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi
136         $(COMPILE.cc) $(YTABC)
137
138 .man.n:
139         @echo Making $@ from $<
140         @-rm -f $@
141         @sed -e "s|@BINDIR@|$(bindir)|g" \
142         -e "s|@FONTDIR@|$(fontdir)|g" \
143         -e "s|@LOCALFONTDIR@|$(localfontdir)|g" \
144         -e "s|@LEGACYFONTDIR@|$(legacyfontdir)|g" \
145         -e "s|@MACRODIR@|$(tmacdir)|g" \
146         -e "s|@SYSTEMMACRODIR@|$(systemtmacdir)|g" \
147         -e "s|@LOCALMACRODIR@|$(localtmacdir)|g" \
148         -e "s|@DOCDIR@|$(docdir)|g" \
149         -e "s|@EXAMPLEDIR@|$(exampledir)|g" \
150         -e "s|@HTMLDOCDIR@|$(htmldocdir)|g" \
151         -e "s|@DEVICE@|$(DEVICE)|g" \
152         -e "s|@DEFAULT_INDEX@|$(indexdir)/$(indexname)|g" \
153         -e "s|@DEFAULT_INDEX_NAME@|$(indexname)|g" \
154         -e "s|@INDEX_SUFFIX@|$(indexext)|g" \
155         -e "s|@COMMON_WORDS_FILE@|$(common_words_file)|g" \
156         -e "s|@MAN1EXT@|$(man1ext)|g" \
157         -e "s|@MAN5EXT@|$(man5ext)|g" \
158         -e "s|@MAN7EXT@|$(man7ext)|g" \
159         -e "s|@TMAC_S_PREFIX@|$(tmac_s_prefix)|g" \
160         -e "s|@TMAC_M_PREFIX@|$(tmac_m_prefix)|g" \
161         -e "s|@TMAC_AN_PREFIX@|$(tmac_an_prefix)|g" \
162         -e "s|@TMAC_MDIR@|$(tmacdir)/mm|g" \
163         -e "s|@BROKEN_SPOOLER_FLAGS@|$(BROKEN_SPOOLER_FLAGS)|g" \
164         -e "s|@VERSION@|$(version)$(revision)|g" \
165         -e "s|@MDATE@|`$(SHELL) $(top_srcdir)/mdate.sh $<`|g" \
166         -e "s|@g@|$(g)|g" \
167         -e "s!@G@!`echo $(g) | tr [a-z] [A-Z]`!g" \
168         $< >$@
169
170 .PHONY: install_man
171 install_man:
172         -test -d $(manroot) || $(mkinstalldirs) $(manroot)
173         -test -d $(man1dir) || $(mkinstalldirs) $(man1dir)
174         @-pages="$(MAN1)"; \
175         for p in $$pages; do \
176          prog=`basename $$p .n`; \
177          target=$(man1dir)/$(NAMEPREFIX)$$prog.$(man1ext); \
178          rm -f $$target; \
179          echo $(INSTALL_DATA) $$p $$target; \
180          $(INSTALL_DATA) $$p $$target; \
181         done
182         -test -d $(man5dir) || $(mkinstalldirs) $(man5dir)
183         @-pages="$(MAN5)"; \
184         for p in $$pages; do \
185          target=$(man5dir)/`basename $$p .n`.$(man5ext); \
186          rm -f $$target; \
187          echo $(INSTALL_DATA) $$p $$target; \
188          $(INSTALL_DATA) $$p $$target; \
189         done
190         -test -d $(man7dir) || $(mkinstalldirs) $(man7dir)
191         @-pages="$(MAN7)"; \
192         for p in $$pages; do \
193          target=$(man7dir)/`basename $$p .n`.$(man7ext); \
194          rm -f $$target; \
195          echo $(INSTALL_DATA) $$p $$target; \
196          $(INSTALL_DATA) $$p $$target; \
197         done
198
199 .PHONY: uninstall_man
200 uninstall_man:
201         @-pages="$(MAN1)"; \
202         for p in $$pages; do \
203          target=$(man1dir)/$(NAMEPREFIX)`basename $$p .n`.$(man1ext); \
204          echo rm -f $$target; \
205          rm -f $$target; \
206         done
207         @-pages="$(MAN5)"; \
208         for p in $$pages; do \
209          target=$(man5dir)/`basename $$p .n`.$(man5ext); \
210          echo rm -f $$target; \
211          rm -f $$target; \
212         done
213         @-pages="$(MAN7)"; \
214         for p in $$pages; do \
215          target=$(man7dir)/`basename $$p .n`.$(man7ext); \
216          echo rm -f $$target; \
217          rm -f $$target; \
218         done
219
220 .PHONY: install_prog
221 install_prog:
222         -test -d $(bindir) || $(mkinstalldirs) $(bindir)
223         rm -f $(bindir)/$(NAMEPREFIX)$(PROG)
224         $(INSTALL_PROGRAM) $(PROG) $(bindir)/$(NAMEPREFIX)$(PROG)
225
226 .PHONY: uninstall_prog
227 uninstall_prog:
228         -rm -f $(bindir)/$(NAMEPREFIX)$(PROG)   
229
230 .PHONY: install_dev
231 install_dev:
232         -test -d $(datadir) || $(mkinstalldirs) $(datadir)
233         -test -d $(dataprogramdir) || $(mkinstalldirs) $(dataprogramdir)
234         -test -d $(datasubdir) || $(mkinstalldirs) $(datasubdir)
235         -test -d $(fontdir) || $(mkinstalldirs) $(fontdir)
236         -test -d $(fontsubdir) || $(mkinstalldirs) $(fontsubdir)
237         -if test -d $(srcdir)/generate; then \
238           test -d $(fontsubdir)/generate || \
239             $(mkinstalldirs) $(fontsubdir)/generate; \
240         fi
241         -for f in $(DEVFILES); do \
242           rm -f $(fontsubdir)/$$f; \
243           if test -f $$f; then \
244             $(INSTALL_DATA) $$f $(fontsubdir)/$$f; \
245           else \
246             $(INSTALL_DATA) $(srcdir)/$$f $(fontsubdir)/$$f; \
247           fi; \
248         done
249
250 .PHONY: uninstall_dev
251 uninstall_dev:
252         -for f in $(DEVFILES); do rm -f $(fontsubdir)/$$f; done
253         -if test -d $(fontsubdir)/generate; then \
254           rmdir $(fontsubdir)/generate; \
255         fi
256         -rmdir $(fontsubdir)
257
258 .PHONY: depend_src
259 depend_src: depend.temp
260         mv depend.temp Makefile.dep
261
262 depend.temp: FORCE
263         > depend.temp;
264         test -z "$(CCSRCS)$(YTABC)" \
265           || $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $(YTABC) >>depend.temp
266         test -z "$(CSRCS)" \
267           || $(CC) $(ALL_CFLAGS) -MM $(CSRCS) >>depend.temp
268         if test -n "$(YTABH)"; then \
269           sed -e 's|$(YTABH)|$(YTABC)|g' depend.temp >depend1.temp; \
270           mv depend1.temp depend.temp; \
271         fi
272
273 .PHONY: TAGS_src
274 TAGS_src:
275         $(ETAGS) $(ETAGSFLAGS) $(CCSRCS) $(CSRCS)
276         test -z "$(GRAM)$(HDRS)" \
277           || $(ETAGS) $(ETAGSFLAGS) -a $(ETAGSCCFLAG) $(GRAM) $(HDRS)
278
279 # This rule is only considered for the subdir_Makefile target.
280 Makefile:
281         -rm -f Makefile
282         echo srcdir=$(srcdir) >>Makefile
283         echo VPATH=$(VPATH) >>Makefile
284         cat $(MAKEFILEPARTS) /dev/null >>Makefile
285
286 FORCE:
287
288 .NOEXPORT: