home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / g77-0.5.15-src.tgz / tar.out / fsf / g77 / f / Makefile.in < prev    next >
Makefile  |  1996-09-28  |  24KB  |  541 lines

  1. # Makefile for GNU F77 compiler.
  2. #   Copyright (C) 1995 Free Software Foundation, Inc.
  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
  18. #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. # The makefile built from this file lives in the language subdirectory.
  21. # Its purpose is to provide support for:
  22. #
  23. # 1) recursion where necessary, and only then (building .o's), and
  24. # 2) building and debugging f771 from the language subdirectory, and
  25. # 3) nothing else.
  26. #
  27. # The parent makefile handles all other chores, with help from the
  28. # language makefile fragment, of course.
  29. #
  30. # The targets for external use are:
  31. # all, TAGS, ???mostlyclean, ???clean.
  32.  
  33. # Suppress smart makes who think they know how to automake Yacc files
  34. .y.c:
  35.  
  36. # Variables that exist for you to override.
  37. # See below for how to change them for certain systems.
  38.  
  39. ALLOCA =
  40.  
  41. # Various ways of specifying flags for compilations:  
  42. # CFLAGS is for the user to override to, e.g., do a bootstrap with -O2.
  43. # BOOT_CFLAGS is the value of CFLAGS to pass
  44. # to the stage2 and stage3 compilations
  45. # XCFLAGS is used for most compilations but not when using the GCC just built.
  46. XCFLAGS =
  47. CFLAGS = -g
  48. BOOT_CFLAGS = -O $(CFLAGS)
  49. # These exists to be overridden by the x-* and t-* files, respectively.
  50. X_CFLAGS =
  51. T_CFLAGS =
  52.  
  53. X_CPPFLAGS =
  54. T_CPPFLAGS =
  55.  
  56. CC = cc
  57. HOST_CC = $(CC)
  58. BISON = bison
  59. BISONFLAGS =
  60. LEX = flex
  61. LEXFLAGS =
  62. AR = ar
  63. AR_FLAGS = rc
  64. SHELL = /bin/sh
  65. MAKEINFO = makeinfo
  66. TEXI2DVI = texi2dvi
  67.  
  68. # Define this as & to perform parallel make on a Sequent.
  69. # Note that this has some bugs, and it seems currently necessary 
  70. # to compile all the gen* files first by hand to avoid erroneous results.
  71. P =
  72.  
  73. # This is used in the definition of SUBDIR_USE_ALLOCA.
  74. # ??? Perhaps it would be better if it just looked for *gcc*.
  75. OLDCC = cc
  76.  
  77. # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
  78. # It omits XCFLAGS, and specifies -B./.
  79. # It also specifies -B$(tooldir)/ to find as and ld for a cross compiler.
  80. GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS)
  81.  
  82. # Tools to use when building a cross-compiler.
  83. # These are used because `configure' appends `cross-make'
  84. # to the makefile when making a cross-compiler.
  85.  
  86. target= ... `configure' substitutes actual target name here.
  87. xmake_file= ... `configure' substitutes actual x- file name here.
  88. tmake_file= ... `configure' substitutes actual t- file name here.
  89. #version=`sed -e 's/.*\"\([^ \"]*\)[ \"].*/\1/' < $(srcdir)/version.c`
  90. #mainversion=`sed -e 's/.*\"\([0-9]*\.[0-9]*\).*/\1/' < $(srcdir)/version.c`
  91.  
  92. # Directory where sources are, from where we are.
  93. # Note that this should be overridden when building f771, which happens 
  94. # at the top level, not in f.  Likewise for VPATH (if added).
  95. srcdir = .
  96. # The following overriding of the VPATH inserted by configure (as well as
  97. # the change to the standard srcdir above) is due to not building in the f
  98. # directory as standard.
  99. #VPATH = $(srcdir)../
  100.  
  101. # Additional system libraries to link with.
  102. CLIB=
  103.  
  104. # Change this to a null string if obstacks are installed in the
  105. # system library.
  106. OBSTACK=obstack.o
  107.  
  108. # Choose the real default target.
  109. ALL=all
  110.  
  111. # End of variables for you to override.
  112.  
  113. # Definition of `all' is here so that new rules inserted by sed
  114. # do not specify the default target.
  115. all: all.indirect
  116.  
  117. # This tells GNU Make version 3 not to put all variables in the environment.
  118. .NOEXPORT:
  119.  
  120. # sed inserts variable overrides after the following line.
  121. ####target overrides
  122. ####host overrides
  123. ####cross overrides
  124. ####build overrides
  125.  
  126. # Now figure out from those variables how to compile and link.
  127.  
  128. all.indirect: f/Makefile f771
  129.  
  130. # IN_GCC tells obstack.h that we are using gcc's <stddef.h> file.
  131. INTERNAL_CFLAGS = $(CROSS) -DIN_GCC
  132.  
  133. # This is the variable actually used when we compile.
  134. ALL_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) $(XCFLAGS)
  135.  
  136. # Likewise.
  137. ALL_CPPFLAGS = $(CPPFLAGS) $(X_CPPFLAGS) $(T_CPPFLAGS)
  138.  
  139. # f771 is so big, need to tell linker on m68k-next-nextstep* to make enough
  140. # room for it.
  141. F771_LDFLAGS = ` case "${target}" in m68k-next-nextstep*) echo -segaddr __DATA 6000000 ;; esac `
  142.  
  143. # Even if ALLOCA is set, don't use it if compiling with GCC.
  144.  
  145. SUBDIR_OBSTACK = `if [ x$(OBSTACK) != x ]; then echo $(OBSTACK); else true; fi`
  146. SUBDIR_USE_ALLOCA = `case "${CC}" in "${OLDCC}") if [ x$(ALLOCA) != x ]; then echo $(ALLOCA); else true; fi ;; esac`
  147. SUBDIR_MALLOC = `if [ x$(MALLOC) != x ]; then echo $(MALLOC); else true; fi`
  148.  
  149. # How to link with both our special library facilities
  150. # and the system's installed libraries.
  151. LIBS = $(SUBDIR_OBSTACK) $(SUBDIR_USE_ALLOCA) $(SUBDIR_MALLOC) $(CLIB)
  152.  
  153. # Specify the directories to be searched for header files.
  154. # Both . and srcdir are used, in that order,
  155. # so that tm.h and config.h will be found in the compilation
  156. # subdirectory rather than in the source directory.
  157. INCLUDES = -If -I. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config
  158.  
  159. #(Old way of doing things, new way being better for -g:)
  160. #INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config
  161.  
  162. # Flags_to_pass to recursive makes.
  163. FLAGS_TO_PASS = \
  164.     "CROSS=$(CROSS)" \
  165.     "AR_FLAGS=$(AR_FLAGS)" \
  166.     "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  167.     "BISON=$(BISON)" \
  168.     "BISONFLAGS=$(BISONFLAGS)" \
  169.     "CC=$(CC)" \
  170.     "CFLAGS=$(CFLAGS)" \
  171.     "GCCFLAGS=$(GCCFLAGS)" \
  172.     "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
  173.     "LDFLAGS=$(LDFLAGS)" \
  174.     "LEX=$(LEX)" \
  175.     "LEXFLAGS=$(LEXFLAGS)" \
  176.     "MAKEINFO=$(MAKEINFO)" \
  177.     "MAKEINFOFLAGS=$(MAKEINFOFLAGS)" \
  178.     "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
  179.     "RANLIB_TEST_FOR_TARGET=$(RANLIB_TEST_FOR_TARGET)" \
  180.     "SHELL=$(SHELL)" \
  181.     "exec_prefix=$(exec_prefix)" \
  182.     "prefix=$(prefix)" \
  183.     "tooldir=$(tooldir)" \
  184.     "bindir=$(bindir)" \
  185.     "libsubdir=$(libsubdir)"
  186.  
  187. # Always use -I$(srcdir)/config when compiling.
  188. .c.o:
  189.     $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $< -o $@
  190.  
  191. # This tells GNU make version 3 not to export all the variables
  192. # defined in this file into the environment.
  193. .NOEXPORT:
  194.  
  195. # Lists of files for various purposes.
  196.  
  197. # Language-specific object files for g77
  198.  
  199. F77_OBJS = \
  200.  f/bad.o \
  201.  f/bit.o \
  202.  f/bld.o \
  203.  f/com.o \
  204.  f/data.o \
  205.  f/equiv.o \
  206.  f/expr.o \
  207.  f/global.o \
  208.  f/implic.o \
  209.  f/info.o \
  210.  f/intrin.o \
  211.  f/lab.o \
  212.  f/lex.o \
  213.  f/malloc.o \
  214.  f/name.o \
  215.  f/parse.o \
  216.  f/proj.o \
  217.  f/src.o \
  218.  f/st.o \
  219.  f/sta.o \
  220.  f/stb.o \
  221.  f/stc.o \
  222.  f/std.o \
  223.  f/ste.o \
  224.  f/storag.o \
  225.  f/stp.o \
  226.  f/str.o \
  227.  f/sts.o \
  228.  f/stt.o \
  229.  f/stu.o \
  230.  f/stv.o \
  231.  f/stw.o \
  232.  f/symbol.o \
  233.  f/target.o \
  234.  f/top.o \
  235.  f/type.o \
  236.  f/where.o \
  237.  f/zzz.o
  238.  
  239. # Language-independent object files.
  240. OBJS = `cat stamp-objlist | sed -e "s:  : :g" -e "s: : f/:g"`
  241. OBJDEPS = stamp-objlist
  242.  
  243. compiler: f771
  244. # This is now meant to be built in the top level directory, not `f':
  245. f771: $(P) f/Makefile $(F77_OBJS) $(OBJDEPS) $(LIBDEPS)
  246.     $(CC) $(ALL_CFLAGS) $(LDFLAGS) $(F771_LDFLAGS) -o f771 \
  247.           $(F77_OBJS) $(OBJS) $(LIBS)
  248.  
  249. # Check in case anyone expects to build in this directory:
  250. f/Makefile:
  251.     if test ! -f f/Makefile ; \
  252.     then echo "Build f771 only at the top level." 2>&1; exit 1; \
  253.     else true; fi
  254.  
  255. Makefile: $(srcdir)/Makefile.in $(srcdir)/../configure
  256.  
  257. native: f771
  258.  
  259. # Compiling object files from source files.
  260.  
  261. # Note that dependencies on obstack.h are not written
  262. # because that file is not part of GCC.
  263.  
  264. # F77 language-specific files.
  265.  
  266. # These macros expand to the corresponding g77-source .j files plus
  267. # the gcc-source files involved (each file itself, plus whatever
  268. # files on which it depends, but without including stuff resulting
  269. # from configuration, since we can't guess at that).  The files
  270. # that live in a distclean'd gcc source directory have "$(srcdir)/../"
  271. # prefixes, while the others don't because they'll be created
  272. # only in the build directory.
  273. ASSERT_H = $(srcdir)/assert.j assert.h
  274. CONFIG_H = $(srcdir)/config.j config.h
  275. CONVERT_H = $(srcdir)/convert.j $(srcdir)/../convert.h
  276. FLAGS_H = $(srcdir)/flags.j $(srcdir)/../flags.h
  277. GLIMITS_H = $(srcdir)/glimits.j $(srcdir)/../glimits.h
  278. HCONFIG_H = $(srcdir)/hconfig.j hconfig.h
  279. RTL_H = $(srcdir)/rtl.j $(srcdir)/../rtl.h $(srcdir)/../rtl.def \
  280.     $(srcdir)/../machmode.h $(srcdir)/../machmode.def
  281. TCONFIG_H = $(srcdir)/tconfig.j tconfig.h
  282. TM_H = $(srcdir)/tm.j tm.h
  283. TREE_H = $(srcdir)/tree.j $(srcdir)/../tree.h $(srcdir)/../real.h \
  284.     $(srcdir)/../tree.def $(srcdir)/../machmode.h $(srcdir)/../machmode.def
  285.  
  286. #Build the first part of this list with the command line:
  287. #    cd gcc/; make deps-kinda -f f/Makefile.in
  288. #Note that this command uses the host C compiler;
  289. # use HOST_CC="./xgcc -B./" to use GCC in the build directory, for example.
  290. #Also note that this particular build file seems to want to use
  291. # substitions: $(CONFIG_H) for config.h; $(TREE_H) for tree.h; and
  292. # $(RTL_H) for rtl.h.  deps-kinda uses a sed script to do those
  293. # substitutions, plus others for elegance.
  294.  
  295. f/bad.o: f/bad.c f/proj.h $(ASSERT_H) f/bad.h f/bad.def f/where.h $(GLIMITS_H) \
  296.   f/top.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h \
  297.   f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
  298.   f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h \
  299.   f/global.h f/name.h
  300. f/bit.o: f/bit.c f/proj.h $(ASSERT_H) $(GLIMITS_H) f/bit.h f/malloc.h
  301. f/bld.o: f/bld.c f/proj.h $(ASSERT_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h \
  302.   f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  303.   f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h f/type.h \
  304.   f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
  305.   f/intrin.h f/intrin.def
  306. f/com.o: f/com.c $(CONFIG_H) $(FLAGS_H) $(RTL_H) $(TREE_H) $(CONVERT_H) f/proj.h \
  307.   $(ASSERT_H) f/com.h f/com-rt.def f/bld.h f/bld-op.def f/bit.h f/malloc.h \
  308.   f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def \
  309.   f/where.h $(GLIMITS_H) f/top.h f/lex.h f/type.h f/intrin.h f/intrin.def f/lab.h \
  310.   f/symbol.h f/symbol.def f/equiv.h f/storag.h f/global.h f/name.h f/expr.h \
  311.   f/implic.h f/src.h f/st.h
  312. f/data.o: f/data.c f/proj.h $(ASSERT_H) f/data.h f/bld.h f/bld-op.def f/bit.h \
  313.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  314.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  315.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  316.   f/name.h f/intrin.h f/intrin.def f/expr.h f/st.h
  317. f/equiv.o: f/equiv.c f/proj.h $(ASSERT_H) f/equiv.h f/bld.h f/bld-op.def f/bit.h \
  318.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  319.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  320.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/global.h f/name.h \
  321.   f/intrin.h f/intrin.def f/data.h
  322. f/expr.o: f/expr.c f/proj.h $(ASSERT_H) f/expr.h f/bld.h f/bld-op.def f/bit.h \
  323.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  324.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  325.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  326.   f/name.h f/intrin.h f/intrin.def f/implic.h f/src.h f/st.h
  327. f/fini.o: f/fini.c f/proj.h $(ASSERT_H) f/malloc.h
  328. f/g77.o: f/g77.c $(CONFIG_H)
  329. f/global.o: f/global.c f/proj.h $(ASSERT_H) f/global.h f/lex.h f/top.h f/malloc.h \
  330.   f/where.h $(GLIMITS_H) f/name.h f/symbol.h f/symbol.def f/bad.h f/bad.def \
  331.   f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
  332.   f/info-b.def f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h f/storag.h \
  333.   f/intrin.h f/intrin.def f/equiv.h
  334. f/implic.o: f/implic.c f/proj.h $(ASSERT_H) f/implic.h f/info.h f/info-b.def \
  335.   f/info-k.def f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def f/where.h \
  336.   $(GLIMITS_H) f/top.h f/malloc.h f/lex.h f/type.h f/symbol.h f/symbol.def f/bld.h \
  337.   f/bld-op.def f/bit.h f/com.h f/com-rt.def f/lab.h f/storag.h f/intrin.h \
  338.   f/intrin.def f/equiv.h f/global.h f/name.h f/src.h
  339. f/info.o: f/info.c f/proj.h $(ASSERT_H) f/info.h f/info-b.def f/info-k.def \
  340.   f/info-w.def f/target.h $(TREE_H) f/bad.h f/bad.def f/where.h $(GLIMITS_H) \
  341.   f/top.h f/malloc.h f/lex.h f/type.h
  342. f/intrin.o: f/intrin.c f/proj.h $(ASSERT_H) f/intrin.h f/intrin.def f/bld.h \
  343.   f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
  344.   f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \
  345.   $(GLIMITS_H) f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
  346.   f/equiv.h f/global.h f/name.h f/src.h
  347. f/lab.o: f/lab.c f/proj.h $(ASSERT_H) f/lab.h f/com.h f/com-rt.def $(TREE_H) f/bld.h \
  348.   f/bld-op.def f/bit.h f/malloc.h f/info.h f/info-b.def f/info-k.def \
  349.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  350.   f/type.h f/intrin.h f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h \
  351.   f/global.h f/name.h
  352. f/lex.o: f/lex.c f/proj.h $(ASSERT_H) f/top.h f/malloc.h f/where.h $(GLIMITS_H) \
  353.   f/bad.h f/bad.def f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h \
  354.   f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
  355.   f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h f/storag.h \
  356.   f/global.h f/name.h f/src.h $(CONFIG_H)
  357. f/malloc.o: f/malloc.c f/proj.h $(ASSERT_H) f/malloc.h
  358. f/name.o: f/name.c f/proj.h $(ASSERT_H) f/bad.h f/bad.def f/where.h $(GLIMITS_H) \
  359.   f/top.h f/malloc.h f/name.h f/global.h f/lex.h f/symbol.h f/symbol.def f/bld.h \
  360.   f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
  361.   f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h f/storag.h f/intrin.h \
  362.   f/intrin.def f/equiv.h f/src.h
  363. f/parse.o: f/parse.c f/proj.h $(ASSERT_H) f/top.h f/malloc.h f/where.h $(GLIMITS_H) \
  364.   f/com.h f/com-rt.def $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h \
  365.   f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/lex.h \
  366.   f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h \
  367.   f/storag.h f/global.h f/name.h f/zzz.h $(FLAGS_H)
  368. f/proj.o: f/proj.c f/proj.h $(ASSERT_H) $(GLIMITS_H)
  369. f/src.o: f/src.c f/proj.h $(ASSERT_H) f/src.h f/bad.h f/bad.def f/where.h \
  370.   $(GLIMITS_H) f/top.h f/malloc.h
  371. f/st.o: f/st.c f/proj.h $(ASSERT_H) f/st.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) \
  372.   f/top.h f/malloc.h f/lex.h f/symbol.h f/symbol.def f/bld.h f/bld-op.def f/bit.h \
  373.   f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  374.   f/target.h f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def f/equiv.h \
  375.   f/global.h f/name.h f/sta.h f/stamp-str f/stb.h f/expr.h f/stp.h f/stt.h f/stc.h \
  376.   f/std.h f/stv.h f/stw.h f/ste.h f/sts.h f/stu.h
  377. f/sta.o: f/sta.c f/proj.h $(ASSERT_H) f/sta.h f/bad.h f/bad.def f/where.h \
  378.   $(GLIMITS_H) f/top.h f/malloc.h f/lex.h f/stamp-str f/symbol.h f/symbol.def f/bld.h \
  379.   f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def \
  380.   f/info-k.def f/info-w.def f/target.h f/type.h f/lab.h f/storag.h f/intrin.h \
  381.   f/intrin.def f/equiv.h f/global.h f/name.h f/implic.h f/stb.h f/expr.h f/stp.h \
  382.   f/stt.h f/stc.h f/std.h f/stv.h f/stw.h
  383. f/stb.o: f/stb.c f/proj.h $(ASSERT_H) f/stb.h f/bad.h f/bad.def f/where.h \
  384.   $(GLIMITS_H) f/top.h f/malloc.h f/expr.h f/bld.h f/bld-op.def f/bit.h f/com.h \
  385.   f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  386.   f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
  387.   f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h f/stamp-str \
  388.   f/src.h f/sta.h f/stc.h
  389. f/stc.o: f/stc.c f/proj.h $(ASSERT_H) f/stc.h f/bad.h f/bad.def f/where.h \
  390.   $(GLIMITS_H) f/top.h f/malloc.h f/bld.h f/bld-op.def f/bit.h f/com.h \
  391.   f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  392.   f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
  393.   f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/expr.h f/stp.h f/stt.h \
  394.   f/stamp-str f/data.h f/implic.h f/src.h f/sta.h f/std.h f/stv.h f/stw.h
  395. f/std.o: f/std.c f/proj.h $(ASSERT_H) f/std.h f/bld.h f/bld-op.def f/bit.h \
  396.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  397.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  398.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  399.   f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h f/stamp-str f/stv.h f/stw.h f/sta.h \
  400.   f/ste.h f/sts.h
  401. f/ste.o: f/ste.c $(CONFIG_H) $(RTL_H) f/proj.h $(ASSERT_H) f/ste.h f/bld.h \
  402.   f/bld-op.def f/bit.h f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
  403.   f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/where.h \
  404.   $(GLIMITS_H) f/top.h f/lex.h f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def \
  405.   f/equiv.h f/global.h f/name.h f/intrin.h f/intrin.def f/stp.h f/stt.h f/stamp-str \
  406.   f/sts.h f/stv.h f/stw.h f/sta.h
  407. f/storag.o: f/storag.c f/proj.h $(ASSERT_H) f/storag.h f/bld.h f/bld-op.def f/bit.h \
  408.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  409.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  410.   f/type.h f/lab.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
  411.   f/intrin.h f/intrin.def f/data.h
  412. f/stp.o: f/stp.c f/proj.h $(ASSERT_H) f/stp.h f/bld.h f/bld-op.def f/bit.h \
  413.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  414.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  415.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  416.   f/name.h f/intrin.h f/intrin.def f/stt.h
  417. f/str.o: f/str.c f/proj.h $(ASSERT_H) f/src.h f/bad.h f/bad.def f/where.h \
  418.   $(GLIMITS_H) f/top.h f/malloc.h f/stamp-str f/lex.h
  419. f/sts.o: f/sts.c f/proj.h $(ASSERT_H) f/sts.h f/malloc.h f/com.h f/com-rt.def \
  420.   $(TREE_H) f/bld.h f/bld-op.def f/bit.h f/info.h f/info-b.def f/info-k.def \
  421.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  422.   f/type.h f/intrin.h f/intrin.def f/lab.h f/symbol.h f/symbol.def f/equiv.h \
  423.   f/storag.h f/global.h f/name.h
  424. f/stt.o: f/stt.c f/proj.h $(ASSERT_H) f/stt.h f/top.h f/malloc.h f/where.h \
  425.   $(GLIMITS_H) f/bld.h f/bld-op.def f/bit.h f/com.h f/com-rt.def $(TREE_H) f/info.h \
  426.   f/info-b.def f/info-k.def f/info-w.def f/target.h f/bad.h f/bad.def f/lex.h \
  427.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  428.   f/name.h f/intrin.h f/intrin.def f/stp.h f/expr.h f/sta.h f/stamp-str
  429. f/stu.o: f/stu.c f/proj.h $(ASSERT_H) f/bld.h f/bld-op.def f/bit.h f/malloc.h \
  430.   f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  431.   f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h f/type.h \
  432.   f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
  433.   f/intrin.h f/intrin.def f/implic.h f/stu.h f/sta.h f/stamp-str
  434. f/stv.o: f/stv.c f/proj.h $(ASSERT_H) f/stv.h f/lab.h f/com.h f/com-rt.def $(TREE_H) \
  435.   f/bld.h f/bld-op.def f/bit.h f/malloc.h f/info.h f/info-b.def f/info-k.def \
  436.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  437.   f/type.h f/intrin.h f/intrin.def f/symbol.h f/symbol.def f/equiv.h f/storag.h \
  438.   f/global.h f/name.h
  439. f/stw.o: f/stw.c f/proj.h $(ASSERT_H) f/stw.h f/bld.h f/bld-op.def f/bit.h \
  440.   f/malloc.h f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def \
  441.   f/info-w.def f/target.h f/bad.h f/bad.def f/where.h $(GLIMITS_H) f/top.h f/lex.h \
  442.   f/type.h f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h \
  443.   f/name.h f/intrin.h f/intrin.def f/stv.h f/sta.h f/stamp-str
  444. f/symbol.o: f/symbol.c f/proj.h $(ASSERT_H) f/symbol.h f/symbol.def f/bad.h \
  445.   f/bad.def f/where.h $(GLIMITS_H) f/top.h f/malloc.h f/bld.h f/bld-op.def f/bit.h \
  446.   f/com.h f/com-rt.def $(TREE_H) f/info.h f/info-b.def f/info-k.def f/info-w.def \
  447.   f/target.h f/lex.h f/type.h f/lab.h f/storag.h f/intrin.h f/intrin.def \
  448.   f/equiv.h f/global.h f/name.h f/src.h f/st.h
  449. f/target.o: f/target.c f/proj.h $(ASSERT_H) $(GLIMITS_H) f/target.h $(TREE_H) f/bad.h \
  450.   f/bad.def f/where.h f/top.h f/malloc.h f/info.h f/info-b.def f/info-k.def \
  451.   f/info-w.def f/type.h f/lex.h
  452. f/top.o: f/top.c f/proj.h $(ASSERT_H) f/top.h f/malloc.h f/where.h $(GLIMITS_H) \
  453.   f/bad.h f/bad.def f/bit.h f/bld.h f/bld-op.def f/com.h f/com-rt.def $(TREE_H) \
  454.   f/info.h f/info-b.def f/info-k.def f/info-w.def f/target.h f/lex.h f/type.h \
  455.   f/lab.h f/storag.h f/symbol.h f/symbol.def f/equiv.h f/global.h f/name.h \
  456.   f/intrin.h f/intrin.def f/data.h f/expr.h f/implic.h f/src.h f/st.h flags.h
  457. f/type.o: f/type.c f/proj.h $(ASSERT_H) f/type.h f/malloc.h
  458. f/where.o: f/where.c f/proj.h $(ASSERT_H) f/where.h $(GLIMITS_H) f/top.h f/malloc.h \
  459.   f/lex.h
  460. f/zzz.o: f/zzz.c f/proj.h $(ASSERT_H) f/zzz.h
  461.  
  462. # The rest of this list (Fortran 77 language-specific files) is hand-generated.
  463.  
  464. f/stamp-str: f/str-1t.h f/str-1t.j f/str-2t.h f/str-2t.j \
  465.  f/str-fo.h f/str-fo.j f/str-io.h f/str-io.j f/str-nq.h  f/str-nq.j \
  466.  f/str-op.h f/str-op.j f/str-ot.h f/str-ot.j
  467.     touch f/stamp-str
  468.  
  469. f/str-1t.h f/str-1t.j: f/fini f/str-1t.fin
  470.     ./f/fini `echo $(srcdir)/str-1t.fin | sed 's,^\./,,'` f/str-1t.j f/str-1t.h
  471.  
  472. f/str-2t.h f/str-2t.j: f/fini f/str-2t.fin
  473.     ./f/fini `echo $(srcdir)/str-2t.fin | sed 's,^\./,,'` f/str-2t.j f/str-2t.h
  474.  
  475. f/str-fo.h f/str-fo.j: f/fini f/str-fo.fin
  476.     ./f/fini `echo $(srcdir)/str-fo.fin | sed 's,^\./,,'` f/str-fo.j f/str-fo.h
  477.  
  478. f/str-io.h f/str-io.j: f/fini f/str-io.fin
  479.     ./f/fini `echo $(srcdir)/str-io.fin | sed 's,^\./,,'` f/str-io.j f/str-io.h
  480.  
  481. f/str-nq.h f/str-nq.j: f/fini f/str-nq.fin
  482.     ./f/fini `echo $(srcdir)/str-nq.fin | sed 's,^\./,,'` f/str-nq.j f/str-nq.h
  483.  
  484. f/str-op.h f/str-op.j: f/fini f/str-op.fin
  485.     ./f/fini `echo $(srcdir)/str-op.fin | sed 's,^\./,,'` f/str-op.j f/str-op.h
  486.  
  487. f/str-ot.h f/str-ot.j: f/fini f/str-ot.fin
  488.     ./f/fini `echo $(srcdir)/str-ot.fin | sed 's,^\./,,'` f/str-ot.j f/str-ot.h
  489.  
  490. f/fini: f/fini.o f/proj.o
  491.     $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o f/fini f/fini.o f/proj.o
  492.  
  493. # Other than str-*.j, the *.j files are dummy #include files
  494. # that normally just #include the corresponding back-end *.h
  495. # files, but not if MAKING_DEPENDENCIES is #defined.  The str-*.j
  496. # files also are not actually included if MAKING_DEPENDENCIES
  497. # is #defined.  The point of all this is to come up with a clean
  498. # dependencies list whether working in a clean directory, such
  499. # that str-*.j and such do not exist, or in a directory full
  500. # of already-built files.  Any dependency on a str-*.j file
  501. # implies a dependency on str.h, so we key on that to replace
  502. # it with stamp-str, and dependencies on the other *.j files
  503. # are generally left alone (modulo special macros like RTL_H)
  504. # because we might not want to recompile all of g77 just
  505. # because a back-end file changes.  MG is usually "-MG" but
  506. # should be defined with "make MG= deps-kinda..." if using
  507. # a compiler that doesn't support -MG (gcc does as of 2.6) --
  508. # it prevents diagnostics when an #include file is missing,
  509. # as will be the case with proj.h in a clean directory.
  510. MG=-MG
  511. deps-kinda:
  512.     $(HOST_CC) -DMAKING_DEPENDENCIES -MM $(MG) -I -If f/*.c | \
  513.       sed -e 's: \([.]/\)*f/assert[.]j: $$(ASSERT_H):g' \
  514.           -e 's: \([.]/\)*f/config[.]j: $$(CONFIG_H):g' \
  515.           -e 's: \([.]/\)*f/convert[.]j: $$(CONVERT_H):g' \
  516.           -e 's: \([.]/\)*f/flags[.]j: $$(FLAGS_H):g' \
  517.           -e 's: \([.]/\)*f/glimits[.]j: $$(GLIMITS_H):g' \
  518.           -e 's: \([.]/\)*f/hconfig[.]j: $$(HCONFIG_H):g' \
  519.           -e 's: \([.]/\)*f/rtl[.]j: $$(RTL_H):g' \
  520.           -e 's: \([.]/\)*f/tconfig[.]j: $$(TCONFIG_H):g' \
  521.           -e 's: \([.]/\)*f/tm[.]j: $$(TM_H):g' \
  522.           -e 's: \([.]/\)*f/tree[.]j: $$(TREE_H):g' \
  523.           -e 's: proj[.]h: f/proj.h:g' \
  524.           -e 's: \([.]/\)*f/str[.]h: f/stamp-str:g' \
  525.           -e 's%^\(.*\)[ ]*: %f/\1: %g'
  526.  
  527.  
  528. # These exist for maintenance purposes.
  529.  
  530. # Update the tags table.
  531. TAGS: force
  532.     cd $(srcdir) ;                \
  533.     etags *.c *.h ;                \
  534.     echo 'l' | tr 'l' '\f' >> TAGS ;    \
  535.     echo 'parse.y,0' >> TAGS ;         \
  536.     etags -a ../*.h ../*.c;
  537.  
  538. .PHONY: TAGS
  539.  
  540. force:
  541.