]>
Commit | Line | Data |
---|---|---|
b2f877e9 | 1 | # Top level makefile fragment for GNU Fortran. -*-makefile-*- |
df4883a6 | 2 | # Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc. |
b2f877e9 | 3 | |
4 | #This file is part of GNU Fortran. | |
5 | ||
6 | #GNU Fortran is free software; you can redistribute it and/or modify | |
7 | #it under the terms of the GNU General Public License as published by | |
8 | #the Free Software Foundation; either version 2, or (at your option) | |
9 | #any later version. | |
10 | ||
11 | #GNU Fortran is distributed in the hope that it will be useful, | |
12 | #but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | #GNU General Public License for more details. | |
15 | ||
16 | #You should have received a copy of the GNU General Public License | |
17 | #along with GNU Fortran; see the file COPYING. If not, write to | |
298f96db | 18 | #the Free Software Foundation, 59 Temple Place - Suite 330, |
19 | #Boston, MA 02111-1307, USA. | |
b2f877e9 | 20 | |
21 | # This file provides the language dependent support in the main Makefile. | |
22 | # Each language makefile fragment must provide the following targets: | |
23 | # | |
24 | # foo.all.build, foo.all.cross, foo.start.encap, foo.rest.encap, | |
25 | # foo.info, foo.dvi, | |
26 | # foo.install-normal, foo.install-common, foo.install-info, foo.install-man, | |
98fb2ff8 | 27 | # foo.uninstall, |
b2f877e9 | 28 | # foo.mostlyclean, foo.clean, foo.distclean, foo.extraclean, |
29 | # foo.maintainer-clean, foo.stage1, foo.stage2, foo.stage3, foo.stage4 | |
30 | # | |
31 | # where `foo' is the name of the language. | |
32 | # | |
33 | # It should also provide rules for: | |
34 | # | |
298f96db | 35 | # - making any compiler driver (eg: g++) |
36 | # - the compiler proper (eg: cc1plus) | |
b2f877e9 | 37 | # - define the names for selecting the language in LANGUAGES. |
38 | # | |
39 | # $(srcdir) must be set to the gcc/ source directory (not gcc/f/). | |
d6a51581 | 40 | #\f |
298f96db | 41 | # Actual name to use when installing a native compiler. |
b2f877e9 | 42 | G77_INSTALL_NAME = `t='$(program_transform_name)'; echo g77 | sed $$t` |
43 | ||
298f96db | 44 | # Actual name to use when installing a cross-compiler. |
b2f877e9 | 45 | G77_CROSS_NAME = `t='$(program_transform_cross_name)'; echo g77 | sed $$t` |
d6a51581 | 46 | #\f |
b2f877e9 | 47 | # Define the names for selecting f77 in LANGUAGES. |
48 | # Note that it would be nice to move the dependency on g77 | |
49 | # into the F77 rule, but that needs a little bit of work | |
50 | # to do the right thing within all.cross. | |
2848c1dc | 51 | F77 f77: f771$(exeext) |
b2f877e9 | 52 | |
53 | # Tell GNU make to ignore these if they exist. | |
9682c2b4 | 54 | .PHONY: F77 f77 f77.all.build f77.all.cross \ |
55 | f77.start.encap f77.rest.encap f77.info f77.dvi \ | |
eca81fa5 | 56 | f77.install-normal \ |
9682c2b4 | 57 | f77.install-common f77.install-info f77.install-man \ |
58 | f77.uninstall f77.mostlyclean f77.clean f77.distclean \ | |
98fb2ff8 | 59 | f77.extraclean f77.maintainer-clean f77.rebuilt \ |
298f96db | 60 | f77.stage1 f77.stage2 f77.stage3 f77.stage4 |
b2f877e9 | 61 | |
c3429058 | 62 | g77spec.o: $(srcdir)/f/g77spec.c $(srcdir)/f/version.h system.h $(GCC_H) \ |
63 | $(CONFIG_H) | |
298f96db | 64 | case "$(LANGUAGES)" in \ |
65 | *[fF]77*) touch lang-f77;; \ | |
66 | *) rm -f lang-f77;; \ | |
67 | esac | |
68 | if [ -f lang-f77 ]; then \ | |
f357ac87 | 69 | $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ |
70 | $(srcdir)/f/g77spec.c $(OUTPUT_OPTION); \ | |
e51a6d31 | 71 | else true; fi |
298f96db | 72 | |
73 | g77version.o: $(srcdir)/f/version.c | |
74 | case "$(LANGUAGES)" in \ | |
75 | *[fF]77*) touch lang-f77;; \ | |
76 | *) rm -f lang-f77;; \ | |
77 | esac | |
78 | if [ -f lang-f77 ]; then \ | |
79 | $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -o g77version.o \ | |
a7536ed8 | 80 | $(srcdir)/f/version.c; \ |
e51a6d31 | 81 | else true; fi |
63fd5d1e | 82 | |
63fd5d1e | 83 | # Create the compiler driver for g77. |
cdf76fe2 | 84 | g77$(exeext): gcc.o g77spec.o g77version.o version.o prefix.o intl.o \ |
298f96db | 85 | $(LIBDEPS) $(EXTRA_GCC_OBJS) |
86 | if [ -f lang-f77 ]; then \ | |
cdf76fe2 | 87 | $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o g77spec.o g77version.o \ |
435f2113 | 88 | version.o prefix.o intl.o $(EXTRA_GCC_OBJS) $(LIBS); \ |
e51a6d31 | 89 | else true; fi |
63fd5d1e | 90 | |
91 | # Create a version of the g77 driver which calls the cross-compiler. | |
92 | g77-cross$(exeext): g77$(exeext) | |
298f96db | 93 | if [ -f lang-f77 ]; then \ |
94 | rm -f g77-cross$(exeext); \ | |
95 | cp g77$(exeext) g77-cross$(exeext); \ | |
e51a6d31 | 96 | else true; fi |
b2f877e9 | 97 | |
f357ac87 | 98 | # The compiler itself. |
99 | ||
100 | F77_OBJS = f/bad.o f/bit.o f/bld.o f/com.o f/data.o f/equiv.o f/expr.o \ | |
101 | f/global.o f/implic.o f/info.o f/intrin.o f/lab.o f/lex.o f/malloc.o \ | |
102 | f/name.o f/parse.o f/proj.o f/src.o f/st.o f/sta.o f/stb.o f/stc.o \ | |
103 | f/std.o f/ste.o f/storag.o f/stp.o f/str.o f/sts.o f/stt.o f/stu.o \ | |
104 | f/stv.o f/stw.o f/symbol.o f/target.o f/top.o f/type.o f/version.o f/where.o | |
105 | ||
106 | # Use loose warnings for this front end. | |
107 | f-warn = | |
108 | ||
109 | f771$(exeext): $(F77_OBJS) $(BACKEND) $(LIBDEPS) | |
110 | rm -f f771$(exeext) | |
111 | $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(F77_OBJS) $(BACKEND) $(LIBS) | |
112 | ||
113 | # Keyword tables. | |
114 | f/stamp-str: f/str-1t.h f/str-1t.j f/str-2t.h f/str-2t.j \ | |
115 | f/str-fo.h f/str-fo.j f/str-io.h f/str-io.j f/str-nq.h f/str-nq.j \ | |
116 | f/str-op.h f/str-op.j f/str-ot.h f/str-ot.j | |
117 | touch f/stamp-str | |
118 | ||
119 | f/str-1t.h f/str-1t.j: f/fini$(build_exeext) f/str-1t.fin | |
120 | ./f/fini$(build_exeext) $(srcdir)/f/str-1t.fin f/str-1t.j f/str-1t.h | |
121 | ||
122 | f/str-2t.h f/str-2t.j: f/fini$(build_exeext) f/str-2t.fin | |
123 | ./f/fini$(build_exeext) $(srcdir)/f/str-2t.fin f/str-2t.j f/str-2t.h | |
124 | ||
125 | f/str-fo.h f/str-fo.j: f/fini$(build_exeext) f/str-fo.fin | |
126 | ./f/fini$(build_exeext) $(srcdir)/f/str-fo.fin f/str-fo.j f/str-fo.h | |
127 | ||
128 | f/str-io.h f/str-io.j: f/fini$(build_exeext) f/str-io.fin | |
129 | ./f/fini$(build_exeext) $(srcdir)/f/str-io.fin f/str-io.j f/str-io.h | |
130 | ||
131 | f/str-nq.h f/str-nq.j: f/fini$(build_exeext) f/str-nq.fin | |
132 | ./f/fini$(build_exeext) $(srcdir)/f/str-nq.fin f/str-nq.j f/str-nq.h | |
133 | ||
134 | f/str-op.h f/str-op.j: f/fini$(build_exeext) f/str-op.fin | |
135 | ./f/fini$(build_exeext) $(srcdir)/f/str-op.fin f/str-op.j f/str-op.h | |
136 | ||
137 | f/str-ot.h f/str-ot.j: f/fini$(build_exeext) f/str-ot.fin | |
138 | ./f/fini$(build_exeext) $(srcdir)/f/str-ot.fin f/str-ot.j f/str-ot.h | |
139 | ||
93ce8ce4 | 140 | f/fini$(build_exeext): f/fini.o f/proj-h.o safe-ctype.o |
f357ac87 | 141 | $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini$(build_exeext) \ |
93ce8ce4 | 142 | f/fini.o f/proj-h.o safe-ctype.o |
f357ac87 | 143 | |
144 | f/fini.o: | |
345a1501 | 145 | $(HOST_CC) $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \ |
146 | -c $(srcdir)/f/fini.c $(OUTPUT_OPTION) | |
f357ac87 | 147 | |
148 | # Like proj.o, but depends on hconfig.h instead of config.h. | |
149 | f/proj-h.o: f/proj.c f/proj.h $(HCONFIG_H) $(SYSTEM_H) $(ASSERT_H) $(GLIMITS_H) | |
345a1501 | 150 | $(HOST_CC) -DUSE_HCONFIG \ |
f357ac87 | 151 | $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) \ |
345a1501 | 152 | -c $(srcdir)/f/proj.c $(OUTPUT_OPTION) |
b2f877e9 | 153 | |
d6a51581 | 154 | #\f |
b2f877e9 | 155 | # Build hooks: |
156 | ||
9682c2b4 | 157 | f77.all.build: g77$(exeext) |
158 | f77.all.cross: g77-cross$(exeext) | |
159 | f77.start.encap: g77$(exeext) | |
160 | f77.rest.encap: | |
b2f877e9 | 161 | |
70fd7dcd | 162 | f77.info: f/g77.info |
163 | f77.dvi: f/g77.dvi | |
b2f877e9 | 164 | |
165 | # g77 documentation. | |
70fd7dcd | 166 | f/g77.info: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ |
74de9670 | 167 | $(srcdir)/f/ffe.texi \ |
402207c9 | 168 | $(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \ |
af590e0f | 169 | $(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi |
298f96db | 170 | case "$(LANGUAGES)" in \ |
171 | *[fF]77*) touch lang-f77;; \ | |
172 | *) rm -f lang-f77;; \ | |
173 | esac | |
174 | if [ -f lang-f77 ]; then \ | |
cddbf813 | 175 | rm -f $(srcdir)/f/g77.info-*; \ |
298f96db | 176 | $(MAKEINFO) -I$(srcdir)/f -o f/g77.info $(srcdir)/f/g77.texi; \ |
e51a6d31 | 177 | else true; fi |
b2f877e9 | 178 | |
70fd7dcd | 179 | f/g77.dvi: $(srcdir)/f/g77.texi $(srcdir)/f/bugs.texi \ |
74de9670 | 180 | $(srcdir)/f/ffe.texi \ |
298f96db | 181 | $(srcdir)/f/g77install.texi $(srcdir)/f/news.texi \ |
af590e0f | 182 | $(srcdir)/f/intdoc.texi $(srcdir)/f/root.texi |
298f96db | 183 | case "$(LANGUAGES)" in \ |
184 | *[fF]77*) touch lang-f77;; \ | |
185 | *) rm -f lang-f77;; \ | |
186 | esac | |
8b7b549f | 187 | # `tex2dvi' was used below, but the Texinfo 3.12 one won't work properly |
188 | # with the include files from $(srcdir). This use of TEXINPUTS may not | |
189 | # be universally valid. `$(TEX)' should be used if it gets defined in | |
190 | # gcc/Makefile.in. | |
298f96db | 191 | if [ -f lang-f77 ]; then \ |
8b7b549f | 192 | TEXINPUTS=$(srcdir)/f:$$TEXINPUTS tex $(srcdir)/f/g77.texi; \ |
193 | texindex g77.??; \ | |
194 | TEXINPUTS=$(srcdir)/f:$$TEXINPUTS tex $(srcdir)/f/g77.texi; \ | |
195 | mv g77.dvi f; \ | |
e51a6d31 | 196 | else true; fi |
b2f877e9 | 197 | |
f449a589 | 198 | # This dance is all about producing accurate documentation for g77's |
199 | # intrinsics with minimum fuss. f/ansify appends "\n\" to C strings | |
200 | # so ANSI C compilers can compile f/intdoc.h -- gcc can compile f/intdoc.in | |
201 | # directly, if f/intdoc.c #include'd that, but we don't want to force | |
202 | # people to install gcc just to build the documentation. We use the | |
203 | # C format for f/intdoc.in in the first place to allow a fairly "free", | |
204 | # but widely known format for documentation -- basically anyone who knows | |
205 | # how to write texinfo source and enclose it in C constants can handle | |
206 | # it, and f/ansify allows them to not even end lines with "\n\". So, | |
207 | # essentially, the C preprocessor and compiler are used to enter the | |
208 | # document snippets into a data base via name lookup, rather than duplicating | |
209 | # that kind of code here. And we use f/intdoc.c instead of straight | |
210 | # texinfo in the first place so that as much information as possible | |
211 | # contained in f/intrin.def can be inserted directly and reliably into | |
212 | # the documentation. That's better than replicating it, because it | |
213 | # reduces the likelihood of discrepancies between the docs and the compiler | |
214 | # itself, which uses f/intrin.def; in fact, many bugs in f/intrin.def have | |
215 | # been found only upon reading the documentation that was automatically | |
216 | # produced from it. | |
345a1501 | 217 | |
c58deb11 | 218 | # If the documentation files depended on executables in the build |
219 | # tree, there'd be no way to ship a source tree with the documentation | |
220 | # already generated such that `make' wouldn't attempt to rebuilt it. | |
221 | # So, we punt and arrange for the documentation files to depend on the | |
222 | # dependencies of the executables, not on the executables themselves. | |
223 | # But then, we have to build the executables explicitly in their build | |
224 | # rules. | |
225 | ||
226 | INTDOC_DEPS = $(srcdir)/f/intdoc.c $(srcdir)/f/intrin.h $(srcdir)/f/intrin.def | |
227 | ||
228 | $(srcdir)/f/intdoc.texi: $(INTDOC_DEPS) $(srcdir)/f/intdoc.in | |
229 | $(MAKE) f/intdoc$(build_exeext) | |
345a1501 | 230 | f/intdoc$(build_exeext) > $(srcdir)/f/intdoc.texi |
231 | ||
c58deb11 | 232 | f/intdoc$(build_exeext): $(INTDOC_DEPS) f/intdoc.h0 hconfig.h system.h |
80fefdf7 | 233 | $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) $(INCLUDES) \ |
c58deb11 | 234 | $(srcdir)/f/intdoc.c -o f/intdoc$(build_exeext) |
345a1501 | 235 | |
236 | f/intdoc.h0: f/intdoc.in f/ansify$(build_exeext) | |
237 | f/ansify$(build_exeext) $(srcdir)/f/intdoc.in \ | |
238 | < $(srcdir)/f/intdoc.in > f/intdoc.h0 | |
239 | ||
240 | f/ansify$(build_exeext): f/ansify.c hconfig.h system.h | |
241 | $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) $(INCLUDES) \ | |
242 | $(srcdir)/f/ansify.c -o f/ansify$(build_exeext) | |
b2f877e9 | 243 | |
af590e0f | 244 | $(srcdir)/f/BUGS: f/bugs0.texi f/bugs.texi f/root.texi |
b2f877e9 | 245 | cd $(srcdir)/f; $(MAKEINFO) -D BUGSONLY --no-header --no-split \ |
069f16fd | 246 | --no-validate -o BUGS bugs0.texi |
b2f877e9 | 247 | |
af590e0f | 248 | $(srcdir)/f/NEWS: f/news0.texi f/news.texi f/root.texi |
b2f877e9 | 249 | cd $(srcdir)/f; $(MAKEINFO) -D NEWSONLY --no-header --no-split \ |
069f16fd | 250 | --no-validate -o NEWS news0.texi |
b2f877e9 | 251 | |
98fb2ff8 | 252 | f77.rebuilt: f/g77.info $(srcdir)/f/BUGS \ |
9682c2b4 | 253 | $(srcdir)/f/NEWS |
b2f877e9 | 254 | |
d6a51581 | 255 | #\f |
b2f877e9 | 256 | # Install hooks: |
257 | # f771 is installed elsewhere as part of $(COMPILERS). | |
258 | ||
eca81fa5 | 259 | f77.install-normal: |
b2f877e9 | 260 | |
261 | # Install the driver program as $(target)-g77 | |
262 | # and also as either g77 (if native) or $(tooldir)/bin/g77. | |
89360068 | 263 | # Make sure `installdirs' target (from gcc Makefile) has been |
264 | # run, since we use libsubdir to store our `flag' file, lang-f77. | |
265 | f77.install-common: installdirs | |
298f96db | 266 | case "$(LANGUAGES)" in \ |
5f54a675 | 267 | *[fF]77*) touch $(libsubdir)/lang-f77.com;; \ |
268 | *) rm -f $(libsubdir)/lang-f77.com;; \ | |
298f96db | 269 | esac |
5f54a675 | 270 | -if [ -f $(libsubdir)/lang-f77.com -a -f f771$(exeext) ] ; then \ |
b2f877e9 | 271 | if [ -f g77-cross$(exeext) ] ; then \ |
272 | rm -f $(bindir)/$(G77_CROSS_NAME)$(exeext); \ | |
273 | $(INSTALL_PROGRAM) g77-cross$(exeext) $(bindir)/$(G77_CROSS_NAME)$(exeext); \ | |
274 | chmod a+x $(bindir)/$(G77_CROSS_NAME)$(exeext); \ | |
b2f877e9 | 275 | else \ |
276 | rm -f $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ | |
277 | $(INSTALL_PROGRAM) g77$(exeext) $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ | |
278 | chmod a+x $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ | |
b2f877e9 | 279 | fi ; \ |
280 | else true; fi | |
298f96db | 281 | @if [ -f f77-install-ok -o -f $(srcdir)/f77-install-ok ]; then \ |
282 | echo ''; \ | |
5f54a675 | 283 | echo 'Warning: gcc no longer installs an f77 command.'; \ |
298f96db | 284 | echo ' You must do so yourself. For more information,'; \ |
f357ac87 | 285 | echo ' read "Distributing Binaries" in the g77 docs.'; \ |
298f96db | 286 | echo ' (To turn off this warning, delete the file'; \ |
287 | echo ' f77-install-ok in the source or build directory.)'; \ | |
288 | echo ''; \ | |
8fcb99c1 | 289 | else true; fi |
5f54a675 | 290 | rm -f $(libsubdir)/lang-f77.com |
b2f877e9 | 291 | |
dff6b323 | 292 | # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir |
293 | # to do the install. The sed rule was copied from stmp-int-hdrs. | |
89360068 | 294 | # Make sure `installdirs' target (from gcc Makefile) has been |
295 | # run, since we use libsubdir to store our `flag' file, lang-f77. | |
296 | f77.install-info: f77.info installdirs | |
298f96db | 297 | case "$(LANGUAGES)" in \ |
5f54a675 | 298 | *[fF]77*) touch $(libsubdir)/lang-f77.info;; \ |
299 | *) rm -f $(libsubdir)/lang-f77.info;; \ | |
298f96db | 300 | esac |
5f54a675 | 301 | if [ -f $(libsubdir)/lang-f77.info -a -f f/g77.info ] ; then \ |
477bb7a3 | 302 | rm -f $(infodir)/g77.info*; \ |
303 | for f in f/g77.info*; do \ | |
304 | realfile=`echo $$f | sed -e 's|.*/\([^/]*\)$$|\1|'`; \ | |
305 | $(INSTALL_DATA) $$f $(infodir)/$$realfile; \ | |
306 | done; \ | |
9499210f | 307 | chmod a-x $(infodir)/g77.info*; \ |
e51a6d31 | 308 | else true; fi |
5f54a675 | 309 | @if [ -f $(libsubdir)/lang-f77.info -a -f $(srcdir)/f/g77.info ] ; then \ |
bad5967c | 310 | if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ |
311 | echo " install-info --info-dir=$(infodir) $(infodir)/g77.info"; \ | |
312 | install-info --info-dir=$(infodir) $(infodir)/g77.info || : ; \ | |
313 | else : ; fi; \ | |
314 | else : ; fi | |
5f54a675 | 315 | rm -f $(libsubdir)/lang-f77.info |
b2f877e9 | 316 | |
89360068 | 317 | # Make sure `installdirs' target (from gcc Makefile) has been |
318 | # run, since we use libsubdir to store our `flag' file, lang-f77. | |
319 | f77.install-man: $(srcdir)/f/g77.1 installdirs | |
298f96db | 320 | case "$(LANGUAGES)" in \ |
5f54a675 | 321 | *[fF]77*) touch $(libsubdir)/lang-f77.man;; \ |
322 | *) rm -f $(libsubdir)/lang-f77.man;; \ | |
298f96db | 323 | esac |
5f54a675 | 324 | -if [ -f $(libsubdir)/lang-f77.man -a -f f771$(exeext) ] ; then \ |
b2f877e9 | 325 | if [ -f g77-cross$(exeext) ] ; then \ |
3cf6a465 | 326 | rm -f $(man1dir)/$(G77_CROSS_NAME)$(manext); \ |
327 | $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_CROSS_NAME)$(manext); \ | |
328 | chmod a-x $(man1dir)/$(G77_CROSS_NAME)$(manext); \ | |
b2f877e9 | 329 | else \ |
3cf6a465 | 330 | rm -f $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ |
331 | $(INSTALL_DATA) $(srcdir)/f/g77.1 $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ | |
332 | chmod a-x $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ | |
b2f877e9 | 333 | fi; \ |
334 | else true; fi | |
5f54a675 | 335 | rm -f $(libsubdir)/lang-f77.man |
b2f877e9 | 336 | |
89360068 | 337 | # Make sure `installdirs' target (from gcc Makefile) has been |
338 | # run, since we use libsubdir to store our `flag' file, lang-f77. | |
339 | f77.uninstall: installdirs | |
298f96db | 340 | case "$(LANGUAGES)" in \ |
5f54a675 | 341 | *[fF]77*) touch $(libsubdir)/lang-f77.un;; \ |
342 | *) rm -f $(libsubdir)/lang-f77.un;; \ | |
298f96db | 343 | esac |
5f54a675 | 344 | @if [ -f $(libsubdir)/lang-f77.un ] ; then \ |
bad5967c | 345 | if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ |
346 | echo " install-info --delete --info-dir=$(infodir) $(infodir)/g77.info"; \ | |
347 | install-info --delete --info-dir=$(infodir) $(infodir)/g77.info || : ; \ | |
348 | else : ; fi; \ | |
349 | else : ; fi | |
5f54a675 | 350 | -if [ -f $(libsubdir)/lang-f77.un ]; then \ |
298f96db | 351 | rm -rf $(bindir)/$(G77_INSTALL_NAME)$(exeext); \ |
352 | rm -rf $(bindir)/$(G77_CROSS_NAME)$(exeext); \ | |
3cf6a465 | 353 | rm -rf $(man1dir)/$(G77_INSTALL_NAME)$(manext); \ |
354 | rm -rf $(man1dir)/$(G77_CROSS_NAME)$(manext); \ | |
298f96db | 355 | rm -rf $(infodir)/g77.info*; \ |
b2f877e9 | 356 | fi |
5f54a675 | 357 | rm -f $(libsubdir)/lang-f77.un |
d6a51581 | 358 | #\f |
b2f877e9 | 359 | # Clean hooks: |
360 | # A lot of the ancillary files are deleted by the main makefile. | |
361 | # We just have to delete files specific to us. | |
362 | ||
363 | f77.mostlyclean: | |
364 | -rm -f f/*$(objext) | |
46b269d8 | 365 | -rm -f f/fini$(build_exeext) f/stamp-str f/str-*.h f/str-*.j |
366 | -rm -f f/intdoc$(build_exeext) f/ansify$(build_exeext) f/intdoc.h0 | |
8b7b549f | 367 | -rm -f g77.aux g77.cps g77.ky g77.toc g77.vr g77.fn g77.kys \ |
368 | g77.pg g77.tp g77.vrs g77.cp g77.fns g77.log g77.pgs g77.tps | |
b2f877e9 | 369 | f77.clean: |
cdf76fe2 | 370 | -rm -f g77spec.o g77version.o |
b2f877e9 | 371 | f77.distclean: |
298f96db | 372 | -rm -f lang-f77 f/Makefile |
373 | f77.extraclean: | |
374 | f77.maintainer-clean: | |
98fb2ff8 | 375 | -rm -f f/g77.info* f/g77.*aux f/TAGS f/BUGS f/NEWS f/intdoc.texi |
d6a51581 | 376 | #\f |
b2f877e9 | 377 | # Stage hooks: |
378 | # The main makefile has already created stage?/f. | |
379 | ||
46b269d8 | 380 | G77STAGESTUFF = f/*$(objext) f/fini$(build_exeext) f/stamp-str \ |
381 | f/str-*.h f/str-*.j lang-f77 g77spec.o g77version.o | |
b2f877e9 | 382 | |
f670c47e | 383 | f77.stage1: stage1-start |
298f96db | 384 | -if [ -f lang-f77 ]; then \ |
c258540d | 385 | mv -f $(G77STAGESTUFF) stage1/f; \ |
298f96db | 386 | fi |
f670c47e | 387 | f77.stage2: stage2-start |
298f96db | 388 | -if [ -f lang-f77 ]; then \ |
c258540d | 389 | mv -f $(G77STAGESTUFF) stage2/f; \ |
298f96db | 390 | fi |
f670c47e | 391 | f77.stage3: stage3-start |
298f96db | 392 | -if [ -f lang-f77 ]; then \ |
c258540d | 393 | mv -f $(G77STAGESTUFF) stage3/f; \ |
298f96db | 394 | fi |
f670c47e | 395 | f77.stage4: stage4-start |
298f96db | 396 | -if [ -f lang-f77 ]; then \ |
c258540d | 397 | mv -f $(G77STAGESTUFF) stage4/f; \ |
298f96db | 398 | fi |
f357ac87 | 399 | |
400 | #\f | |
401 | # .o: .h dependencies. | |
402 | ||
f357ac87 | 403 | f/bad.o: f/bad.c f/proj.h $(CONFIG_H) system.h f/bad.h f/bad.def f/where.h \ |
404 | glimits.h f/top.h f/malloc.h flags.h f/com.h f/com-rt.def $(TREE_H) f/bld.h \ | |
405 | f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def \ | |
406 | f/target.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \ | |
407 | f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h toplev.h | |
408 | f/bit.o: f/bit.c f/proj.h $(CONFIG_H) system.h glimits.h f/bit.h \ | |
409 | f/malloc.h | |
410 | f/bld.o: f/bld.c f/proj.h $(CONFIG_H) system.h f/bld.h f/bld-op.def f/bit.h \ | |
411 | f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \ | |
412 | f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h f/lex.h \ | |
413 | f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \ | |
414 | f/name.h f/intrin.h f/intrin.def | |
415 | f/com.o: f/com.c f/proj.h $(CONFIG_H) system.h flags.h $(RTL_H) $(TREE_H) \ | |
416 | output.h convert.h f/com.h f/com-rt.def f/bld.h f/bld-op.def f/bit.h \ | |
417 | f/malloc.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \ | |
418 | f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h \ | |
419 | f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \ | |
420 | f/name.h f/expr.h f/implic.h f/src.h f/st.h $(GGC_H) toplev.h defaults.h | |
421 | f/data.o: f/data.c f/proj.h $(CONFIG_H) system.h f/data.h f/bld.h f/bld-op.def \ | |
422 | f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \ | |
423 | f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \ | |
424 | f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \ | |
425 | f/global.h f/name.h f/intrin.h f/intrin.def f/expr.h f/st.h | |
426 | f/equiv.o: f/equiv.c f/proj.h $(CONFIG_H) system.h f/equiv.h f/bld.h \ | |
427 | f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \ | |
428 | f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \ | |
429 | glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \ | |
430 | f/global.h f/name.h f/intrin.h f/intrin.def f/data.h | |
431 | f/expr.o: f/expr.c f/proj.h $(CONFIG_H) system.h f/expr.h f/bld.h f/bld-op.def \ | |
432 | f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \ | |
433 | f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \ | |
434 | f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \ | |
435 | f/global.h f/name.h f/intrin.h f/intrin.def f/implic.h f/src.h f/st.h \ | |
436 | f/stamp-str | |
437 | f/fini.o: f/fini.c f/proj.h hconfig.h system.h f/malloc.h | |
438 | f/global.o: f/global.c f/proj.h $(CONFIG_H) system.h f/global.h f/info.h \ | |
439 | f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def \ | |
440 | f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/type.h f/name.h f/symbol.h \ | |
441 | f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \ | |
442 | f/storag.h f/intrin.h f/intrin.def f/equiv.h | |
443 | f/implic.o: f/implic.c f/proj.h $(CONFIG_H) system.h f/implic.h f/info.h \ | |
444 | f/info-b.def f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def \ | |
445 | f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/type.h f/symbol.h \ | |
446 | f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \ | |
447 | f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/src.h | |
448 | f/info.o: f/info.c f/proj.h $(CONFIG_H) system.h f/info.h f/info-b.def \ | |
449 | f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def f/where.h \ | |
450 | glimits.h f/top.h f/malloc.h f/lex.h f/type.h | |
f357ac87 | 451 | f/intrin.o: f/intrin.c f/proj.h $(CONFIG_H) system.h f/intrin.h \ |
452 | f/intrin.def f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def \ | |
453 | $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \ | |
454 | f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \ | |
455 | f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/expr.h f/src.h | |
456 | f/lab.o: f/lab.c f/proj.h $(CONFIG_H) system.h f/lab.h f/com.h f/com-rt.def \ | |
457 | $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h f/info.h f/info-b.def \ | |
458 | f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \ | |
459 | f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def f/symbol.h f/symbol.def \ | |
460 | f/equiv.h f/storag.h f/global.h f/name.h | |
461 | f/lex.o: f/lex.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h f/where.h \ | |
462 | glimits.h f/bad.h f/bad.def f/com.h f/com-rt.def $(TREE_H) f/bld.h \ | |
463 | f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def \ | |
464 | f/target.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \ | |
465 | f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h f/src.h flags.h \ | |
466 | input.h toplev.h output.h $(GGC_H) | |
467 | f/malloc.o: f/malloc.c f/proj.h $(CONFIG_H) system.h f/malloc.h | |
468 | f/name.o: f/name.c f/proj.h $(CONFIG_H) system.h f/bad.h f/bad.def f/where.h \ | |
469 | glimits.h f/top.h f/malloc.h f/name.h f/global.h f/info.h f/info-b.def \ | |
470 | f/info-k.def f/info-w.def f/target.h $(TREE_H) f/lex.h f/type.h f/symbol.h \ | |
471 | f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h \ | |
472 | f/storag.h f/intrin.h f/intrin.def f/equiv.h f/src.h | |
473 | f/parse.o: f/parse.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h \ | |
474 | f/where.h glimits.h f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def \ | |
475 | f/bit.h f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \ | |
476 | f/bad.def f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h \ | |
477 | f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h f/version.h flags.h | |
478 | f/proj.o: f/proj.c f/proj.h $(CONFIG_H) system.h glimits.h | |
479 | f/src.o: f/src.c f/proj.h $(CONFIG_H) system.h f/src.h f/bad.h f/bad.def \ | |
480 | f/where.h glimits.h f/top.h f/malloc.h | |
481 | f/st.o: f/st.c f/proj.h $(CONFIG_H) system.h f/st.h f/bad.h f/bad.def \ | |
482 | f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/symbol.h f/symbol.def \ | |
483 | f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \ | |
484 | f/info-b.def f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h \ | |
485 | f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/sta.h \ | |
486 | f/stamp-str f/stb.h f/expr.h f/stp.h f/stt.h f/stc.h f/std.h \ | |
487 | f/stv.h f/stw.h f/ste.h f/sts.h f/stu.h | |
488 | f/sta.o: f/sta.c f/proj.h $(CONFIG_H) system.h f/sta.h f/bad.h f/bad.def \ | |
489 | f/where.h glimits.h f/top.h f/malloc.h f/lex.h f/stamp-str f/symbol.h \ | |
490 | f/symbol.def f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) \ | |
491 | f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h \ | |
492 | f/storag.h f/intrin.h f/intrin.def f/equiv.h f/global.h f/name.h f/implic.h \ | |
493 | f/stb.h f/expr.h f/stp.h f/stt.h f/stc.h f/std.h f/stv.h f/stw.h | |
494 | f/stb.o: f/stb.c f/proj.h $(CONFIG_H) system.h f/stb.h f/bad.h f/bad.def \ | |
495 | f/where.h glimits.h f/top.h f/malloc.h f/expr.h f/bld.h f/bld-op.def f/bit.h \ | |
496 | f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \ | |
497 | f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \ | |
498 | f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h \ | |
499 | f/stt.h f/stamp-str f/src.h f/sta.h f/stc.h | |
500 | f/stc.o: f/stc.c f/proj.h $(CONFIG_H) system.h f/stc.h f/bad.h f/bad.def \ | |
501 | f/where.h glimits.h f/top.h f/malloc.h f/bld.h f/bld-op.def f/bit.h f/com.h \ | |
502 | f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \ | |
503 | f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \ | |
504 | f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/expr.h f/stp.h \ | |
505 | f/stt.h f/stamp-str f/data.h f/implic.h f/src.h f/sta.h f/std.h f/stv.h f/stw.h | |
506 | f/std.o: f/std.c f/proj.h $(CONFIG_H) system.h f/std.h f/bld.h f/bld-op.def \ | |
507 | f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \ | |
508 | f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h \ | |
509 | f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h \ | |
510 | f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h f/stamp-str \ | |
511 | f/stv.h f/stw.h f/sta.h f/ste.h f/sts.h | |
512 | f/ste.o: f/ste.c f/proj.h $(CONFIG_H) system.h $(RTL_H) toplev.h f/ste.h \ | |
513 | f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) \ | |
514 | f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \ | |
515 | f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \ | |
516 | f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h \ | |
517 | f/stt.h f/stamp-str f/sts.h f/stv.h f/stw.h f/expr.h f/sta.h $(GGC_H) | |
518 | f/storag.o: f/storag.c f/proj.h $(CONFIG_H) system.h f/storag.h f/bld.h \ | |
519 | f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) \ | |
520 | f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \ | |
521 | f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h \ | |
522 | f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \ | |
523 | f/intrin.def f/data.h | |
524 | f/stp.o: f/stp.c f/proj.h $(CONFIG_H) system.h f/stp.h f/bld.h f/bld-op.def \ | |
525 | f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \ | |
526 | f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \ | |
527 | f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \ | |
528 | f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \ | |
529 | f/intrin.def f/stt.h | |
530 | f/str.o: f/str.c f/proj.h $(CONFIG_H) system.h f/src.h f/bad.h f/bad.def \ | |
531 | f/where.h glimits.h f/top.h f/malloc.h f/stamp-str f/lex.h | |
532 | f/sts.o: f/sts.c f/proj.h $(CONFIG_H) system.h f/sts.h f/malloc.h f/com.h \ | |
533 | f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h \ | |
534 | f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \ | |
535 | f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def \ | |
536 | f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \ | |
537 | f/name.h | |
538 | f/stt.o: f/stt.c f/proj.h $(CONFIG_H) system.h f/stt.h f/top.h f/malloc.h \ | |
539 | f/where.h glimits.h f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def \ | |
540 | $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h \ | |
541 | f/bad.h f/bad.def f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \ | |
542 | f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def \ | |
543 | f/stp.h f/expr.h f/sta.h f/stamp-str | |
544 | f/stu.o: f/stu.c f/proj.h $(CONFIG_H) system.h f/bld.h f/bld-op.def f/bit.h \ | |
545 | f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \ | |
546 | f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \ | |
547 | glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h \ | |
548 | f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def \ | |
549 | f/implic.h f/stu.h f/sta.h f/stamp-str | |
550 | f/stv.o: f/stv.c f/proj.h $(CONFIG_H) system.h f/stv.h f/lab.h f/com.h \ | |
551 | f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h \ | |
552 | f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h \ | |
553 | f/bad.def f/where.h glimits.h f/top.h f/lex.h f/type.h f/intrin.h \ | |
554 | f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h \ | |
555 | f/name.h | |
556 | f/stw.o: f/stw.c f/proj.h $(CONFIG_H) system.h f/stw.h f/bld.h f/bld-op.def \ | |
557 | f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \ | |
558 | f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \ | |
559 | f/where.h glimits.h f/top.h f/lex.h f/type.h f/lab.h f/storag.h \ | |
560 | f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \ | |
561 | f/intrin.def f/stv.h f/sta.h f/stamp-str | |
562 | f/symbol.o: f/symbol.c f/proj.h $(CONFIG_H) system.h f/symbol.h \ | |
563 | f/symbol.def f/bld.h f/bld-op.def f/bit.h f/malloc.h f/com.h \ | |
564 | f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \ | |
565 | f/info-w.def f/target.h f/bad.h f/bad.def f/where.h glimits.h f/top.h \ | |
566 | f/lex.h f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def f/equiv.h \ | |
567 | f/global.h f/name.h f/src.h f/st.h | |
568 | f/target.o: f/target.c f/proj.h $(CONFIG_H) system.h glimits.h f/target.h \ | |
569 | $(TREE_H) f/bad.h f/bad.def f/where.h f/top.h f/malloc.h f/info.h \ | |
570 | f/info-b.def f/info-k.def f/info-w.def f/type.h f/lex.h | |
571 | f/top.o: f/top.c f/proj.h $(CONFIG_H) system.h f/top.h f/malloc.h f/where.h \ | |
572 | glimits.h f/bad.h f/bad.def f/bit.h f/bld.h f/bld-op.def f/com.h \ | |
573 | f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \ | |
574 | f/info-w.def f/target.h f/lex.h f/type.h f/lab.h f/storag.h \ | |
575 | f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h f/intrin.h \ | |
576 | f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h flags.h \ | |
577 | toplev.h | |
578 | f/type.o: f/type.c f/proj.h $(CONFIG_H) system.h f/type.h f/malloc.h | |
579 | f/version.o: f/version.c | |
580 | f/where.o: f/where.c f/proj.h $(CONFIG_H) system.h f/where.h glimits.h f/top.h \ | |
581 | f/malloc.h f/lex.h $(GGC_H) |