* Dvi.c (OpenFile): Use tmpdir() for security reasons.
[s-roff.git] / Makefile.comm
blob866d5e6d86533b62c2a60ccb8eef78edd47d8d08
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.
20 # Makefile.comm
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=$(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 MOSTLYCLEANFILES=$(MANCLEAN) $(PROG) $(OBJS) $(GENSRCS) $(GENHDRS) \
42   depend.temp core y.output $(CLEANADD)
43 CLEANFILES=$(LIBCLEAN)
44 DISTCLEANFILES=TAGS Makefile Makefile.dep
45 REALCLEANFILES=$(YTABC) $(YTABH)
46 NAMEPREFIX=
47 HDRS=
48 MANPAGES=$(MAN1) $(MAN5) $(MAN7)
49 MANCLEAN=$(MANPAGES)
50 fontsubdir=$(fontdir)/dev$(DEV)
52 all install install_bin install_data TAGS depend distfiles uninstall_sub:
54 install: prefix_must_exist install_bin install_data
55 uninstall: uninstall_sub
56 pure:
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
63 prefix_must_exist:
64         @test -d $(prefix) \
65           || (echo ; \
66               echo The prefix directory \`$(prefix)\' doesn\'t exist; \
67               echo ; \
68               exit 1)
70 mostlyclean:
71         -rm -f $(MOSTLYCLEANFILES)
73 clean:
74         -rm -f $(CLEANFILES) $(MOSTLYCLEANFILES)
76 distclean:
77         -rm -f $(DISTCLEANFILES) $(CLEANFILES) $(MOSTLYCLEANFILES)
79 realclean:
80         -rm -f $(REALCLEANFILES) $(DISTCLEANFILES) $(CLEANFILES) \
81           $(MOSTLYCLEANFILES)
83 extraclean:
84         -rm -f $(DISTCLEANFILES) $(CLEANFILES) $(MOSTLYCLEANFILES) \
85           \#* *~ =* core junk grot old temp tmp tem
87 .SUFFIXES:
88 .SUFFIXES: .o .cc .c .y .man .n
90 .cc.o:
91         $(COMPILE.cc) $<
93 .c.o:
94         $(COMPILE.c) $<
96 .y.cc:
97         if test -n "$(YTABH)"; then \
98           $(YACC) $(YACCFLAGS) -d $<; \
99         else \
100           $(YACC) $(YACCFLAGS) $<; \
101         fi
102         mv y.tab.c $@
103 # Avoid ending up with two versions of $(YTABH).
104         if test -n "$(YTABH)"; then \
105           if test -f $(srcdir)/$(YTABH); then \
106             rm -f $(YTABH); \
107             mv y.tab.h $(srcdir)/$(YTABH); \
108           else \
109             mv y.tab.h $(YTABH); \
110           fi; \
111         fi
113 version=`cat $(top_srcdir)/VERSION`
114 # No additional number for the groff archive if revision is zero
115 revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION`
117 .man.n:
118         @echo Making $@ from $<
119         @-rm -f $@
120         @sed -e "s;@FONTDIR@;$(fontdir);g" \
121         -e "s;@FONTPATH@;$(fontpath);g" \
122         -e "s;@MACRODIR@;$(tmacdir);g" \
123         -e "s;@MACROPATH@;$(tmacpath);g" \
124         -e "s;@DEVICE@;$(DEVICE);g" \
125         -e "s;@DEFAULT_INDEX@;$(indexdir)/$(indexname);g" \
126         -e "s;@DEFAULT_INDEX_NAME@;$(indexname);g" \
127         -e "s;@INDEX_SUFFIX@;$(indexext);g" \
128         -e "s;@COMMON_WORDS_FILE@;$(common_words_file);g" \
129         -e "s;@MAN1EXT@;$(man1ext);g" \
130         -e "s;@MAN5EXT@;$(man5ext);g" \
131         -e "s;@MAN7EXT@;$(man7ext);g" \
132         -e "s;@TMAC_S_PREFIX@;$(tmac_s_prefix);g" \
133         -e "s;@TMAC_M_PREFIX@;$(tmac_m_prefix);g" \
134         -e "s;@TMAC_AN_PREFIX@;$(tmac_an_prefix);g" \
135         -e "s;@TMAC_MDIR@;$(tmacdir)/mm;g" \
136         -e "s;@BROKEN_SPOOLER_FLAGS@;$(BROKEN_SPOOLER_FLAGS);g" \
137         -e "s;@VERSION@;$(version)$(revision);g" \
138         -e "s;@MDATE@;`$(SHELL) $(top_srcdir)/mdate.sh $<`;g" \
139         -e "s;@g@;$(g);g" \
140         -e "s;@G@;`echo $(g) | tr [a-z] [A-Z]`;g" \
141         $< >$@
143 .PHONY: install_man
144 install_man:
145         -test -d $(manroot) || $(mkinstalldirs) $(manroot)
146         -test -d $(man1dir) || $(mkinstalldirs) $(man1dir)
147         @-pages="$(MAN1)"; \
148         for p in $$pages; do \
149          prog=`basename $$p .n`; \
150          target=$(man1dir)/$(NAMEPREFIX)$$prog.$(man1ext); \
151          rm -f $$target; \
152          echo $(INSTALL_DATA) $$p $$target; \
153          $(INSTALL_DATA) $$p $$target; \
154         done
155         -test -d $(man5dir) || $(mkinstalldirs) $(man5dir)
156         @-pages="$(MAN5)"; \
157         for p in $$pages; do \
158          target=$(man5dir)/`basename $$p .n`.$(man5ext); \
159          rm -f $$target; \
160          echo $(INSTALL_DATA) $$p $$target; \
161          $(INSTALL_DATA) $$p $$target; \
162         done
163         -test -d $(man7dir) || $(mkinstalldirs) $(man7dir)
164         @-pages="$(MAN7)"; \
165         for p in $$pages; do \
166          target=$(man7dir)/`basename $$p .n`.$(man7ext); \
167          rm -f $$target; \
168          echo $(INSTALL_DATA) $$p $$target; \
169          $(INSTALL_DATA) $$p $$target; \
170         done
172 .PHONY: uninstall_man
173 uninstall_man:
174         @-pages="$(MAN1)"; \
175         for p in $$pages; do \
176          target=$(man1dir)/$(NAMEPREFIX)`basename $$p .n`.$(man1ext); \
177          echo rm -f $$target; \
178          rm -f $$target; \
179         done
180         @-pages="$(MAN5)"; \
181         for p in $$pages; do \
182          target=$(man5dir)/`basename $$p .n`.$(man5ext); \
183          echo rm -f $$target; \
184          rm -f $$target; \
185         done
186         @-pages="$(MAN7)"; \
187         for p in $$pages; do \
188          target=$(man7dir)/`basename $$p .n`.$(man7ext); \
189          echo rm -f $$target; \
190          rm -f $$target; \
191         done
193 .PHONY: install_prog
194 install_prog:
195         -test -d $(bindir) || $(mkinstalldirs) $(bindir)
196         rm -f $(bindir)/$(NAMEPREFIX)$(PROG)
197         $(INSTALL_PROGRAM) $(PROG) $(bindir)/$(NAMEPREFIX)$(PROG)
199 .PHONY: uninstall_prog
200 uninstall_prog:
201         -rm -f $(bindir)/$(NAMEPREFIX)$(PROG)   
203 .PHONY: install_dev
204 install_dev:
205         -test -d $(datadir) || $(mkinstalldirs) $(datadir)
206         -test -d $(datasubdir) || $(mkinstalldirs) $(datasubdir)
207         -test -d $(fontdir) || $(mkinstalldirs) $(fontdir)
208         -test -d $(fontsubdir) || $(mkinstalldirs) $(fontsubdir)
209         -if test -d $(srcdir)/generate; then \
210           test -d $(fontsubdir)/generate || \
211             $(mkinstalldirs) $(fontsubdir)/generate; \
212         fi
213         -for f in $(DEVFILES); do \
214           rm -f $(fontsubdir)/$$f; \
215           if test -f $$f; then \
216             $(INSTALL_DATA) $$f $(fontsubdir)/$$f; \
217           else \
218             $(INSTALL_DATA) $(srcdir)/$$f $(fontsubdir)/$$f; \
219           fi; \
220         done
222 .PHONY: uninstall_dev
223 uninstall_dev:
224         -for f in $(DEVFILES); do rm -f $(fontsubdir)/$$f; done
225         -if test -d $(fontsubdir)/generate; then \
226           rmdir $(fontsubdir)/generate; \
227         fi
228         -rmdir $(fontsubdir)
230 .PHONY: depend_src
231 depend_src: depend.temp
232         mv depend.temp Makefile.dep
234 depend.temp: FORCE
235         > depend.temp;
236         test -z "$(CCSRCS)$(YTABC)"  \
237           || $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $(YTABC) >>depend.temp
238         test -z "$(CSRCS)" \
239           || $(CC) $(ALL_CFLAGS) -MM $(CSRCS) >>depend.temp
240         if test -n "$(YTABH)"; then \
241           sed -e 's|$(YTABH)|$(YTABC)|g' depend.temp >depend.temp1; \
242           mv depend.temp1 depend.temp; \
243         fi
245 .PHONY: TAGS_src
246 TAGS_src:
247         $(ETAGS) $(ETAGSFLAGS) $(CCSRCS) $(CSRCS)
248         test -z "$(GRAM)$(HDRS)" \
249           || $(ETAGS) $(ETAGSFLAGS) -a $(ETAGSCCFLAG) $(GRAM) $(HDRS)
251 Makefile:
252         -rm -f Makefile
253         echo srcdir=$(srcdir) >>Makefile
254         echo VPATH=$(VPATH) >>Makefile
255         cat $(MAKEFILEPARTS) /dev/null >>Makefile
257 FORCE:
259 .NOEXPORT: