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