home *** CD-ROM | disk | FTP | other *** search
/ Programming Win32 Under the API / ProgrammingWin32UnderTheApiPatVillani.iso / src / mingw-runtime-19991107 / Makefile.in < prev    next >
Makefile  |  1999-11-07  |  51KB  |  1,733 lines

  1. #
  2. # Makefile for directory with subdirs to build.
  3. #   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation
  4. #
  5. # This file is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2 of the License, or
  8. # (at your option) any later version.
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program; if not, write to the Free Software
  15. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  16. #
  17.  
  18. srcdir = .
  19.  
  20. prefix = /usr/local
  21.  
  22. exec_prefix = $(prefix)
  23. bindir = $(exec_prefix)/bin
  24. libdir = $(exec_prefix)/lib
  25. tooldir = $(exec_prefix)/$(target)
  26.  
  27. program_transform_name =
  28.  
  29. datadir = $(prefix)/share
  30. mandir = $(prefix)/man
  31. man1dir = $(mandir)/man1
  32. man2dir = $(mandir)/man2
  33. man3dir = $(mandir)/man3
  34. man4dir = $(mandir)/man4
  35. man5dir = $(mandir)/man5
  36. man6dir = $(mandir)/man6
  37. man7dir = $(mandir)/man7
  38. man8dir = $(mandir)/man8
  39. man9dir = $(mandir)/man9
  40. infodir = $(prefix)/info
  41. includedir = $(prefix)/include
  42. # Directory in which the compiler finds executables, libraries, etc.
  43. libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version)
  44. GDB_NLM_DEPS = 
  45.  
  46. SHELL = /bin/sh
  47.  
  48. # INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a
  49. # cygwin32 host.
  50. INSTALL_PROGRAM_ARGS =
  51.  
  52. INSTALL = $(SHELL) $$s/install-sh -c
  53. INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS)
  54. INSTALL_SCRIPT = $(INSTALL)
  55. INSTALL_DATA = $(INSTALL) -m 644
  56.  
  57. INSTALL_DOSREL = install-dosrel-fake
  58.  
  59. AS = as
  60. AR = ar
  61. AR_FLAGS = rc
  62. CC = cc
  63.  
  64. # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
  65. # here so that they can be overridden by Makefile fragments.
  66. HOST_CC = $(CC_FOR_BUILD)
  67. HOST_PREFIX = 
  68. HOST_PREFIX_1 = loser-
  69.  
  70. # These flag values are normally overridden by the configure script.
  71. CFLAGS = -g
  72. CXXFLAGS = -g -O2
  73.  
  74. LIBCFLAGS = $(CFLAGS)
  75. CFLAGS_FOR_TARGET = $(CFLAGS)
  76. LDFLAGS_FOR_TARGET = 
  77. LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
  78. PICFLAG = 
  79. PICFLAG_FOR_TARGET = 
  80.  
  81. CXX = c++
  82.  
  83. # Use -O2 to stress test the compiler.
  84. LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  85. CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
  86. LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  87.  
  88. RANLIB = ranlib
  89.  
  90. DLLTOOL = dlltool
  91. DLLWRAP = dllwrap
  92. WINDRES = windres
  93.  
  94. NM = nm
  95.  
  96. LD = ld
  97.  
  98. # Not plain GZIP, since gzip looks there for extra command-line options.
  99. GZIPPROG = gzip
  100.  
  101. # These values are substituted by configure.
  102. DEFAULT_YACC = yacc
  103. DEFAULT_LEX = lex
  104. DEFAULT_M4 = m4
  105.  
  106. BISON = `if [ -f $$r/bison/bison ] ; then \
  107.         echo $$r/bison/bison -L $$s/bison/ ; \
  108.      else \
  109.         echo bison ; \
  110.      fi`
  111.  
  112. YACC = `if [ -f $$r/bison/bison ] ; then \
  113.         echo $$r/bison/bison -y -L $$s/bison/ ; \
  114.     elif [ -f $$r/byacc/byacc ] ; then \
  115.         echo $$r/byacc/byacc ; \
  116.     else \
  117.         echo ${DEFAULT_YACC} ; \
  118.     fi`
  119.  
  120. LEX = `if [ -f $$r/flex/flex ] ; \
  121.     then echo $$r/flex/flex ; \
  122.     else echo ${DEFAULT_LEX} ; fi`
  123.  
  124. M4 = `if [ -f $$r/m4/m4 ] ; \
  125.     then echo $$r/m4/m4 ; \
  126.     else echo ${DEFAULT_M4} ; fi`
  127.  
  128. MAKEINFO = `if [ -f $$r/texinfo/makeinfo/Makefile ] ; \
  129.     then echo $$r/texinfo/makeinfo/makeinfo ; \
  130.     else echo makeinfo ; fi`
  131.  
  132. # This just becomes part of the MAKEINFO definition passed down to
  133. # sub-makes.  It lets flags be given on the command line while still
  134. # using the makeinfo from the object tree.
  135. MAKEINFOFLAGS =
  136.  
  137. EXPECT = `if [ -f $$r/expect/expect ] ; \
  138.     then echo $$r/expect/expect ; \
  139.     else echo expect ; fi`
  140.  
  141. RUNTEST = `if [ -f $$s/dejagnu/runtest ] ; \
  142.     then echo $$s/dejagnu/runtest ; \
  143.     else echo runtest ; fi`
  144.  
  145.  
  146. # compilers to use to create programs which must be run in the build
  147. # environment.
  148. CC_FOR_BUILD = $(CC)
  149. CXX_FOR_BUILD = $(CXX)
  150.  
  151. SUBDIRS = "this is set via configure, don't edit this"
  152. OTHERS = 
  153.  
  154. # This is set by the configure script to the list of directories which
  155. # should be built using the target tools.
  156. TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ libf2c winsup
  157.  
  158. # Target libraries are put under this directory:
  159. # Changed by configure to $(target_alias) if cross.
  160. TARGET_SUBDIR = .
  161.  
  162. # This is set by the configure script to the arguments passed to configure.
  163. CONFIG_ARGUMENTS = 
  164.  
  165. # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
  166. # was used.
  167. SET_LIB_PATH =
  168.  
  169. # This is the name of the environment variable used for the path to
  170. # the libraries.  This may be changed by configure.in.
  171. RPATH_ENVVAR = LD_LIBRARY_PATH
  172.  
  173. # configure.in sets SET_LIB_PATH to this if --enable-shared was used.
  174. REALLY_SET_LIB_PATH = \
  175.   $(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes:$$$(RPATH_ENVVAR); \
  176.   export $(RPATH_ENVVAR);
  177.  
  178. ALL = all.normal
  179. INSTALL_TARGET = installdirs \
  180.     install-gcc \
  181.     $(INSTALL_MODULES) \
  182.     $(INSTALL_TARGET_MODULES) \
  183.     $(INSTALL_X11_MODULES) \
  184.     $(INSTALL_DOSREL)
  185.  
  186. INSTALL_TARGET_CROSS = installdirs \
  187.     install-gcc-cross \
  188.     $(INSTALL_MODULES) \
  189.     $(INSTALL_TARGET_MODULES) \
  190.     $(INSTALL_X11_MODULES) \
  191.     $(INSTALL_DOSREL)
  192.  
  193. CC_FOR_TARGET = ` \
  194.   if [ -f $$r/gcc/xgcc ] ; then \
  195.     if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
  196.       if [ -f $$r/$(TARGET_SUBDIR)/winsup/Makefile ] ; then \
  197.         echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/$(TARGET_SUBDIR)/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
  198.       else \
  199.         echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
  200.       fi; \
  201.     else \
  202.       echo $$r/gcc/xgcc -B$$r/gcc/; \
  203.     fi; \
  204.   else \
  205.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  206.       echo $(CC); \
  207.     else \
  208.       t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
  209.     fi; \
  210.   fi`
  211.  
  212. # If CC_FOR_TARGET is not overriden on the command line, then this
  213. # variable is passed down to the gcc Makefile, where it is used to
  214. # build libgcc2.a.  We define it here so that it can itself be
  215. # overridden on the command line.
  216. GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/
  217.  
  218.  
  219. CXX_FOR_TARGET = ` \
  220.   if [ -f $$r/gcc/xgcc ] ; then \
  221.     if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
  222.       if [ -f $$r/$(TARGET_SUBDIR)/winsup/Makefile ] ; then \
  223.         echo $$r/gcc/xgcc -B$$r/gcc/ -B$$r/$(TARGET_SUBDIR)/newlib/ -L$$r/winsup -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
  224.       else \
  225.         echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $$s/newlib/libc/include -nostdinc; \
  226.       fi; \
  227.     else \
  228.       echo $$r/gcc/xgcc -B$$r/gcc/; \
  229.     fi; \
  230.   else \
  231.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  232.       echo $(CXX); \
  233.     else \
  234.       t='$(program_transform_name)'; echo c++ | sed -e 's/x/x/' $$t; \
  235.     fi; \
  236.   fi`
  237.  
  238. AS_FOR_TARGET = ` \
  239.   if [ -f $$r/gas/as-new ] ; then \
  240.     echo $$r/gas/as-new ; \
  241.   else \
  242.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  243.       echo $(AS); \
  244.     else \
  245.        t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
  246.     fi; \
  247.   fi`
  248.  
  249. LD_FOR_TARGET = ` \
  250.   if [ -f $$r/ld/ld-new ] ; then \
  251.     echo $$r/ld/ld-new ; \
  252.   else \
  253.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  254.       echo $(LD); \
  255.     else \
  256.        t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
  257.     fi; \
  258.   fi`
  259.  
  260. DLLTOOL_FOR_TARGET = ` \
  261.   if [ -f $$r/binutils/dlltool ] ; then \
  262.     echo $$r/binutils/dlltool ; \
  263.   else \
  264.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  265.       echo $(DLLTOOL); \
  266.     else \
  267.        t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
  268.     fi; \
  269.   fi`
  270.  
  271. DLLWRAP_FOR_TARGET = ` \
  272.   if [ -f $$r/binutils/dllwrap ] ; then \
  273.     echo $$r/binutils/dllwrap ; \
  274.   else \
  275.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  276.       echo $(DLLWRAP); \
  277.     else \
  278.        t='$(program_transform_name)'; echo dllwrap | sed -e 's/x/x/' $$t ; \
  279.     fi; \
  280.   fi`
  281.  
  282. WINDRES_FOR_TARGET = ` \
  283.   if [ -f $$r/binutils/windres ] ; then \
  284.     echo $$r/binutils/windres ; \
  285.   else \
  286.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  287.       echo $(WINDRES); \
  288.     else \
  289.        t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \
  290.     fi; \
  291.   fi`
  292.  
  293. AR_FOR_TARGET = ` \
  294.   if [ -f $$r/binutils/ar ] ; then \
  295.     echo $$r/binutils/ar ; \
  296.   else \
  297.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  298.       echo $(AR); \
  299.     else \
  300.        t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
  301.     fi; \
  302.   fi`
  303.  
  304. RANLIB_FOR_TARGET = ` \
  305.   if [ -f $$r/binutils/ranlib ] ; then \
  306.     echo $$r/binutils/ranlib ; \
  307.   else \
  308.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  309.       echo $(RANLIB); \
  310.     else \
  311.        t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
  312.     fi; \
  313.   fi`
  314.  
  315. NM_FOR_TARGET = ` \
  316.   if [ -f $$r/binutils/nm-new ] ; then \
  317.     echo $$r/binutils/nm-new ; \
  318.   else \
  319.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  320.       echo $(NM); \
  321.     else \
  322.        t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
  323.     fi; \
  324.   fi`
  325.  
  326. #### host and target specific makefile fragments come in here.
  327. ###
  328.  
  329. # Flags to pass down to all sub-makes.
  330. # Please keep these in alphabetical order.
  331. BASE_FLAGS_TO_PASS = \
  332.     "AR_FLAGS=$(AR_FLAGS)" \
  333.     "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  334.     "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  335.     "BISON=$(BISON)" \
  336.     "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
  337.     "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
  338.     "CFLAGS=$(CFLAGS)" \
  339.     "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
  340.     "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
  341.     "CXXFLAGS=$(CXXFLAGS)" \
  342.     "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
  343.     "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
  344.     "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
  345.     "DLLWRAP_FOR_TARGET=$(DLLWRAP_FOR_TARGET)" \
  346.     "INSTALL=$(INSTALL)" \
  347.     "INSTALL_DATA=$(INSTALL_DATA)" \
  348.     "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
  349.     "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
  350.     "LDFLAGS=$(LDFLAGS)" \
  351.     "LEX=$(LEX)" \
  352.     "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
  353.     "LIBCFLAGS=$(LIBCFLAGS)" \
  354.     "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
  355.     "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
  356.     "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
  357.     "M4=$(M4)" \
  358.     "MAKE=$(MAKE)" \
  359.     "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
  360.     "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
  361.     "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
  362.     "SHELL=$(SHELL)" \
  363.     "EXPECT=$(EXPECT)" \
  364.     "RUNTEST=$(RUNTEST)" \
  365.     "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
  366.     "TARGET_SUBDIR=$(TARGET_SUBDIR)" \
  367.     "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \
  368.     "YACC=$(YACC)" \
  369.     "exec_prefix=$(exec_prefix)" \
  370.     "prefix=$(prefix)" \
  371.     "tooldir=$(tooldir)" \
  372.     "gxx_include_dir=$(gxx_include_dir)" \
  373.     "gcc_version=$(gcc_version)" \
  374.     "gcc_version_trigger=$(gcc_version_trigger)" \
  375.     "target_alias=$(target_alias)" \
  376.     "libsubdir=$(libsubdir)"
  377.  
  378. # Flags to pass down to most sub-makes, in which we're building with
  379. # the host environment.
  380. # If any variables are added here, they must be added to do-*, below.
  381. EXTRA_HOST_FLAGS = \
  382.     'AR=$(AR)' \
  383.     'AS=$(AS)' \
  384.     'CC=$(CC)' \
  385.     'CXX=$(CXX)' \
  386.     'DLLTOOL=$(DLLTOOL)' \
  387.     'DLLWRAP=$(DLLWRAP)' \
  388.     'LD=$(LD)' \
  389.     'NM=$(NM)' \
  390.     'RANLIB=$(RANLIB)' \
  391.     'WINDRES=$(WINDRES)'
  392.  
  393. FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  394.  
  395. # Flags that are concerned with the location of the X11 include files
  396. # and library files
  397. #
  398. # NOTE: until the top-level is getting the values via autoconf, it only
  399. # causes problems to have this top-level Makefile overriding the autoconf-set
  400. # values in child directories.  Only variables that don't conflict with
  401. # autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now.
  402. #
  403. X11_FLAGS_TO_PASS = \
  404.     'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
  405.     'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
  406.  
  407. # Flags to pass down to makes which are built with the target environment.
  408. # The double $ decreases the length of the command line; the variables
  409. # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.
  410. # If any variables are added here, they must be added to do-*, below.
  411. EXTRA_TARGET_FLAGS = \
  412.     'AR=$$(AR_FOR_TARGET)' \
  413.     'AS=$$(AS_FOR_TARGET)' \
  414.     'CC=$$(CC_FOR_TARGET)' \
  415.     'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
  416.     'CXX=$$(CXX_FOR_TARGET)' \
  417.     'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
  418.     'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
  419.     'DLLWRAP=$$(DLLWRAP_FOR_TARGET)' \
  420.     'LD=$$(LD_FOR_TARGET)' \
  421.     'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
  422.     'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
  423.     'NM=$$(NM_FOR_TARGET)' \
  424.     'RANLIB=$$(RANLIB_FOR_TARGET)' \
  425.     'WINDRES=$$(WINDRES_FOR_TARGET)'
  426.  
  427. TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
  428.  
  429. # Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
  430. # unfortunately needs the native compiler and the target ar and
  431. # ranlib.
  432. # If any variables are added here, they must be added to do-*, below.
  433. # The HOST_* variables are a special case, which are used for the gcc
  434. # cross-building scheme.
  435. EXTRA_GCC_FLAGS = \
  436.     'AR=$$(AR_FOR_TARGET)' \
  437.     'AS=$(AS)' \
  438.     'CC=$(CC)' \
  439.     'CXX=$(CXX)' \
  440.     'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
  441.     'DLLWRAP=$$(DLLWRAP_FOR_TARGET)' \
  442.     'HOST_CC=$(CC_FOR_BUILD)' \
  443.     'HOST_PREFIX=$(HOST_PREFIX)' \
  444.     'HOST_PREFIX_1=$(HOST_PREFIX_1)' \
  445.     'NM=$(NM)' \
  446.     'RANLIB=$$(RANLIB_FOR_TARGET)' \
  447.     'WINDRES=$$(WINDRES_FOR_TARGET)' \
  448.     "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
  449.     "`if test x'$(LANGUAGES)' != x; then echo 'LANGUAGES=$(LANGUAGES)'; else echo 'XFOO=bar'; fi`" \
  450.     "`if test x'$(STMP_FIXPROTO)' != x; then echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)'; else echo 'XFOO=bar'; fi`" \
  451.     "`if test x'$(LIMITS_H_TEST)' != x; then echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)'; else echo 'XFOO=bar'; fi`" \
  452.     "`if test x'$(LIBGCC1_TEST)' != x; then echo 'LIBGCC1_TEST=$(LIBGCC1_TEST)'; else echo 'XFOO=bar'; fi`" \
  453.     "`if test x'$(LIBGCC2_CFLAGS)' != x; then echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)'; else echo 'XFOO=bar'; fi`" \
  454.     "`if test x'$(LIBGCC2_DEBUG_CFLAGS)' != x; then echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)'; else echo 'XFOO=bar'; fi`" \
  455.     "`if test x'$(LIBGCC2_INCLUDES)' != x; then echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)'; else echo 'XFOO=bar'; fi`" \
  456.     "`if test x'$(ENQUIRE)' != x; then echo 'ENQUIRE=$(ENQUIRE)'; else echo 'XFOO=bar'; fi`" \
  457.     "`if test x'$(BOOT_CFLAGS)' != x; then echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)'; else echo 'XFOO=bar'; fi`"
  458.  
  459. GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
  460.  
  461. # This is a list of the targets for all of the modules which are compiled
  462. # using $(FLAGS_TO_PASS).
  463. ALL_MODULES = \
  464.     all-apache \
  465.     all-autoconf \
  466.     all-automake \
  467.     all-bash \
  468.     all-bfd \
  469.     all-binutils \
  470.     all-bison \
  471.     all-byacc \
  472.     all-cvs \
  473.     all-db \
  474.     all-dejagnu \
  475.     all-diff \
  476.     all-dosutils \
  477.     all-etc \
  478.     all-fileutils \
  479.     all-findutils \
  480.     all-find \
  481.     all-flex \
  482.     all-gas \
  483.     all-gawk \
  484.     all-gnuserv \
  485.     all-gprof \
  486.     all-grep \
  487.     all-grez \
  488.     all-gzip \
  489.     all-hello \
  490.     all-indent \
  491.     all-inet \
  492.     all-ispell \
  493.     all-itcl \
  494.     all-ld \
  495.     all-libiberty \
  496.     all-m4 \
  497.     all-make \
  498.     all-mmalloc \
  499.     all-opcodes \
  500.     all-patch \
  501.     all-perl \
  502.     all-prms \
  503.     all-rcs \
  504.     all-readline \
  505.     all-release \
  506.     all-recode \
  507.     all-sed \
  508.     all-send-pr \
  509.     all-shellutils \
  510.     all-sim \
  511.     all-sn \
  512.     all-tar \
  513.     all-tcl \
  514.     all-texinfo \
  515.     all-textutils \
  516.     all-tgas \
  517.     all-time \
  518.     all-uudecode \
  519.     all-wdiff 
  520.  
  521. # This is a list of the check targets for all of the modules which are
  522. # compiled using $(FLAGS_TO_PASS).
  523. #
  524. # The list is in two parts.  The first lists those tools which
  525. # are tested as part of the host's native tool-chain, and not
  526. # tested in a cross configuration.
  527. NATIVE_CHECK_MODULES = \
  528.     check-bison \
  529.     check-byacc \
  530.     check-flex
  531.  
  532. CROSS_CHECK_MODULES = \
  533.     check-apache \
  534.     check-autoconf \
  535.     check-automake \
  536.     check-bash \
  537.     check-bfd \
  538.     check-binutils \
  539.     check-cvs \
  540.     check-db \
  541.     check-dejagnu \
  542.     check-diff \
  543.     check-etc \
  544.     check-fileutils \
  545.     check-findutils \
  546.     check-find \
  547.     check-gas \
  548.     check-gawk \
  549.     check-gnuserv \
  550.     check-gprof \
  551.     check-grep \
  552.     check-gzip \
  553.     check-hello \
  554.     check-indent \
  555.     check-inet \
  556.     check-ispell \
  557.     check-itcl \
  558.     check-ld \
  559.     check-libiberty \
  560.     check-m4 \
  561.     check-make \
  562.     check-mmcheckoc \
  563.     check-opcodes \
  564.     check-patch \
  565.     check-perl \
  566.     check-prms \
  567.     check-rcs \
  568.     check-readline \
  569.     check-recode \
  570.     check-sed \
  571.     check-send-pr \
  572.     check-shellutils \
  573.     check-sn \
  574.     check-sim \
  575.     check-tar \
  576.     check-tcl \
  577.     check-texinfo \
  578.     check-textutils \
  579.     check-tgas \
  580.     check-time \
  581.     check-uudecode \
  582.     check-wdiff
  583.  
  584. CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
  585.  
  586. # This is a list of the install targets for all of the modules which are
  587. # compiled using $(FLAGS_TO_PASS).
  588. # We put install-opcodes before install-binutils because the installed
  589. # binutils might be on PATH, and they might need the shared opcodes
  590. # library.
  591. INSTALL_MODULES = \
  592.     install-apache \
  593.     install-autoconf \
  594.     install-automake \
  595.     install-bash \
  596.     install-bfd \
  597.     install-opcodes \
  598.     install-binutils \
  599.     install-bison \
  600.     install-byacc \
  601.     install-cvs \
  602.     install-db \
  603.     install-dejagnu \
  604.     install-diff \
  605.     install-dosutils \
  606.     install-etc \
  607.     install-fileutils \
  608.     install-findutils \
  609.     install-find \
  610.     install-flex \
  611.     install-gas \
  612.     install-gawk \
  613.     install-gnuserv \
  614.     install-gprof \
  615.     install-grep \
  616.     install-grez \
  617.     install-gzip \
  618.     install-hello \
  619.     install-indent \
  620.     install-inet \
  621.     install-ispell \
  622.     install-itcl \
  623.     install-ld \
  624.     install-libiberty \
  625.     install-m4 \
  626.     install-make \
  627.     install-mmalloc \
  628.     install-patch \
  629.     install-perl \
  630.     install-prms \
  631.     install-rcs \
  632.     install-readline \
  633.     install-recode \
  634.     install-sed \
  635.     install-send-pr \
  636.     install-shellutils \
  637.     install-sim \
  638.     install-sn \
  639.     install-tar \
  640.     install-tcl \
  641.     install-textutils \
  642.     install-tgas \
  643.     install-time \
  644.     install-uudecode \
  645.     install-wdiff
  646.  
  647. # This is a list of the targets for all of the modules which are compiled
  648. # using $(X11_FLAGS_TO_PASS).
  649. ALL_X11_MODULES = \
  650.     all-emacs \
  651.     all-emacs19 \
  652.     all-gdb \
  653.     all-expect \
  654.     all-gash \
  655.     all-guile \
  656.     all-tclX \
  657.     all-tk \
  658.     all-tix
  659.  
  660. # This is a list of the check targets for all of the modules which are
  661. # compiled using $(X11_FLAGS_TO_PASS).
  662. CHECK_X11_MODULES = \
  663.     check-emacs \
  664.     check-gdb \
  665.     check-guile \
  666.     check-expect \
  667.     check-gash \
  668.     check-tclX \
  669.     check-tk \
  670.     check-tix
  671.  
  672. # This is a list of the install targets for all the modules which are
  673. # compiled using $(X11_FLAGS_TO_PASS).
  674. INSTALL_X11_MODULES = \
  675.     install-emacs \
  676.     install-emacs19 \
  677.     install-gdb \
  678.     install-guile \
  679.     install-expect \
  680.     install-gash \
  681.     install-tclX \
  682.     install-tk \
  683.     install-tix
  684.  
  685. # This is a list of the targets for all of the modules which are compiled
  686. # using $(TARGET_FLAGS_TO_PASS).
  687. ALL_TARGET_MODULES = \
  688.     all-target-libio \
  689.     all-target-libstdc++ \
  690.     all-target-librx \
  691.     all-target-libg++ \
  692.     all-target-newlib \
  693.     all-target-libf2c \
  694.     all-target-winsup \
  695.     all-target-mingw \
  696.     all-target-w32api \
  697.     all-target-windows32api \
  698.     all-target-libgloss \
  699.     all-target-libiberty \
  700.     all-target-gperf \
  701.     all-target-examples
  702.  
  703. # This is a list of the configure targets for all of the modules which
  704. # are compiled using the target tools.
  705. CONFIGURE_TARGET_MODULES = \
  706.     configure-target-libio \
  707.     configure-target-libstdc++ \
  708.     configure-target-librx \
  709.     configure-target-libg++ \
  710.     configure-target-newlib \
  711.     configure-target-libf2c \
  712.     configure-target-winsup \
  713.     configure-target-mingw \
  714.     configure-target-w32api \
  715.     configure-target-windows32api \
  716.     configure-target-libgloss \
  717.     configure-target-libiberty \
  718.     configure-target-gperf \
  719.     configure-target-examples
  720.  
  721. # This is a list of the check targets for all of the modules which are
  722. # compiled using $(TARGET_FLAGS_TO_PASS).
  723. CHECK_TARGET_MODULES = \
  724.     check-target-libio \
  725.     check-target-libstdc++ \
  726.     check-target-libg++ \
  727.     check-target-newlib \
  728.     check-target-libf2c \
  729.     check-target-winsup \
  730.     check-target-mingw \
  731.     check-target-w32api \
  732.     check-target-windows32api \
  733.     check-target-libiberty \
  734.     check-target-gperf
  735.  
  736. # This is a list of the install targets for all of the modules which are
  737. # compiled using $(TARGET_FLAGS_TO_PASS).
  738. INSTALL_TARGET_MODULES = \
  739.     install-target-libio \
  740.     install-target-libstdc++ \
  741.     install-target-libg++ \
  742.     install-target-newlib \
  743.     install-target-libf2c \
  744.     install-target-winsup \
  745.     install-target-mingw \
  746.     install-target-w32api \
  747.     install-target-windows32api \
  748.     install-target-libgloss \
  749.     install-target-libiberty \
  750.     install-target-gperf
  751.  
  752. # This is a list of the targets for which we can do a clean-{target}.
  753. CLEAN_MODULES = \
  754.     clean-apache \
  755.     clean-autoconf \
  756.     clean-automake \
  757.     clean-bash \
  758.     clean-bfd \
  759.     clean-binutils \
  760.     clean-bison \
  761.     clean-byacc \
  762.     clean-cvs \
  763.     clean-db \
  764.     clean-dejagnu \
  765.     clean-diff \
  766.     clean-dosutils \
  767.     clean-etc \
  768.     clean-fileutils \
  769.     clean-findutils \
  770.     clean-find \
  771.     clean-flex \
  772.     clean-gas \
  773.     clean-gawk \
  774.     clean-gnuserv \
  775.     clean-gprof \
  776.     clean-grep \
  777.     clean-grez \
  778.     clean-gzip \
  779.     clean-hello \
  780.     clean-indent \
  781.     clean-inet \
  782.     clean-ispell \
  783.     clean-itcl \
  784.     clean-ld \
  785.     clean-libiberty \
  786.     clean-m4 \
  787.     clean-make \
  788.     clean-mmalloc \
  789.     clean-opcodes \
  790.     clean-patch \
  791.     clean-perl \
  792.     clean-prms \
  793.     clean-rcs \
  794.     clean-readline \
  795.     clean-release \
  796.     clean-recode \
  797.     clean-sed \
  798.     clean-send-pr \
  799.     clean-shellutils \
  800.     clean-sim \
  801.     clean-sn \
  802.     clean-tar \
  803.     clean-tcl \
  804.     clean-texinfo \
  805.     clean-textutils \
  806.     clean-tgas \
  807.     clean-time \
  808.     clean-uudecode \
  809.     clean-wdiff
  810.  
  811. # All of the target modules that can be cleaned
  812. CLEAN_TARGET_MODULES = \
  813.     clean-target-libio \
  814.     clean-target-libstdc++ \
  815.     clean-target-librx \
  816.     clean-target-libg++ \
  817.     clean-target-newlib \
  818.     clean-target-libf2c \
  819.     clean-target-winsup \
  820.     clean-target-mingw \
  821.     clean-target-w32api \
  822.     clean-target-windows32api \
  823.     clean-target-libgloss \
  824.     clean-target-libiberty \
  825.     clean-target-gperf \
  826.     clean-target-examples
  827.  
  828. # All of the x11 modules that can be cleaned
  829. CLEAN_X11_MODULES = \
  830.     clean-emacs \
  831.     clean-emacs19 \
  832.     clean-gdb \
  833.     clean-expect \
  834.     clean-gash \
  835.     clean-guile \
  836.     clean-tclX \
  837.     clean-tk \
  838.     clean-tix
  839.  
  840. # The first rule in the file had better be this one.  Don't put any above it.
  841. all: all.normal
  842. .PHONY: all
  843.  
  844. # The target built for a native build.
  845. .PHONY: all.normal
  846. all.normal: \
  847.     $(ALL_MODULES) \
  848.     $(ALL_X11_MODULES) \
  849.     $(ALL_TARGET_MODULES) \
  850.     all-gcc
  851.  
  852. # Do a target for all the subdirectories.  A ``make do-X'' will do a
  853. # ``make X'' in all subdirectories (because, in general, there is a
  854. # dependency (below) of X upon do-X, a ``make X'' will also do this,
  855. # but it may do additional work as well).
  856. # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
  857. # because it is so large that it can easily overflow the command line
  858. # length limit on some systems.
  859. DO_X = \
  860.     do-clean \
  861.     do-distclean \
  862.     do-dvi \
  863.     do-info \
  864.     do-install-info \
  865.     do-installcheck \
  866.     do-mostlyclean \
  867.     do-maintainer-clean \
  868.     do-TAGS
  869. .PHONY: $(DO_X)
  870. $(DO_X):
  871.     @target=`echo $@ | sed -e 's/^do-//'`; \
  872.     r=`pwd`; export r; \
  873.     s=`cd $(srcdir); pwd`; export s; \
  874.     $(SET_LIB_PATH) \
  875.     for i in $(SUBDIRS) -dummy-; do \
  876.       if [ -f ./$$i/Makefile ]; then \
  877.         case $$i in \
  878.         gcc) \
  879.           for flag in $(EXTRA_GCC_FLAGS); do \
  880.         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
  881.           done; \
  882.           ;; \
  883.         *) \
  884.           for flag in $(EXTRA_HOST_FLAGS); do \
  885.         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
  886.           done; \
  887.           ;; \
  888.         esac ; \
  889.         export AR AS CC CXX LD NM RANLIB DLLTOOL DLLWRAP WINDRES; \
  890.         if (cd ./$$i; \
  891.             $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  892.             "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  893.             "RANLIB=$${RANLIB}" \
  894.             "DLLTOOL=$${DLLTOOL}" \
  895.             "DLLWRAP=$${DLLWRAP}" \
  896.             "WINDRES=$${WINDRES}" \
  897.             $${target}); \
  898.         then true; else exit 1; fi; \
  899.       else true; fi; \
  900.     done
  901.     @target=`echo $@ | sed -e 's/^do-//'`; \
  902.     r=`pwd`; export r; \
  903.     s=`cd $(srcdir); pwd`; export s; \
  904.     $(SET_LIB_PATH) \
  905.     for i in $(TARGET_CONFIGDIRS) -dummy-; do \
  906.       if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
  907.         for flag in $(EXTRA_TARGET_FLAGS); do \
  908.         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
  909.         done; \
  910.         export AR AS CC CXX LD NM RANLIB DLLTOOL DLLWRAP WINDRES; \
  911.         if (cd $(TARGET_SUBDIR)/$$i; \
  912.             $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  913.             "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
  914.             "RANLIB=$${RANLIB}" \
  915.             "DLLTOOL=$${DLLTOOL}" \
  916.             "DLLWRAP=$${DLLWRAP}" \
  917.             "WINDRES=$${WINDRES}" \
  918.             $${target}); \
  919.         then true; else exit 1; fi; \
  920.       else true; fi; \
  921.     done
  922.  
  923. # Here are the targets which correspond to the do-X targets.
  924.  
  925. .PHONY: info installcheck dvi install-info
  926. .PHONY: clean distclean mostlyclean maintainer-clean realclean
  927. .PHONY: local-clean local-distclean local-maintainer-clean
  928. info: do-info
  929. installcheck: do-installcheck
  930. dvi: do-dvi
  931.  
  932. # Make sure makeinfo is built before we do a `make info'.
  933. do-info: all-texinfo
  934.  
  935. install-info: do-install-info dir.info
  936.     s=`cd $(srcdir); pwd`; export s; \
  937.     if [ -f dir.info ] ; then \
  938.       $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
  939.     else true ; fi
  940.  
  941. local-clean:
  942.     -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E *.log
  943.  
  944. local-distclean:
  945.     -rm -f Makefile config.status config.cache mh-frag mt-frag
  946.     -if [ "$(TARGET_SUBDIR)" != "." ]; then \
  947.       rm -rf $(TARGET_SUBDIR); \
  948.     else true; fi
  949.  
  950. local-maintainer-clean:
  951.     @echo "This command is intended for maintainers to use;"
  952.     @echo "it deletes files that may require special tools to rebuild."
  953.  
  954. clean: do-clean local-clean
  955. mostlyclean: do-mostlyclean local-clean
  956. distclean: do-distclean local-clean local-distclean
  957. maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
  958. maintainer-clean: local-distclean
  959. realclean: maintainer-clean
  960.  
  961. # This rule is used to clean specific modules.
  962. .PHONY: $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc
  963. $(CLEAN_MODULES) $(CLEAN_X11_MODULES) clean-gcc:
  964.     @dir=`echo $@ | sed -e 's/clean-//'`; \
  965.     if [ -f ./$${dir}/Makefile ] ; then \
  966.       r=`pwd`; export r; \
  967.       s=`cd $(srcdir); pwd`; export s; \
  968.       $(SET_LIB_PATH) \
  969.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) clean); \
  970.     else \
  971.       true; \
  972.     fi
  973.  
  974. .PHONY: $(CLEAN_TARGET_MODULES)
  975. $(CLEAN_TARGET_MODULES):
  976.     @dir=`echo $@ | sed -e 's/clean-target-//'`; \
  977.     rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
  978.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  979.       r=`pwd`; export r; \
  980.       s=`cd $(srcdir); pwd`; export s; \
  981.       $(SET_LIB_PATH) \
  982.       (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) clean); \
  983.     else \
  984.       true; \
  985.     fi
  986.  
  987. clean-target: $(CLEAN_TARGET_MODULES)
  988.  
  989. # Check target.
  990.  
  991. .PHONY: check
  992. check: $(CHECK_MODULES) \
  993.     $(CHECK_TARGET_MODULES) \
  994.     $(CHECK_X11_MODULES) \
  995.     check-gcc
  996.  
  997. # Automated reporting of test results.
  998.  
  999. warning.log: build.log
  1000.     $(srcdir)/contrib/warn_summary build.log > $@
  1001.  
  1002. mail-report.log:
  1003.     if test x'$(BOOT_CFLAGS)' != x''; then \
  1004.         BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
  1005.     fi; \
  1006.     $(srcdir)/contrib/test_summary -t >$@
  1007.     chmod +x $@
  1008.     echo If you really want to send e-mail, run ./$@ now
  1009.  
  1010. mail-report-with-warnings.log: warning.log
  1011.     if test x'$(BOOT_CFLAGS)' != x''; then \
  1012.         BOOT_CFLAGS='$(BOOT_CFLAGS)'; export BOOT_CFLAGS; \
  1013.     fi; \
  1014.     $(srcdir)/contrib/test_summary -t -i warning.log >$@
  1015.     chmod +x $@
  1016.     echo If you really want to send e-mail, run ./$@ now
  1017.  
  1018. # Installation targets.
  1019.  
  1020. .PHONY: install install-cross uninstall source-vault binary-vault vault-install
  1021. install: $(INSTALL_TARGET) 
  1022. install-cross: $(INSTALL_TARGET_CROSS) 
  1023.  
  1024. uninstall:
  1025.     @echo "the uninstall target is not supported in this tree"
  1026.  
  1027. source-vault:
  1028.     $(MAKE) -f ./release/Build-A-Release \
  1029.         host=$(host_alias) source-vault
  1030.  
  1031. binary-vault:
  1032.     $(MAKE) -f ./release/Build-A-Release \
  1033.         host=$(host_alias) target=$(target_alias)
  1034.  
  1035. vault-install:
  1036.     @if [ -f ./release/vault-install ] ; then \
  1037.       ./release/vault-install $(host_alias) $(target_alias) ; \
  1038.     else \
  1039.       true ; \
  1040.     fi
  1041.  
  1042. .PHONY: install.all
  1043. install.all: install-no-fixedincludes
  1044.     @if [ -f ./gcc/Makefile ] ; then \
  1045.         r=`pwd` ; export r ; \
  1046.         $(SET_LIB_PATH) \
  1047.         (cd ./gcc; \
  1048.         $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
  1049.     else \
  1050.         true ; \
  1051.     fi
  1052.  
  1053. # inet-install is used because the I*Net wants DejaGNU installed but
  1054. # not built.  Similarly, gzip is built but not installed.
  1055. inet-install:
  1056.     $(MAKE) INSTALL_MODULES="`echo $(INSTALL_MODULES) | sed -e 's/install-dejagnu//' -e 's/install-gzip//'`" install
  1057.  
  1058. # install-no-fixedincludes is used because Cygnus can not distribute
  1059. # the fixed header files.
  1060. .PHONY: install-no-fixedincludes
  1061. install-no-fixedincludes: \
  1062.     installdirs \
  1063.     $(INSTALL_MODULES) \
  1064.     $(INSTALL_TARGET_MODULES) \
  1065.     $(INSTALL_X11_MODULES) \
  1066.     gcc-no-fixedincludes 
  1067.  
  1068. # Install the gcc headers files, but not the fixed include files,
  1069. # which Cygnus is not allowed to distribute.  This rule is very
  1070. # dependent on the workings of the gcc Makefile.in.
  1071. .PHONY: gcc-no-fixedincludes
  1072. gcc-no-fixedincludes:
  1073.     @if [ -f ./gcc/Makefile ]; then \
  1074.       rm -rf gcc/tmp-include; \
  1075.       mv gcc/include gcc/tmp-include 2>/dev/null; \
  1076.       mkdir gcc/include; \
  1077.       cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
  1078.       touch gcc/stmp-fixinc gcc/include/fixed; \
  1079.       rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
  1080.       r=`pwd`; export r; \
  1081.       s=`cd $(srcdir); pwd` ; export s; \
  1082.       $(SET_LIB_PATH) \
  1083.       (cd ./gcc; \
  1084.        $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  1085.       rm -rf gcc/include; \
  1086.       mv gcc/tmp-include gcc/include 2>/dev/null; \
  1087.     else true; fi
  1088.  
  1089. # This rule is used to build the modules which use FLAGS_TO_PASS.  To
  1090. # build a target all-X means to cd to X and make all.
  1091. #
  1092. # all-gui, and all-libproc are handled specially because
  1093. # they are still experimental, and if they fail to build, that
  1094. # shouldn't stop "make all".
  1095. .PHONY: $(ALL_MODULES) all-gui all-libproc
  1096. $(ALL_MODULES) all-gui all-libproc:
  1097.     @dir=`echo $@ | sed -e 's/all-//'`; \
  1098.     if [ -f ./$${dir}/Makefile ] ; then \
  1099.       r=`pwd`; export r; \
  1100.       s=`cd $(srcdir); pwd`; export s; \
  1101.       $(SET_LIB_PATH) \
  1102.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
  1103.     else \
  1104.       true; \
  1105.     fi
  1106.  
  1107. # These rules are used to check the modules which use FLAGS_TO_PASS.
  1108. # To build a target check-X means to cd to X and make check.  Some
  1109. # modules are only tested in a native toolchain.
  1110.  
  1111. .PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
  1112. $(NATIVE_CHECK_MODULES):
  1113.     @if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  1114.       dir=`echo $@ | sed -e 's/check-//'`; \
  1115.       if [ -f ./$${dir}/Makefile ] ; then \
  1116.         r=`pwd`; export r; \
  1117.         s=`cd $(srcdir); pwd`; export s; \
  1118.         $(SET_LIB_PATH) \
  1119.         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
  1120.       else \
  1121.         true; \
  1122.       fi; \
  1123.     fi
  1124.  
  1125. $(CROSS_CHECK_MODULES):
  1126.     @dir=`echo $@ | sed -e 's/check-//'`; \
  1127.     if [ -f ./$${dir}/Makefile ] ; then \
  1128.       r=`pwd`; export r; \
  1129.       s=`cd $(srcdir); pwd`; export s; \
  1130.       $(SET_LIB_PATH) \
  1131.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
  1132.     else \
  1133.       true; \
  1134.     fi
  1135.  
  1136. # This rule is used to install the modules which use FLAGS_TO_PASS.
  1137. # To build a target install-X means to cd to X and make install.
  1138. .PHONY: $(INSTALL_MODULES)
  1139. $(INSTALL_MODULES): installdirs
  1140.     @dir=`echo $@ | sed -e 's/install-//'`; \
  1141.     if [ -f ./$${dir}/Makefile ] ; then \
  1142.       r=`pwd`; export r; \
  1143.       s=`cd $(srcdir); pwd`; export s; \
  1144.       $(SET_LIB_PATH) \
  1145.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
  1146.     else \
  1147.       true; \
  1148.     fi
  1149.  
  1150. # This rule is used to configure the modules which are built with the
  1151. # target tools.
  1152. .PHONY: $(CONFIGURE_TARGET_MODULES)
  1153. $(CONFIGURE_TARGET_MODULES):
  1154.     @dir=`echo $@ | sed -e 's/configure-target-//'`; \
  1155.     if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \
  1156.       r=`pwd`; export r; \
  1157.       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \
  1158.       if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \
  1159.         if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \
  1160.           if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \
  1161.         rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \
  1162.           else \
  1163.         echo "Multilibs changed for $${dir}, reconfiguring"; \
  1164.         rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \
  1165.         mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
  1166.           fi; \
  1167.         else \
  1168.           mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \
  1169.         fi; \
  1170.       fi; \
  1171.     fi; exit 0    # break command into two pieces
  1172.     @dir=`echo $@ | sed -e 's/configure-target-//'`; \
  1173.     if [ ! -d $(TARGET_SUBDIR) ]; then \
  1174.       true; \
  1175.     elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  1176.       true; \
  1177.     elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
  1178.       if [ -d $(srcdir)/$${dir} ]; then \
  1179.         [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
  1180.         r=`pwd`; export r; \
  1181.         s=`cd $(srcdir); pwd`; export s; \
  1182.         $(SET_LIB_PATH) \
  1183.         AR="$(AR_FOR_TARGET)"; export AR; \
  1184.         AS="$(AS_FOR_TARGET)"; export AS; \
  1185.         CC="$(CC_FOR_TARGET)"; export CC; \
  1186.         CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
  1187.         CXX="$(CXX_FOR_TARGET)"; export CXX; \
  1188.         CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  1189.         DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
  1190.         DLLWRAP="$(DLLWRAP_FOR_TARGET)"; export DLLWRAP; \
  1191.         LD="$(LD_FOR_TARGET)"; export LD; \
  1192.             LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
  1193.         NM="$(NM_FOR_TARGET)"; export NM; \
  1194.         RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
  1195.         WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \
  1196.         echo Configuring in $(TARGET_SUBDIR)/$${dir}; \
  1197.         cd $(TARGET_SUBDIR)/$${dir}; \
  1198.         case $(srcdir) in \
  1199.         /*) \
  1200.           topdir=$(srcdir) ;; \
  1201.         *) \
  1202.           case "$(TARGET_SUBDIR)" in \
  1203.           .) topdir="../$(srcdir)" ;; \
  1204.           *) topdir="../../$(srcdir)" ;; \
  1205.           esac ;; \
  1206.         esac; \
  1207.         if [ "$(srcdir)" = "." ] ; then \
  1208.           if [ "$(TARGET_SUBDIR)" != "." ] ; then \
  1209.         if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
  1210.           if [ -f Makefile ]; then \
  1211.             if $(MAKE) distclean; then \
  1212.               true; \
  1213.             else \
  1214.               exit 1; \
  1215.             fi; \
  1216.           else \
  1217.             true; \
  1218.           fi; \
  1219.         else \
  1220.           exit 1; \
  1221.         fi; \
  1222.           else \
  1223.         true; \
  1224.           fi; \
  1225.           srcdiroption="--srcdir=."; \
  1226.           libsrcdir="."; \
  1227.         else \
  1228.           srcdiroption="--srcdir=$${topdir}/$${dir}"; \
  1229.           libsrcdir="$$s/$${dir}"; \
  1230.         fi; \
  1231.         if [ -f $${libsrcdir}/configure ] ; then \
  1232.           rm -f no-such-file; \
  1233.           CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
  1234.         $(CONFIG_ARGUMENTS) $${srcdiroption} \
  1235.         --with-target-subdir="$(TARGET_SUBDIR)"; \
  1236.         else \
  1237.           rm -f no-such-file; \
  1238.           CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
  1239.         $(CONFIG_ARGUMENTS) $${srcdiroption} \
  1240.         --with-target-subdir="$(TARGET_SUBDIR)"; \
  1241.         fi; \
  1242.       else \
  1243.         true; \
  1244.       fi; \
  1245.     else \
  1246.       true; \
  1247.     fi
  1248.  
  1249. # This rule is used to build the modules which use TARGET_FLAGS_TO_PASS.
  1250. # To build a target all-X means to cd to X and make all.
  1251. .PHONY: $(ALL_TARGET_MODULES)
  1252. $(ALL_TARGET_MODULES):
  1253.     @dir=`echo $@ | sed -e 's/all-target-//'`; \
  1254.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  1255.       r=`pwd`; export r; \
  1256.       s=`cd $(srcdir); pwd`; export s; \
  1257.       $(SET_LIB_PATH) \
  1258.       (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
  1259.     else \
  1260.       true; \
  1261.     fi
  1262.  
  1263. # This rule is used to check the modules which use TARGET_FLAGS_TO_PASS.
  1264. # To build a target install-X means to cd to X and make install.
  1265. .PHONY: $(CHECK_TARGET_MODULES)
  1266. $(CHECK_TARGET_MODULES):
  1267.     @dir=`echo $@ | sed -e 's/check-target-//'`; \
  1268.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  1269.       r=`pwd`; export r; \
  1270.       s=`cd $(srcdir); pwd`; export s; \
  1271.       $(SET_LIB_PATH) \
  1272.       (cd $(TARGET_SUBDIR)/$${dir};$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
  1273.     else \
  1274.       true; \
  1275.     fi
  1276.  
  1277. # This rule is used to install the modules which use
  1278. # TARGET_FLAGS_TO_PASS.  To build a target install-X means to cd to X
  1279. # and make install.
  1280. .PHONY: $(INSTALL_TARGET_MODULES)
  1281. $(INSTALL_TARGET_MODULES): installdirs
  1282.     @dir=`echo $@ | sed -e 's/install-target-//'`; \
  1283.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  1284.       r=`pwd`; export r; \
  1285.       s=`cd $(srcdir); pwd`; export s; \
  1286.       $(SET_LIB_PATH) \
  1287.       (cd $(TARGET_SUBDIR)/$${dir}; \
  1288.         $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
  1289.     else \
  1290.       true; \
  1291.     fi
  1292.  
  1293. # This rule is used to build the modules which use X11_FLAGS_TO_PASS.
  1294. # To build a target all-X means to cd to X and make all.
  1295. .PHONY: $(ALL_X11_MODULES)
  1296. $(ALL_X11_MODULES):
  1297.     @dir=`echo $@ | sed -e 's/all-//'`; \
  1298.     if [ -f ./$${dir}/Makefile ] ; then \
  1299.       r=`pwd`; export r; \
  1300.       s=`cd $(srcdir); pwd`; export s; \
  1301.       $(SET_LIB_PATH) \
  1302.       (cd $${dir}; \
  1303.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
  1304.     else \
  1305.       true; \
  1306.     fi
  1307.  
  1308. # This rule is used to check the modules which use X11_FLAGS_TO_PASS.
  1309. # To build a target check-X means to cd to X and make all.
  1310. .PHONY: $(CHECK_X11_MODULES)
  1311. $(CHECK_X11_MODULES):
  1312.     @dir=`echo $@ | sed -e 's/check-//'`; \
  1313.     if [ -f ./$${dir}/Makefile ] ; then \
  1314.       r=`pwd`; export r; \
  1315.       s=`cd $(srcdir); pwd`; export s; \
  1316.       $(SET_LIB_PATH) \
  1317.       (cd $${dir}; \
  1318.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
  1319.     else \
  1320.       true; \
  1321.     fi
  1322.  
  1323. # This rule is used to install the modules which use X11_FLAGS_TO_PASS.
  1324. # To build a target install-X means to cd to X and make install.
  1325. .PHONY: $(INSTALL_X11_MODULES)
  1326. $(INSTALL_X11_MODULES): installdirs
  1327.     @dir=`echo $@ | sed -e 's/install-//'`; \
  1328.     if [ -f ./$${dir}/Makefile ] ; then \
  1329.       r=`pwd`; export r; \
  1330.       s=`cd $(srcdir); pwd`; export s; \
  1331.       $(SET_LIB_PATH) \
  1332.       (cd $${dir}; \
  1333.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
  1334.     else \
  1335.       true; \
  1336.     fi
  1337.  
  1338. # gcc is the only module which uses GCC_FLAGS_TO_PASS.
  1339. .PHONY: all-gcc
  1340. all-gcc:
  1341.     @if [ -f ./gcc/Makefile ] ; then \
  1342.       r=`pwd`; export r; \
  1343.       s=`cd $(srcdir); pwd`; export s; \
  1344.       $(SET_LIB_PATH) \
  1345.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
  1346.     else \
  1347.       true; \
  1348.     fi
  1349.  
  1350. # Building GCC uses some tools for rebuilding "source" files
  1351. # like texinfo, bison/byacc, etc.  So we must depend on those.
  1352. #
  1353. # While building GCC, it may be necessary to run various target
  1354. # programs like the assembler, linker, etc.  So we depend on
  1355. # those too.
  1356. #
  1357. # In theory, on an SMP all those dependencies can be resolved
  1358. # in parallel.
  1359. #
  1360. .PHONY: bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean
  1361. bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
  1362.     @r=`pwd`; export r; \
  1363.     s=`cd $(srcdir); pwd`; export s; \
  1364.     $(SET_LIB_PATH) \
  1365.     echo "Bootstrapping the compiler"; \
  1366.     cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $@
  1367.     @r=`pwd`; export r; \
  1368.     s=`cd $(srcdir); pwd`; export s; \
  1369.     case "$@" in \
  1370.       *bootstrap4-lean ) \
  1371.             msg="Comparing stage3 and stage4 of the compiler"; \
  1372.               compare=compare3-lean ;; \
  1373.       *bootstrap4 ) msg="Comparing stage3 and stage4 of the compiler"; \
  1374.               compare=compare3 ;; \
  1375.       *-lean )    msg="Comparing stage2 and stage3 of the compiler"; \
  1376.               compare=compare-lean ;; \
  1377.       * )        msg="Comparing stage2 and stage3 of the compiler"; \
  1378.               compare=compare ;; \
  1379.     esac; \
  1380.     $(SET_LIB_PATH) \
  1381.     echo "$$msg"; \
  1382.     cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
  1383.     @echo "Building runtime libraries"; \
  1384.     $(MAKE) all
  1385.  
  1386. .PHONY: cross
  1387. cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
  1388.     @r=`pwd`; export r; \
  1389.     s=`cd $(srcdir); pwd`; export s; \
  1390.     $(SET_LIB_PATH) \
  1391.     echo "Building the C and C++ compiler"; \
  1392.     cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
  1393.     @echo "Building runtime libraries"; \
  1394.     $(MAKE) all LANGUAGES="c c++"
  1395.  
  1396. .PHONY: check-gcc
  1397. check-gcc:
  1398.     @if [ -f ./gcc/Makefile ] ; then \
  1399.       r=`pwd`; export r; \
  1400.       s=`cd $(srcdir); pwd`; export s; \
  1401.       $(SET_LIB_PATH) \
  1402.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
  1403.     else \
  1404.       true; \
  1405.     fi
  1406.  
  1407. .PHONY: install-gcc
  1408. install-gcc:
  1409.     @if [ -f ./gcc/Makefile ] ; then \
  1410.       r=`pwd`; export r; \
  1411.       s=`cd $(srcdir); pwd`; export s; \
  1412.       $(SET_LIB_PATH) \
  1413.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  1414.     else \
  1415.       true; \
  1416.     fi
  1417.  
  1418. .PHONY: install-gcc-cross
  1419. install-gcc-cross:
  1420.     @if [ -f ./gcc/Makefile ] ; then \
  1421.       r=`pwd`; export r; \
  1422.       s=`cd $(srcdir); pwd`; export s; \
  1423.       $(SET_LIB_PATH) \
  1424.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \
  1425.     else \
  1426.       true; \
  1427.     fi
  1428. # EXPERIMENTAL STUFF
  1429. # This rule is used to install the modules which use FLAGS_TO_PASS.
  1430. # To build a target install-X means to cd to X and make install.
  1431. .PHONY: install-dosrel
  1432. install-dosrel: installdirs info
  1433.     @dir=`echo $@ | sed -e 's/install-//'`; \
  1434.     if [ -f ./$${dir}/Makefile ] ; then \
  1435.       r=`pwd`; export r; \
  1436.       s=`cd $(srcdir); pwd`; export s; \
  1437.       $(SET_LIB_PATH) \
  1438.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
  1439.     else \
  1440.       true; \
  1441.     fi
  1442.  
  1443. install-dosrel-fake:
  1444.  
  1445.  
  1446. # This is a list of inter-dependencies among modules.
  1447. all-apache:
  1448. all-autoconf: all-m4 all-texinfo
  1449. all-automake:
  1450. all-bash:
  1451. all-bfd:
  1452. all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc
  1453. all-bison: all-texinfo
  1454. all-byacc:
  1455. all-cvs:
  1456. all-db:
  1457. all-dejagnu: all-tcl all-expect all-tk
  1458. all-diff: all-libiberty
  1459. all-emacs:
  1460. all-emacs19: all-bison all-byacc
  1461. all-etc:
  1462. configure-target-examples: $(ALL_GCC)
  1463. all-target-examples: configure-target-examples
  1464. all-expect: all-tcl all-tk
  1465. all-fileutils: all-libiberty
  1466. all-findutils:
  1467. all-find:
  1468. all-flex: all-libiberty all-bison all-byacc
  1469. all-gas: all-libiberty all-opcodes all-bfd
  1470. all-gash: all-tcl
  1471. all-gawk:
  1472. ALL_GCC = all-gcc
  1473. all-gcc: all-bison all-byacc all-binutils all-gas all-ld
  1474. GDB_TK = all-tk all-tcl all-itcl all-tix
  1475. all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
  1476. all-gnuserv:
  1477. configure-target-gperf: $(ALL_GCC)
  1478. all-target-gperf: configure-target-gperf all-target-libiberty all-target-libg++
  1479. all-gprof: all-libiberty all-bfd all-opcodes
  1480. all-grep: all-libiberty
  1481. all-grez: all-libiberty all-bfd all-opcodes
  1482. all-gui: all-gdb all-libproc all-target-librx
  1483. all-guile:
  1484. all-gzip: all-libiberty
  1485. all-hello: all-libiberty
  1486. all-indent:
  1487. all-inet: all-tcl all-send-pr all-perl
  1488. all-ispell: all-emacs19
  1489. all-itcl: all-tcl all-tk
  1490. all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex
  1491. configure-target-libg++: $(ALL_GCC) configure-target-librx
  1492. all-target-libg++: configure-target-libg++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-librx all-target-libstdc++
  1493. configure-target-libgloss: $(ALL_GCC)
  1494. all-target-libgloss: configure-target-libgloss configure-target-newlib
  1495. configure-target-libio: $(ALL_GCC)
  1496. all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
  1497. check-target-libio: all-target-libstdc++
  1498. all-libiberty:
  1499. configure-target-librx: $(ALL_GCC) configure-target-newlib
  1500. all-target-librx: configure-target-librx
  1501. configure-target-libstdc++: $(ALL_GCC)
  1502. all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio
  1503. all-target-libf2c: configure-target-libf2c all-gas all-ld all-gcc all-target-libiberty all-target-newlib
  1504. all-m4: all-libiberty
  1505. all-make: all-libiberty
  1506. all-mmalloc:
  1507. configure-target-newlib: $(ALL_GCC)
  1508. all-target-newlib: configure-target-newlib all-binutils all-gas all-gcc
  1509. all-opcodes: all-bfd all-libiberty
  1510. all-patch: all-libiberty
  1511. all-perl:
  1512. all-prms: all-libiberty
  1513. all-rcs:
  1514. all-readline:
  1515. all-recode: all-libiberty
  1516. all-sed: all-libiberty
  1517. all-send-pr: all-prms
  1518. all-shellutils:
  1519. all-sim: all-libiberty all-bfd all-opcodes
  1520. all-sn: all-tcl all-tk all-itcl all-db all-grep
  1521. all-tar: all-libiberty
  1522. all-tcl:
  1523. all-tclX: all-tcl all-tk
  1524. all-tk: all-tcl
  1525. all-texinfo: all-libiberty
  1526. all-textutils:
  1527. all-tgas: all-libiberty all-bfd all-opcodes
  1528. all-time:
  1529. all-tix: all-tcl all-tk
  1530. all-wdiff:
  1531. all-target-winsup: all-target-newlib all-target-libiberty all-target-librx all-target-libio configure-target-winsup 
  1532. configure-target-winsup: configure-target-newlib
  1533. all-target-mingw: all-target-w32api all-target-windows32api configure-target-mingw 
  1534. all-target-w32api: configure-target-w32api 
  1535. all-target-windows32api: configure-target-windows32api 
  1536. all-uudecode: all-libiberty
  1537. configure-target-libiberty: $(ALL_GCC)
  1538. all-target-libiberty: configure-target-libiberty all-gcc all-ld all-target-newlib
  1539. all-target: $(ALL_TARGET_MODULES)
  1540. install-target: $(INSTALL_TARGET_MODULES)
  1541.  
  1542. ### other supporting targets
  1543.  
  1544. MAKEDIRS= \
  1545.     $(prefix) \
  1546.     $(exec_prefix)
  1547. .PHONY: installdirs
  1548. installdirs: mkinstalldirs
  1549.     $(SHELL) $(srcdir)/mkinstalldirs $(MAKEDIRS)
  1550.  
  1551. dir.info: do-install-info
  1552.     if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
  1553.       $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
  1554.       mv -f dir.info.new dir.info ; \
  1555.     else true ; \
  1556.     fi
  1557.  
  1558. dist:
  1559.     @echo "Building a full distribution of this tree isn't done"
  1560.     @echo "via 'make dist'.  Check out the etc/ subdirectory" 
  1561.  
  1562. etags tags: TAGS
  1563.  
  1564. # Right now this just builds TAGS in each subdirectory.  emacs19 has the
  1565. # ability to use several tags files at once, so there is probably no need
  1566. # to combine them into one big TAGS file (like CVS 1.3 does).  We could
  1567. # (if we felt like it) have this Makefile write a piece of elisp which
  1568. # the user could load to tell emacs19 where all the TAGS files we just
  1569. # built are.
  1570. TAGS: do-TAGS
  1571.  
  1572. # with the gnu make, this is done automatically.
  1573.  
  1574. Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger)
  1575.     $(SHELL) ./config.status
  1576.  
  1577. #
  1578. # Support for building net releases
  1579.  
  1580. # Files in devo used in any net release.
  1581. # ChangeLog omitted because it may refer to files which are not in this
  1582. # distribution (perhaps it would be better to include it anyway).
  1583. DEVO_SUPPORT= README Makefile.in configure configure.in \
  1584.     config.guess config.sub config move-if-change \
  1585.     mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \
  1586.     COPYING COPYING.LIB install-sh config-ml.in symlink-tree \
  1587.     mkinstalldirs ltconfig ltmain.sh missing ylwrap
  1588.  
  1589. # Files in devo/etc used in any net release.
  1590. # ChangeLog omitted because it may refer to files which are not in this
  1591. # distribution (perhaps it would be better to include it anyway).
  1592. ETC_SUPPORT= Makefile.in configure configure.in standards.texi \
  1593.     make-stds.texi standards.info*
  1594.  
  1595. # When you use `make setup-dirs' or `make taz' you should always redefine
  1596. # this macro.
  1597. SUPPORT_FILES = list-of-support-files-for-tool-in-question
  1598.  
  1599. .PHONY: taz
  1600.  
  1601. taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) \
  1602.   texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
  1603.     # Take out texinfo from a few places; make simple BISON=bison line.
  1604.     sed -e '/^all\.normal: /s/\all-texinfo //' \
  1605.         -e '/^    install-texinfo /d' \
  1606.     <Makefile.in >tmp
  1607.     mv -f tmp Makefile.in
  1608.     #
  1609.     ./configure sun4
  1610.     [ -z "$(CONFIGURE_TARGET_MODULES)" ] \
  1611.       || $(MAKE) $(CONFIGURE_TARGET_MODULES) ALL_GCC="" \
  1612.         CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)"
  1613.     # Make links, and run "make diststuff" or "make info" when needed.
  1614.     rm -rf proto-toplev ; mkdir proto-toplev
  1615.     set -e ; dirs="$(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES)" ; \
  1616.     for d in $$dirs ; do \
  1617.       if [ -d $$d ]; then \
  1618.         if [ ! -f $$d/Makefile ] ; then true ; \
  1619.         elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \
  1620.         (cd $$d ; $(MAKE) diststuff ) || exit 1 ; \
  1621.         elif grep '^info:' $$d/Makefile >/dev/null ; then \
  1622.             (cd $$d ; $(MAKE) info ) || exit 1 ; \
  1623.         fi ; \
  1624.         if [ -d $$d/proto-$$d.dir ]; then \
  1625.           ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \
  1626.         else \
  1627.           ln -s ../$$d proto-toplev/$$d ; \
  1628.         fi ; \
  1629.       else ln -s ../$$d proto-toplev/$$d ; fi ; \
  1630.     done
  1631.     cd etc ; $(MAKE) info
  1632.     $(MAKE) distclean
  1633.     #
  1634.     mkdir proto-toplev/etc
  1635.     (cd proto-toplev/etc; \
  1636.      for i in $(ETC_SUPPORT); do \
  1637.         ln -s ../../etc/$$i . ; \
  1638.      done)
  1639.     #
  1640.     # Take out texinfo from configurable dirs
  1641.     rm proto-toplev/configure.in
  1642.     sed -e '/^host_tools=/s/texinfo //' \
  1643.         <configure.in >proto-toplev/configure.in
  1644.     #
  1645.     mkdir proto-toplev/texinfo
  1646.     ln -s ../../texinfo/texinfo.tex        proto-toplev/texinfo/
  1647.     ln -s ../../texinfo/gpl.texinfo        proto-toplev/texinfo/
  1648.     ln -s ../../texinfo/lgpl.texinfo    proto-toplev/texinfo/
  1649.     if test -r texinfo/util/tex3patch ; then \
  1650.       mkdir proto-toplev/texinfo/util && \
  1651.       ln -s ../../../texinfo/util/tex3patch    proto-toplev/texinfo/util ; \
  1652.     else true; fi
  1653.     chmod og=u `find . -print`
  1654.     if grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
  1655.       ver=`sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'`; \
  1656.     else \
  1657.       ver=`sed <$(TOOL)/Makefile.in -n 's/^VERSION *= *//p'`; \
  1658.     fi; \
  1659.     $(MAKE) -f Makefile.in do-tar-gz TOOL=$(TOOL) VER=$$ver
  1660.  
  1661. do-tar-gz:
  1662.     echo "==> Making $(TOOL)-$(VER).tar.gz"
  1663.     -rm -f $(TOOL)-$(VER)
  1664.     ln -s proto-toplev $(TOOL)-$(VER)
  1665.     tar cfh $(TOOL)-$(VER).tar $(TOOL)-$(VER)
  1666.     $(GZIPPROG) -v -9 $(TOOL)-$(VER).tar
  1667.  
  1668. TEXINFO_SUPPORT= texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
  1669. DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT)
  1670.  
  1671. .PHONY: gas.tar.gz
  1672. GAS_SUPPORT_DIRS= bfd include libiberty opcodes setup.com makefile.vms
  1673. gas.tar.gz: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
  1674.     $(MAKE) -f Makefile.in taz TOOL=gas \
  1675.         SUPPORT_FILES="$(GAS_SUPPORT_DIRS)"
  1676.  
  1677. # The FSF "binutils" release includes gprof and ld.
  1678. .PHONY: binutils.tar.gz
  1679. BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof setup.com makefile.vms
  1680. binutils.tar.gz: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
  1681.     $(MAKE) -f Makefile.in taz TOOL=binutils \
  1682.         SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS) makeall.bat configure.bat"
  1683.  
  1684. .PHONY: gas+binutils.tar.gz
  1685. GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof
  1686. gas+binutils.tar.gz: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
  1687.     $(MAKE) -f Makefile.in taz TOOL=gas \
  1688.         SUPPORT_FILES="$(GASB_SUPPORT_DIRS) makeall.bat configure.bat"
  1689.  
  1690. .PHONY: libg++.tar.gz
  1691. LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty
  1692. libg++.tar.gz: $(DIST_SUPPORT) libg++
  1693.     $(MAKE) -f Makefile.in taz TOOL=libg++ \
  1694.         SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"
  1695.  
  1696. GNATS_SUPPORT_DIRS=include libiberty send-pr
  1697. gnats.tar.gz: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats
  1698.     $(MAKE) -f  Makefile.in taz TOOL=gnats \
  1699.         SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)"
  1700.  
  1701. .PHONY: gdb.tar.gz
  1702. GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils
  1703. GDBTK_SUPPORT_DIRS= `if [ -d tcl -a -d tk ] ; then echo tcl tk ; fi`
  1704. gdb.tar.gz: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
  1705.     $(MAKE) -f Makefile.in taz TOOL=gdb \
  1706.         SUPPORT_FILES="$(GDB_SUPPORT_DIRS) $(GDBTK_SUPPORT_DIRS)"
  1707.  
  1708. .PHONY: newlib.tar.gz
  1709. NEWLIB_SUPPORT_DIRS=libgloss
  1710. # taz configures for the sun4 target which won't configure newlib.
  1711. # We need newlib configured so that the .info files are made.
  1712. # Unfortunately, it is not enough to just configure newlib separately:
  1713. # taz will build the .info files but since SUBDIRS won't contain newlib,
  1714. # distclean won't be run (leaving Makefile, config.status, and the tmp files
  1715. # used in building the .info files, eg: *.def, *.ref).
  1716. # The problem isn't solvable however without a lot of extra work because
  1717. # target libraries are built in subdir $(target_alias) which gets nuked during
  1718. # the make distclean.  For now punt on the issue of shipping newlib info files
  1719. # with newlib net releases and wait for a day when some native target (sun4?)
  1720. # supports newlib (if only minimally).
  1721. newlib.tar.gz: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
  1722.     $(MAKE) -f Makefile.in taz TOOL=newlib \
  1723.         SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \
  1724.         DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib
  1725.  
  1726. .NOEXPORT:
  1727. MAKEOVERRIDES=
  1728.  
  1729.  
  1730. # end of Makefile.in
  1731.