home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / libg++-2.7.1-src.tgz / tar.out / fsf / libg++ / Makefile.in < prev    next >
Makefile  |  1996-09-28  |  37KB  |  1,262 lines

  1. #
  2. # Makefile for directory with subdirs to build.
  3. #   Copyright (C) 1990, 1991, 1992, 1993 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 = /ade
  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)/lib
  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. docdir = $(datadir)/doc
  43. GDB_NLM_DEPS = 
  44.  
  45. SHELL = /bin/sh
  46.  
  47. INSTALL = $${srcroot}/install.sh -c
  48. INSTALL_PROGRAM = $(INSTALL)
  49. INSTALL_DATA = $(INSTALL) -m 644
  50. INSTALL_XFORM = $(INSTALL) -t='$(program_transform_name)'
  51.  
  52. INSTALL_DOSREL = install-dosrel-fake
  53.  
  54. AS = as
  55. AR = ar
  56. AR_FLAGS = rc
  57. CC = gcc
  58.  
  59. # Special variables passed down in EXTRA_GCC_FLAGS.  They are defined
  60. # here so that they can be overridden by Makefile fragments.
  61. HOST_CC = $(CC_FOR_BUILD)
  62. HOST_PREFIX = 
  63. HOST_PREFIX_1 = loser-
  64.  
  65. # We don't specify -g -O because many compilers don't support -g -O,
  66. # and/or -O is broken in and of itself.
  67. # Amiga hack - suppress use of -g which isn't really supported yet.
  68. CFLAGS = -O2
  69. LIBCFLAGS = $(CFLAGS)
  70. CFLAGS_FOR_TARGET = $(CFLAGS)
  71. LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
  72. PICFLAG = -resident
  73. PICFLAG_FOR_TARGET = -resident
  74.  
  75. CXX = gcc
  76.  
  77. # Use -O2 to stress test the compiler.
  78. # Amiga hack - suppress use of -g which isn't really supported yet.
  79. CXXFLAGS = -O2
  80. LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
  81. CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
  82. LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
  83.  
  84. RANLIB = ranlib
  85. NM = nm
  86. # Not plain GZIP, since gzip looks there for extra command-line options.
  87. GZIPPROG = gzip
  88.  
  89. BISON = bison -y
  90. LEX = `if [ -f $$r/flex/flex ] ; \
  91.     then echo $$r/flex/flex ; \
  92.     else echo flex ; fi`
  93.  
  94. M4 = `if [ -f $$r/m4/m4 ] ; \
  95.     then echo $$r/m4/m4 ; \
  96.     else echo m4 ; fi`
  97.  
  98. MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \
  99.     then echo $$r/texinfo/makeinfo/makeinfo ; \
  100.     else echo makeinfo ; fi`
  101.  
  102. # This just becomes part of the MAKEINFO definition passed down to
  103. # sub-makes.  It lets flags be given on the command line while still
  104. # using the makeinfo from the object tree.
  105. MAKEINFOFLAGS =
  106.  
  107. EXPECT = `if [ -f $$r/expect/expect ] ; \
  108.     then echo $$r/expect/expect ; \
  109.     else echo expect ; fi`
  110.  
  111. RUNTEST = `if [ -f $${srcroot}/dejagnu/runtest ] ; \
  112.     then echo $${srcroot}/dejagnu/runtest ; \
  113.     else echo runtest ; fi`
  114.  
  115.  
  116. # compilers to use to create programs which must be run in the build
  117. # environment.
  118. CC_FOR_BUILD = $(CC)
  119. CXX_FOR_BUILD = $(CXX)
  120.  
  121. SUBDIRS = "this is set via configure, don't edit this"
  122. OTHERS = 
  123.  
  124. # This is set by the configure script to the list of directories which
  125. # should be built using the target tools.
  126. TARGET_CONFIGDIRS = libiberty libgloss newlib libio librx libstdc++ libg++ winsup
  127.  
  128. # Target libraries are put under this directory:
  129. TARGET_SUBDIR = . # Changed by configure to $(target_alias) if cross.
  130.  
  131. # This is set by the configure script to the arguments passed to configure.
  132. CONFIG_ARGUMENTS = 
  133.  
  134. ALL = all.normal
  135. INSTALL_TARGET = install-dirs \
  136.     $(INSTALL_MODULES) \
  137.     $(INSTALL_TARGET_MODULES) \
  138.     $(INSTALL_X11_MODULES) \
  139.     install-gcc \
  140.     $(INSTALL_DOSREL)
  141.  
  142.  
  143. CC_FOR_TARGET = ` \
  144.   if [ -f $$r/gcc/Makefile ] ; then \
  145.     if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
  146.       echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
  147.     else \
  148.       echo $$r/gcc/xgcc -B$$r/gcc/; \
  149.     fi; \
  150.   else \
  151.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  152.       echo $(CC); \
  153.     else \
  154.       t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
  155.     fi; \
  156.   fi`
  157.  
  158.  
  159. CXX_FOR_TARGET = ` \
  160.   if [ -f $$r/gcc/Makefile ] ; then \
  161.     if [ -f $$r/$(TARGET_SUBDIR)/newlib/Makefile ] ; then \
  162.       echo $$r/gcc/xgcc -B$$r/gcc/ -idirafter $$r/$(TARGET_SUBDIR)/newlib/targ-include -idirafter $${srcroot}/newlib/libc/include -nostdinc; \
  163.     else \
  164.       echo $$r/gcc/xgcc -B$$r/gcc/; \
  165.     fi; \
  166.   else \
  167.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  168.       echo $(CXX); \
  169.     else \
  170.       t='$(program_transform_name)'; echo gcc | sed -e 's/x/x/' $$t; \
  171.     fi; \
  172.   fi`
  173.  
  174. AS_FOR_TARGET = ` \
  175.   if [ -f $$r/gas/as.new ] ; then \
  176.     echo $$r/gas/as.new ; \
  177.   else \
  178.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  179.       echo $(AS); \
  180.     else \
  181.        t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
  182.     fi; \
  183.   fi`
  184.  
  185. LD_FOR_TARGET = ` \
  186.   if [ -f $$r/ld/ld.new ] ; then \
  187.     echo $$r/ld/ld.new ; \
  188.   else \
  189.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  190.       echo $(LD); \
  191.     else \
  192.        t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
  193.     fi; \
  194.   fi`
  195.  
  196. DLLTOOL_FOR_TARGET = ` \
  197.   if [ -f $$r/binutils/dlltool ] ; then \
  198.     echo $$r/binutils/dlltool ; \
  199.   else \
  200.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  201.       echo $(DLLTOOL); \
  202.     else \
  203.        t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
  204.     fi; \
  205.   fi`
  206.  
  207. AR_FOR_TARGET = ` \
  208.   if [ -f $$r/binutils/ar ] ; then \
  209.     echo $$r/binutils/ar ; \
  210.   else \
  211.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  212.       echo $(AR); \
  213.     else \
  214.        t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
  215.     fi; \
  216.   fi`
  217.  
  218. RANLIB_FOR_TARGET = ` \
  219.   if [ -f $$r/binutils/ranlib ] ; then \
  220.     echo $$r/binutils/ranlib ; \
  221.   else \
  222.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  223.       echo $(RANLIB); \
  224.     else \
  225.        t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
  226.     fi; \
  227.   fi`
  228.  
  229. NM_FOR_TARGET = ` \
  230.   if [ -f $$r/binutils/nm.new ] ; then \
  231.     echo $$r/binutils/nm.new ; \
  232.   else \
  233.     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  234.       echo $(NM); \
  235.     else \
  236.        t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
  237.     fi; \
  238.   fi`
  239.  
  240. #### host and target specific makefile fragments come in here.
  241. ###
  242.  
  243. # Flags to pass down to all sub-makes.
  244. # Please keep these in alphabetical order.
  245. BASE_FLAGS_TO_PASS = \
  246.     "AR_FLAGS=$(AR_FLAGS)" \
  247.     "AR_FOR_TARGET=$(AR_FOR_TARGET)" \
  248.     "AS_FOR_TARGET=$(AS_FOR_TARGET)" \
  249.     "BISON=$(BISON)" \
  250.     "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
  251.     "CC_FOR_TARGET=$(CC_FOR_TARGET)" \
  252.     "CFLAGS=$(CFLAGS)" \
  253.     "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
  254.     "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
  255.     "CXXFLAGS=$(CXXFLAGS)" \
  256.     "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
  257.     "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \
  258.     "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
  259.     "GCC_FOR_TARGET=$(CC_FOR_TARGET)" \
  260.     "INSTALL=$(INSTALL)" \
  261.     "INSTALL_DATA=$(INSTALL_DATA)" \
  262.     "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
  263.     "INSTALL_XFORM=$(INSTALL_XFORM)" \
  264.     "LDFLAGS=$(LDFLAGS)" \
  265.     "LEX=$(LEX)" \
  266.     "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
  267.     "LIBCFLAGS=$(LIBCFLAGS)" \
  268.     "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
  269.     "LIBCXXFLAGS=$(LIBCXXFLAGS)" \
  270.     "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \
  271.     "M4=$(M4)" \
  272.     "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
  273.     "NM_FOR_TARGET=$(NM_FOR_TARGET)" \
  274.     "PICFLAG=$(PICFLAG)" \
  275.     "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
  276.     "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \
  277.     "SHELL=$(SHELL)" \
  278.     "EXPECT=$(EXPECT)" \
  279.     "RUNTEST=$(RUNTEST)" \
  280.     "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
  281.     "YACC=$(BISON)" \
  282.     "exec_prefix=$(exec_prefix)" \
  283.     "prefix=$(prefix)" \
  284.     "tooldir=$(tooldir)" 
  285.  
  286. # Flags to pass down to most sub-makes, in which we're building with
  287. # the host environment.
  288. # If any variables are added here, they must be added to do-*, below.
  289. EXTRA_HOST_FLAGS = \
  290.     'AR=$(AR)' \
  291.     'AS=$(AS)' \
  292.     'CC=$(CC)' \
  293.     'CXX=$(CXX)' \
  294.     'NM=$(NM)' \
  295.     'RANLIB=$(RANLIB)'
  296.  
  297. FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
  298.  
  299. # Flags that are concerned with the location of the X11 include files
  300. # and library files
  301. #
  302. # NOTE: until the top-level is getting the values via autoconf, it only
  303. # causes problems to have this top-level Makefile overriding the autoconf-set
  304. # values in child directories.  Only variables that don't conflict with
  305. # autoconf'ed ones should be passed by X11_FLAGS_TO_PASS for now.
  306. #
  307. X11_FLAGS_TO_PASS = \
  308.     'X11_EXTRA_CFLAGS=$(X11_EXTRA_CFLAGS)' \
  309.     'X11_EXTRA_LIBS=$(X11_EXTRA_LIBS)'
  310.  
  311. # Flags to pass down to makes which are built with the target environment.
  312. # The double $ decreases the length of the command line; the variables
  313. # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them.
  314. # If any variables are added here, they must be added to do-*, below.
  315. EXTRA_TARGET_FLAGS = \
  316.     'AR=$$(AR_FOR_TARGET)' \
  317.     'AS=$$(AS_FOR_TARGET)' \
  318.     'CC=$$(CC_FOR_TARGET)' \
  319.     'CFLAGS=$$(CFLAGS_FOR_TARGET)' \
  320.     'CXX=$$(CXX_FOR_TARGET)' \
  321.     'CXXFLAGS=$$(CXXFLAGS_FOR_TARGET)' \
  322.     'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \
  323.     'LD=$$(LD_FOR_TARGET)' \
  324.     'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \
  325.     'LIBCXXFLAGS=$$(LIBCXXFLAGS_FOR_TARGET)' \
  326.     'NM=$$(NM_FOR_TARGET)' \
  327.     'PICFLAG=$$(PICFLAG_FOR_TARGET)' \
  328.     'RANLIB=$$(RANLIB_FOR_TARGET)'
  329.  
  330. TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)
  331.  
  332. # Flags to pass down to gcc.  gcc builds a library, libgcc.a, so it
  333. # unfortunately needs the native compiler and the target ar and
  334. # ranlib.
  335. # If any variables are added here, they must be added to do-*, below.
  336. # The HOST_* variables are a special case, which are used for the gcc
  337. # cross-building scheme.
  338. EXTRA_GCC_FLAGS = \
  339.     'AR=$$(AR_FOR_TARGET)' \
  340.     'AS=$(AS)' \
  341.     'CC=$(CC)' \
  342.     'CXX=$(CXX)' \
  343.     'HOST_CC=$(CC_FOR_BUILD)' \
  344.     'HOST_PREFIX=$(HOST_PREFIX)' \
  345.     'HOST_PREFIX_1=$(HOST_PREFIX_1)' \
  346.     'NM=$(NM)' \
  347.     'RANLIB=$$(RANLIB_FOR_TARGET)'
  348.  
  349. GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
  350.  
  351. # This is a list of the targets for all of the modules which are compiled
  352. # using $(FLAGS_TO_PASS).
  353. ALL_MODULES = \
  354.     all-autoconf \
  355.     all-bfd \
  356.     all-binutils \
  357.     all-byacc \
  358.     all-cvs \
  359.     all-dejagnu \
  360.     all-diff \
  361.     all-dosutils \
  362.     all-etc \
  363.     all-fileutils \
  364.     all-find \
  365.     all-flex \
  366.     all-gas \
  367.     all-gawk \
  368.     all-gprof \
  369.     all-grep \
  370.     all-gzip \
  371.     all-hello \
  372.     all-indent \
  373.     all-ispell \
  374.     all-ld \
  375.     all-libiberty \
  376.     all-m4 \
  377.     all-make \
  378.     all-mmalloc \
  379.     all-opcodes \
  380.     all-patch \
  381.     all-prms \
  382.     all-rcs \
  383.     all-readline \
  384.     all-release \
  385.     all-recode \
  386.     all-sed \
  387.     all-send-pr \
  388.     all-shellutils \
  389.     all-sim \
  390.     all-tar \
  391.     all-tcl \
  392.     all-texinfo \
  393.     all-textutils \
  394.     all-tgas \
  395.     all-time \
  396.     all-uudecode \
  397.     all-wdiff 
  398.  
  399. # This is a list of the check targets for all of the modules which are
  400. # compiled using $(FLAGS_TO_PASS).
  401. # This is a list of the check targets for all of the modules which are
  402. # compiled using $(FLAGS_TO_PASS).
  403. #
  404. # The list is in two parts.  The first lists those tools which
  405. # are tested as part of the host's native tool-chain, and not
  406. # tested in a cross configuration.
  407. NATIVE_CHECK_MODULES = \
  408.     check-byacc \
  409.     check-flex
  410.  
  411. CROSS_CHECK_MODULES = \
  412.     check-autoconf \
  413.     check-bfd \
  414.     check-binutils \
  415.     check-cvs \
  416.     check-dejagnu \
  417.     check-diff \
  418.     check-etc \
  419.     check-fileutils \
  420.     check-find \
  421.     check-gas \
  422.     check-gawk \
  423.     check-gprof \
  424.     check-grep \
  425.     check-gzip \
  426.     check-hello \
  427.     check-indent \
  428.     check-ispell \
  429.     check-ld \
  430.     check-libiberty \
  431.     check-m4 \
  432.     check-make \
  433.     check-mmcheckoc \
  434.     check-opcodes \
  435.     check-patch \
  436.     check-prms \
  437.     check-rcs \
  438.     check-readline \
  439.     check-recode \
  440.     check-sed \
  441.     check-send-pr \
  442.     check-shellutils \
  443.     check-sim \
  444.     check-tar \
  445.     check-tcl \
  446.     check-texinfo \
  447.     check-textutils \
  448.     check-tgas \
  449.     check-time \
  450.     check-uudecode \
  451.     check-wdiff
  452.  
  453. CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
  454.  
  455. # This is a list of the install targets for all of the modules which are
  456. # compiled using $(FLAGS_TO_PASS).
  457. INSTALL_MODULES = \
  458.     install-autoconf \
  459.     install-bfd \
  460.     install-binutils \
  461.     install-byacc \
  462.     install-cvs \
  463.     install-dejagnu \
  464.     install-diff \
  465.     install-dosutils \
  466.     install-etc \
  467.     install-fileutils \
  468.     install-find \
  469.     install-flex \
  470.     install-gas \
  471.     install-gawk \
  472.     install-gprof \
  473.     install-grep \
  474.     install-gzip \
  475.     install-hello \
  476.     install-indent \
  477.     install-ispell \
  478.     install-ld \
  479.     install-libiberty \
  480.     install-m4 \
  481.     install-make \
  482.     install-mmalloc \
  483.     install-opcodes \
  484.     install-patch \
  485.     install-prms \
  486.     install-rcs \
  487.     install-readline \
  488.     install-recode \
  489.     install-sed \
  490.     install-send-pr \
  491.     install-shellutils \
  492.     install-sim \
  493.     install-tar \
  494.     install-tcl \
  495.     install-textutils \
  496.     install-tgas \
  497.     install-time \
  498.     install-uudecode \
  499.     install-wdiff
  500.  
  501. # This is a list of the targets for all of the modules which are compiled
  502. # using $(X11_FLAGS_TO_PASS).
  503. ALL_X11_MODULES = \
  504.     all-emacs \
  505.     all-emacs19 \
  506.     all-gdb \
  507.     all-expect \
  508.     all-gash \
  509.     all-tclX \
  510.     all-tk
  511.  
  512. # This is a list of the check targets for all of the modules which are
  513. # compiled using $(X11_FLAGS_TO_PASS).
  514. CHECK_X11_MODULES = \
  515.     check-emacs \
  516.     check-gdb \
  517.     check-expect \
  518.     check-gash \
  519.     check-tclX \
  520.     check-tk
  521.  
  522. # This is a list of the install targets for all the modules which are
  523. # compiled using $(X11_FLAGS_TO_PASS).
  524. INSTALL_X11_MODULES = \
  525.     install-emacs \
  526.     install-emacs19 \
  527.     install-gdb \
  528.     install-expect \
  529.     install-gash \
  530.     install-tclX \
  531.     install-tk
  532.  
  533. # This is a list of the targets for all of the modules which are compiled
  534. # using $(TARGET_FLAGS_TO_PASS).
  535. ALL_TARGET_MODULES = \
  536.     all-target-libio \
  537.     all-target-libstdc++ \
  538.     all-target-librx \
  539.     all-target-libg++ \
  540.     all-target-newlib \
  541.     all-target-winsup \
  542.     all-target-libgloss \
  543.     all-target-libiberty
  544.  
  545. # This is a list of the configure targets for all of the modules which
  546. # are compiled using the target tools.
  547. CONFIGURE_TARGET_MODULES = \
  548.     configure-target-libio \
  549.     configure-target-libstdc++ \
  550.     configure-target-librx \
  551.     configure-target-libg++ \
  552.     configure-target-newlib \
  553.     configure-target-winsup \
  554.     configure-target-libgloss \
  555.     configure-target-libiberty
  556.  
  557. # This is a list of the check targets for all of the modules which are
  558. # compiled using $(TARGET_FLAGS_TO_PASS).
  559. CHECK_TARGET_MODULES = \
  560.     check-target-libio \
  561.     check-target-libstdc++ \
  562.     check-target-libg++ \
  563.     check-target-newlib \
  564.     check-target-winsup \
  565.     check-target-libiberty
  566.  
  567. # This is a list of the install targets for all of the modules which are
  568. # compiled using $(TARGET_FLAGS_TO_PASS).
  569. INSTALL_TARGET_MODULES = \
  570.     install-target-libio \
  571.     install-target-libstdc++ \
  572.     install-target-libg++ \
  573.     install-target-newlib \
  574.     install-target-winsup \
  575.     install-target-libgloss \
  576.     install-target-libiberty
  577.  
  578. # The first rule in the file had better be this one.  Don't put any above it.
  579. all: all.normal
  580. .PHONY: all
  581.  
  582. # The target built for a native build.
  583. .PHONY: all.normal
  584. all.normal: \
  585.     $(ALL_MODULES) \
  586.     $(ALL_TARGET_MODULES) \
  587.     $(ALL_X11_MODULES) \
  588.     all-gcc
  589.  
  590. # Do a target for all the subdirectories.  A ``make do-X'' will do a
  591. # ``make X'' in all subdirectories (because, in general, there is a
  592. # dependency (below) of X upon do-X, a ``make X'' will also do this,
  593. # but it may do additional work as well).
  594. # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once,
  595. # because it is so large that it can easily overflow the command line
  596. # length limit on some systems.
  597. DO_X = \
  598.     do-clean \
  599.     do-distclean \
  600.     do-dvi \
  601.     do-info \
  602.     do-install-info \
  603.     do-installcheck \
  604.     do-mostlyclean \
  605.     do-maintainer-clean \
  606.     do-TAGS
  607. .PHONY: $(DO_X)
  608. $(DO_X):
  609.     @target=`echo $@ | sed -e 's/^do-//'`; \
  610.     r=`pwd`; export r; \
  611.     srcroot=`cd $(srcdir); pwd`; export srcroot; \
  612.     for i in $(SUBDIRS) -dummy-; do \
  613.       if [ -f ./$$i/Makefile ]; then \
  614.         case $$i in \
  615.         gcc) \
  616.           for flag in $(EXTRA_GCC_FLAGS); do \
  617.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  618.           done; \
  619.           ;; \
  620.         *) \
  621.           for flag in $(EXTRA_HOST_FLAGS); do \
  622.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  623.           done; \
  624.           ;; \
  625.         esac ; \
  626.         export AR AS CC CXX NM RANLIB; \
  627.         if (cd ./$$i; \
  628.             $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  629.             "CC=$${CC}" "CXX=$${CXX}" "NM=$${NM}" \
  630.             "RANLIB=$${RANLIB}" \
  631.             $${target}); \
  632.         then true; else exit 1; fi; \
  633.       else true; fi; \
  634.     done
  635.     @target=`echo $@ | sed -e 's/^do-//'`; \
  636.     r=`pwd`; export r; \
  637.     srcroot=`cd $(srcdir); pwd`; export srcroot; \
  638.     for i in $(TARGET_CONFIGDIRS) -dummy-; do \
  639.       if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
  640.         for flag in $(EXTRA_TARGET_FLAGS); do \
  641.         eval `echo "$$flag" | sed -e "s|^\(.*\)=\(.*\)|\1='\2'|"`; \
  642.         done; \
  643.         export AR AS CC CXX NM RANLIB; \
  644.         if (cd $(TARGET_SUBDIR)/$$i; \
  645.             $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
  646.             "CC=$${CC}" "CXX=$${CXX}" "NM=$${NM}" \
  647.             "RANLIB=$${RANLIB}" \
  648.             $${target}); \
  649.         then true; else exit 1; fi; \
  650.       else true; fi; \
  651.     done
  652.  
  653. # Here are the targets which correspond to the do-X targets.
  654.  
  655. .PHONY: info installcheck dvi install-info
  656. .PHONY: clean distclean mostlyclean maintainer-clean realclean
  657. .PHONY: local-clean local-distclean local-maintainer-clean
  658. info: do-info
  659. installcheck: do-installcheck
  660. dvi: do-dvi
  661.  
  662. install-info: do-install-info dir.info
  663.     srcroot=`cd $(srcdir); pwd`; export srcroot; \
  664.     if [ -f dir.info ] ; then \
  665.       $(INSTALL_DATA) dir.info $(infodir)/dir.info ; \
  666.     else true ; fi
  667.  
  668. local-clean:
  669.     -rm -f *.a TEMP errs core *.o *~ \#* TAGS *.E
  670.  
  671. local-distclean:
  672.     -rm -f Makefile config.status
  673.  
  674. local-maintainer-clean:
  675.     @echo "This command is intended for maintainers to use;"
  676.     @echo "it deletes files that may require special tools to rebuild."
  677.  
  678. clean: do-clean local-clean
  679. mostlyclean: do-mostlyclean local-clean
  680. distclean: do-distclean local-clean local-distclean
  681. maintainer-clean: local-maintainer-clean do-maintainer-clean local-clean 
  682. maintainer-clean: local-distclean
  683. realclean: maintainer-clean
  684.  
  685. # Check target.
  686.  
  687. .PHONY: check
  688. check: $(CHECK_MODULES) \
  689.     $(CHECK_TARGET_MODULES) \
  690.     $(CHECK_X11_MODULES) \
  691.     check-gcc
  692.  
  693. # Installation targets.
  694.  
  695. .PHONY: install uninstall source-vault binary-vault vault-install
  696. install: $(INSTALL_TARGET) 
  697.  
  698. uninstall:
  699.     @echo "the uninstall target is not supported in this tree"
  700.  
  701. source-vault:
  702.     $(MAKE) -f ./release/Build-A-Release \
  703.         host=$(host_alias) source-vault
  704.  
  705. binary-vault:
  706.     $(MAKE) -f ./release/Build-A-Release \
  707.         host=$(host_alias) target=$(target_alias)
  708.  
  709. vault-install:
  710.     @if [ -f ./release/vault-install ] ; then \
  711.       ./release/vault-install $(host_alias) $(target_alias) ; \
  712.     else \
  713.       true ; \
  714.     fi
  715.  
  716. .PHONY: install.all
  717. install.all: install-no-fixedincludes
  718.     @if [ -f ./gcc/Makefile ] ; then \
  719.         r=`pwd` ; export r ; \
  720.         (cd ./gcc; \
  721.         $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \
  722.     else \
  723.         true ; \
  724.     fi
  725.  
  726. # install-no-fixedincludes is used because Cygnus can not distribute
  727. # the fixed header files.
  728. .PHONY: install-no-fixedincludes
  729. install-no-fixedincludes: \
  730.     install-dirs \
  731.     $(INSTALL_MODULES) \
  732.     $(INSTALL_TARGET_MODULES) \
  733.     $(INSTALL_X11_MODULES) \
  734.     gcc-no-fixedincludes 
  735.  
  736. # Install the gcc headers files, but not the fixed include files,
  737. # which Cygnus is not allowed to distribute.  This rule is very
  738. # dependent on the workings of the gcc Makefile.in.
  739. .PHONY: gcc-no-fixedincludes
  740. gcc-no-fixedincludes:
  741.     @if [ -f ./gcc/Makefile ]; then \
  742.       rm -rf gcc/tmp-include; \
  743.       mv gcc/include gcc/tmp-include 2>/dev/null; \
  744.       mkdir gcc/include; \
  745.       cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \
  746.       touch gcc/stmp-fixinc gcc/include/fixed; \
  747.       rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \
  748.       r=`pwd`; export r; \
  749.       srcroot=`cd $(srcdir); pwd` ; export srcroot; \
  750.       (cd ./gcc; \
  751.        $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  752.       rm -rf gcc/include; \
  753.       mv gcc/tmp-include gcc/include 2>/dev/null; \
  754.     else true; fi
  755.  
  756. # This rule is used to build the modules which use FLAGS_TO_PASS.  To
  757. # build a target all-X means to cd to X and make all.
  758. #
  759. # all-gui, and all-libproc are handled specially because
  760. # they are still experimental, and if they fail to build, that
  761. # shouldn't stop "make all".
  762. .PHONY: $(ALL_MODULES) all-gui all-libproc
  763. $(ALL_MODULES) all-gui all-libproc:
  764.     @dir=`echo $@ | sed -e 's/all-//'`; \
  765.     if [ -f ./$${dir}/Makefile ] ; then \
  766.       r=`pwd`; export r; \
  767.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  768.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \
  769.     else \
  770.       true; \
  771.     fi
  772.  
  773. # These rules are used to check the modules which use FLAGS_TO_PASS.
  774. # To build a target check-X means to cd to X and make check.  Some
  775. # modules are only tested in a native toolchain.
  776.  
  777. .PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
  778. $(NATIVE_CHECK_MODULES):
  779.     @if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
  780.       dir=`echo $@ | sed -e 's/check-//'`; \
  781.       if [ -f ./$${dir}/Makefile ] ; then \
  782.         r=`pwd`; export r; \
  783.         srcroot=`cd $(srcdir); pwd`; export srcroot; \
  784.         (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
  785.       else \
  786.         true; \
  787.       fi; \
  788.     fi
  789.  
  790. $(CROSS_CHECK_MODULES):
  791.     @dir=`echo $@ | sed -e 's/check-//'`; \
  792.     if [ -f ./$${dir}/Makefile ] ; then \
  793.       r=`pwd`; export r; \
  794.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  795.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \
  796.     else \
  797.       true; \
  798.     fi
  799.  
  800. # This rule is used to install the modules which use FLAGS_TO_PASS.
  801. # To build a target install-X means to cd to X and make install.
  802. .PHONY: $(INSTALL_MODULES)
  803. $(INSTALL_MODULES): install-dirs
  804.     @dir=`echo $@ | sed -e 's/install-//'`; \
  805.     if [ -f ./$${dir}/Makefile ] ; then \
  806.       r=`pwd`; export r; \
  807.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  808.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
  809.     else \
  810.       true; \
  811.     fi
  812.  
  813. # This rule is used to configure the modules which are built with the
  814. # target tools.
  815. .PHONY: $(CONFIGURE_TARGET_MODULES)
  816. $(CONFIGURE_TARGET_MODULES):
  817.     @dir=`echo $@ | sed -e 's/configure-target-//'`; \
  818.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  819.       true; \
  820.     elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
  821.       if [ -d $(srcdir)/$${dir} ]; then \
  822.         [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\
  823.         r=`pwd`; export r; \
  824.         srcroot=`cd $(srcdir); pwd`; export srcroot; \
  825.         AR="$(AR_FOR_TARGET)"; export AR; \
  826.         AS="$(AS_FOR_TARGET)"; export AS; \
  827.         CC="$(CC_FOR_TARGET)"; export CC; \
  828.         CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \
  829.         CXX="$(CXX_FOR_TARGET)"; export CXX; \
  830.         CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
  831.         LD="$(LD_FOR_TARGET)"; export LD; \
  832.         NM="$(NM_FOR_TARGET)"; export NM; \
  833.         RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \
  834.         echo Configuring in $(TARGET_SUBDIR)/$${dir}; \
  835.         cd $(TARGET_SUBDIR)/$${dir}; \
  836.         if [ -f $${srcroot}/$${dir}/configure ] ; then \
  837.           $${srcroot}/$${dir}/configure \
  838.         $(CONFIG_ARGUMENTS) --srcdir=$${srcroot}/$${dir}; \
  839.         else \
  840.           $${srcroot}/configure \
  841.         $(CONFIG_ARGUMENTS) --srcdir=$${srcroot}/$${dir}; \
  842.         fi; \
  843.       else \
  844.         true; \
  845.       fi; \
  846.     else \
  847.       true; \
  848.     fi
  849.  
  850. # This rule is used to build the modules which use TARGET_FLAGS_TO_PASS.
  851. # To build a target all-X means to cd to X and make all.
  852. .PHONY: $(ALL_TARGET_MODULES)
  853. $(ALL_TARGET_MODULES):
  854.     @dir=`echo $@ | sed -e 's/all-target-//'`; \
  855.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  856.       r=`pwd`; export r; \
  857.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  858.       (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
  859.     else \
  860.       true; \
  861.     fi
  862.  
  863. # This rule is used to check the modules which use TARGET_FLAGS_TO_PASS.
  864. # To build a target install-X means to cd to X and make install.
  865. .PHONY: $(CHECK_TARGET_MODULES)
  866. $(CHECK_TARGET_MODULES):
  867.     @dir=`echo $@ | sed -e 's/check-target-//'`; \
  868.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  869.       r=`pwd`; export r; \
  870.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  871.       (cd $(TARGET_SUBDIR)/$${dir};$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
  872.     else \
  873.       true; \
  874.     fi
  875.  
  876. # This rule is used to install the modules which use
  877. # TARGET_FLAGS_TO_PASS.  To build a target install-X means to cd to X
  878. # and make install.
  879. .PHONY: $(INSTALL_TARGET_MODULES)
  880. $(INSTALL_TARGET_MODULES): install-dirs
  881.     @dir=`echo $@ | sed -e 's/install-target-//'`; \
  882.     if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \
  883.       r=`pwd`; export r; \
  884.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  885.       (cd $(TARGET_SUBDIR)/$${dir}; \
  886.         $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \
  887.     else \
  888.       true; \
  889.     fi
  890.  
  891. # This rule is used to build the modules which use X11_FLAGS_TO_PASS.
  892. # To build a target all-X means to cd to X and make all.
  893. .PHONY: $(ALL_X11_MODULES)
  894. $(ALL_X11_MODULES):
  895.     @dir=`echo $@ | sed -e 's/all-//'`; \
  896.     if [ -f ./$${dir}/Makefile ] ; then \
  897.       r=`pwd`; export r; \
  898.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  899.       (cd $${dir}; \
  900.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \
  901.     else \
  902.       true; \
  903.     fi
  904.  
  905. # This rule is used to check the modules which use X11_FLAGS_TO_PASS.
  906. # To build a target check-X means to cd to X and make all.
  907. .PHONY: $(CHECK_X11_MODULES)
  908. $(CHECK_X11_MODULES):
  909.     @dir=`echo $@ | sed -e 's/check-//'`; \
  910.     if [ -f ./$${dir}/Makefile ] ; then \
  911.       r=`pwd`; export r; \
  912.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  913.       (cd $${dir}; \
  914.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \
  915.     else \
  916.       true; \
  917.     fi
  918.  
  919. # This rule is used to install the modules which use X11_FLAGS_TO_PASS.
  920. # To build a target install-X means to cd to X and make install.
  921. .PHONY: $(INSTALL_X11_MODULES)
  922. $(INSTALL_X11_MODULES):
  923.     @dir=`echo $@ | sed -e 's/install-//'`; \
  924.     if [ -f ./$${dir}/Makefile ] ; then \
  925.       r=`pwd`; export r; \
  926.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  927.       (cd $${dir}; \
  928.        $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \
  929.     else \
  930.       true; \
  931.     fi
  932.  
  933. # gcc is the only module which uses GCC_FLAGS_TO_PASS.
  934. .PHONY: all-gcc
  935. all-gcc:
  936.     @if [ -f ./gcc/Makefile ] ; then \
  937.       r=`pwd`; export r; \
  938.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  939.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) all); \
  940.     else \
  941.       true; \
  942.     fi
  943.  
  944. .PHONY: check-gcc
  945. check-gcc:
  946.     @if [ -f ./gcc/Makefile ] ; then \
  947.       r=`pwd`; export r; \
  948.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  949.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check); \
  950.     else \
  951.       true; \
  952.     fi
  953.  
  954. .PHONY: install-gcc
  955. install-gcc:
  956.     @if [ -f ./gcc/Makefile ] ; then \
  957.       r=`pwd`; export r; \
  958.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  959.       (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) install); \
  960.     else \
  961.       true; \
  962.     fi
  963.  
  964.  
  965. # EXPERIMENTAL STUFF
  966. # This rule is used to install the modules which use FLAGS_TO_PASS.
  967. # To build a target install-X means to cd to X and make install.
  968. .PHONY: install-dosrel
  969. install-dosrel: install-dirs info
  970.     @dir=`echo $@ | sed -e 's/install-//'`; \
  971.     if [ -f ./$${dir}/Makefile ] ; then \
  972.       r=`pwd`; export r; \
  973.       srcroot=`cd $(srcdir); pwd`; export srcroot; \
  974.       (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \
  975.     else \
  976.       true; \
  977.     fi
  978.  
  979. install-dosrel-fake:
  980.  
  981.  
  982. # This is a list of inter-dependencies among modules.
  983. all-autoconf: all-m4
  984. all-bfd:
  985. all-binutils: all-libiberty all-opcodes all-bfd all-flex all-byacc
  986. all-byacc:
  987. all-cvs:
  988. all-dejagnu: all-tcl all-expect all-tk
  989. all-diff: all-libiberty
  990. all-emacs:
  991. all-emacs19: all-byacc
  992. all-etc:
  993. all-expect: all-tcl all-tk
  994. all-fileutils: all-libiberty
  995. all-find:
  996. all-flex: all-libiberty all-byacc
  997. all-gas: all-libiberty all-opcodes all-bfd
  998. all-gash: all-tcl
  999. all-gawk:
  1000. ALL_GCC = all-gcc
  1001. all-gcc: all-libiberty all-byacc all-binutils all-gas all-ld
  1002. all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-byacc all-sim $(gdbnlmrequirements)
  1003. all-gprof: all-libiberty all-bfd
  1004. all-grep: all-libiberty
  1005. all-gui: all-gdb all-libproc all-target-librx
  1006. all-gzip: all-libiberty
  1007. all-hello: all-libiberty
  1008. all-indent:
  1009. all-ispell: all-emacs19
  1010. all-ld: all-libiberty all-bfd all-byacc all-flex
  1011. configure-target-libg++: $(ALL_GCC)
  1012. 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++
  1013. configure-target-libgloss: $(ALL_GCC)
  1014. all-target-libgloss: configure-target-libgloss
  1015. configure-target-libio: $(ALL_GCC)
  1016. all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
  1017. all-libiberty:
  1018. configure-target-librx: $(ALL_GCC) configure-target-newlib
  1019. all-target-librx: configure-target-librx
  1020. configure-target-libstdc++: $(ALL_GCC)
  1021. all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio
  1022. all-m4: all-libiberty
  1023. all-make: all-libiberty
  1024. all-mmalloc:
  1025. configure-target-newlib: $(ALL_GCC)
  1026. all-target-newlib: configure-target-newlib all-binutils all-gas all-gcc
  1027. all-opcodes: all-bfd
  1028. all-patch: all-libiberty
  1029. all-prms: all-libiberty
  1030. all-rcs:
  1031. all-readline:
  1032. all-recode: all-libiberty
  1033. all-sed: all-libiberty
  1034. all-send-pr: all-prms
  1035. all-shellutils:
  1036. all-sim: all-libiberty all-bfd
  1037. all-tar: all-libiberty
  1038. all-tcl:
  1039. all-tclX: all-tcl all-tk
  1040. all-tk: all-tcl
  1041. all-texinfo: all-libiberty
  1042. all-textutils:
  1043. all-tgas: all-libiberty all-bfd
  1044. all-time:
  1045. all-wdiff:
  1046. all-target-winsup: all-target-newlib  configure-target-winsup 
  1047. configure-target-winsup: configure-target-newlib
  1048. all-uudecode: all-libiberty
  1049. configure-target-libiberty: $(ALL_GCC)
  1050. all-target-libiberty: configure-target-libiberty all-gcc all-ld all-target-newlib
  1051.  
  1052. ### other supporting targets
  1053.  
  1054. MAKEDIRS= \
  1055.     $(prefix) \
  1056.     $(exec_prefix) \
  1057.     $(tooldir)
  1058.  
  1059. .PHONY: install-dirs
  1060. install-dirs:
  1061.     @for i in $(MAKEDIRS) ; do \
  1062.         echo Making $$i... ; \
  1063.         parent=`echo $$i | sed -e 's@/[^/]*$$@@' | sed -e 's@^$$@/@'`; \
  1064.         if [ -d $$parent ] ; then true ; else mkdir $$parent ; fi ; \
  1065.         if [ ! -d $$i ] ; then \
  1066.             if mkdir $$i ; then \
  1067.                 true ; \
  1068.             else \
  1069.                 exit 1 ; \
  1070.             fi ; \
  1071.         else \
  1072.             true ; \
  1073.         fi ; \
  1074.     done
  1075.  
  1076.  
  1077. dir.info: do-install-info
  1078.     if [ -f $(srcdir)/texinfo/gen-info-dir ] ; then \
  1079.       $(srcdir)/texinfo/gen-info-dir $(infodir) $(srcdir)/texinfo/dir.info-template > dir.info.new ; \
  1080.       mv -f dir.info.new dir.info ; \
  1081.     else true ; \
  1082.     fi
  1083.  
  1084. dist:
  1085.     @echo "Building a full distribution of this tree isn't done"
  1086.     @echo "via 'make dist'.  Check out the etc/ subdirectory" 
  1087.  
  1088. etags tags: TAGS
  1089.  
  1090. # Right now this just builds TAGS in each subdirectory.  emacs19 has the
  1091. # ability to use several tags files at once, so there is probably no need
  1092. # to combine them into one big TAGS file (like CVS 1.3 does).  We could
  1093. # (if we felt like it) have this Makefile write a piece of elisp which
  1094. # the user could load to tell emacs19 where all the TAGS files we just
  1095. # built are.
  1096. TAGS: do-TAGS
  1097.  
  1098. # with the gnu make, this is done automatically.
  1099.  
  1100. Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag)
  1101.     $(SHELL) ./config.status
  1102.  
  1103. #
  1104. # Support for building net releases
  1105.  
  1106. # Files in devo used in any net release.
  1107. # ChangeLog omitted because it may refer to files which are not in this
  1108. # distribution (perhaps it would be better to include it anyway).
  1109. DEVO_SUPPORT= README Makefile.in configure configure.in \
  1110.     config.guess config.sub config move-if-change \
  1111.     mpw-README mpw-build.in mpw-config.in mpw-configure \
  1112.     COPYING COPYING.LIB install.sh cfg-ml-com.in cfg-ml-pos.in
  1113.  
  1114. # Files in devo/etc used in any net release.
  1115. # ChangeLog omitted because it may refer to files which are not in this
  1116. # distribution (perhaps it would be better to include it anyway).
  1117. ETC_SUPPORT= Makefile.in cfg-paper.texi configure.in configure.man \
  1118.     configure.texi standards.texi make-stds.texi \
  1119.     configure.info* standards.info* cfg-paper.info*
  1120.  
  1121. # When you use `make setup-dirs' or `make taz' you should always redefine
  1122. # this macro.
  1123. SUPPORT_FILES = list-of-support-files-for-tool-in-question
  1124. # Files where "byacc" (Cygnus version) should be changed to "bison -y" (FSF).
  1125. DISTBISONFILES= binutils/Makefile.in gas/Makefile.in gdb/Makefile.in
  1126.  
  1127. .PHONY: taz
  1128.  
  1129. taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) \
  1130.   texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
  1131.     # Make sure "diststuff" files get built properly.
  1132.     for f in $(DISTBISONFILES) ; do \
  1133.       if [ -r $$f ]; then \
  1134.         sed '/^BISON *=.*$$/s/.*/BISON = bison -y/' <$$f >tmp ; \
  1135.         mv -f tmp $$f ; \
  1136.       else true; fi ; \
  1137.     done
  1138.     # Take out texinfo from a few places; make simple BISON=bison line.
  1139.     sed -e '/^all\.normal: /s/\all-texinfo //' \
  1140.         -e '/^    install-texinfo /d' \
  1141.         -e '/^BISON = /,/^$$/d' \
  1142.         -e '/^# BISON:/s/.*/BISON = bison -y/' \
  1143.     <Makefile.in >tmp
  1144.     mv -f tmp Makefile.in
  1145.     #
  1146.     ./configure sun4
  1147.     [ -z "$(CONFIGURE_TARGET_MODULES)" ] \
  1148.       || $(MAKE) $(CONFIGURE_TARGET_MODULES) ALL_GCC="" \
  1149.         CC_FOR_TARGET="$(CC) CXX_FOR_TARGET="$(CXX)"
  1150.     # Make links, and run "make diststuff" or "make info" when needed.
  1151.     rm -rf proto-toplev ; mkdir proto-toplev
  1152.     set -e ; dirs="$(TOOL) $(DEVO_SUPPORT) $(SUPPORT_FILES)" ; \
  1153.     for d in $$dirs ; do \
  1154.       if [ -d $$d ]; then \
  1155.         if [ ! -f $$d/Makefile ] ; then true ; \
  1156.         elif grep '^diststuff:' $$d/Makefile >/dev/null ; then \
  1157.         (cd $$d ; $(MAKE) diststuff ) || exit 1 ; \
  1158.         elif grep '^info:' $$d/Makefile >/dev/null ; then \
  1159.             (cd $$d ; $(MAKE) info ) || exit 1 ; \
  1160.         fi ; \
  1161.         if [ -d $$d/proto-$$d.dir ]; then \
  1162.           ln -s ../$$d/proto-$$d.dir proto-toplev/$$d ; \
  1163.         else \
  1164.           ln -s ../$$d proto-toplev/$$d ; \
  1165.         fi ; \
  1166.       else ln -s ../$$d proto-toplev/$$d ; fi ; \
  1167.     done
  1168.     cd etc ; $(MAKE) info
  1169.     $(MAKE) distclean
  1170.     #
  1171.     mkdir proto-toplev/etc
  1172.     (cd proto-toplev/etc; \
  1173.      for i in $(ETC_SUPPORT); do \
  1174.         ln -s ../../etc/$$i . ; \
  1175.      done)
  1176.     #
  1177.     # Take out texinfo from configurable dirs
  1178.     rm proto-toplev/configure.in
  1179.     sed -e '/^host_tools=/s/texinfo //' \
  1180.         <configure.in >proto-toplev/configure.in
  1181.     #
  1182.     mkdir proto-toplev/texinfo
  1183.     ln -s ../../texinfo/texinfo.tex proto-toplev/texinfo/
  1184.     ln -s ../../texinfo/gpl.texinfo proto-toplev/texinfo/
  1185.     ln -s ../../texinfo/lgpl.texinfo proto-toplev/texinfo/
  1186.     ln -s ../../texinfo/tex3patch   proto-toplev/texinfo/
  1187.     chmod og=u `find . -print`
  1188.     (VER=`sed <$(TOOL)/Makefile.in -n 's/^VERSION *= *//p'`; \
  1189.         echo "==> Making $(TOOL)-$$VER.tar.gz"; \
  1190.         rm -f $(TOOL)-$$VER; ln -s proto-toplev $(TOOL)-$$VER; \
  1191.         tar cfh - $(TOOL)-$$VER \
  1192.         | $(GZIPPROG) -v -9 >$(TOOL)-$$VER.tar.gz )
  1193.  
  1194. TEXINFO_SUPPORT= texinfo/texinfo.tex texinfo/gpl.texinfo texinfo/lgpl.texinfo
  1195. DIST_SUPPORT= $(DEVO_SUPPORT) $(TEXINFO_SUPPORT)
  1196.  
  1197. .PHONY: gas.tar.gz
  1198. GAS_SUPPORT_DIRS= bfd include libiberty opcodes
  1199. gas.tar.gz: $(DIST_SUPPORT) $(GAS_SUPPORT_DIRS) gas
  1200.     $(MAKE) -f Makefile.in taz TOOL=gas \
  1201.         SUPPORT_FILES="$(GAS_SUPPORT_DIRS)"
  1202.  
  1203. # The FSF "binutils" release includes gprof and ld.
  1204. .PHONY: binutils.tar.gz
  1205. BINUTILS_SUPPORT_DIRS= bfd gas include libiberty opcodes ld gprof
  1206. binutils.tar.gz: $(DIST_SUPPORT) $(BINUTILS_SUPPORT_DIRS) binutils
  1207.     $(MAKE) -f Makefile.in taz TOOL=binutils \
  1208.         SUPPORT_FILES="$(BINUTILS_SUPPORT_DIRS) makeall.bat configure.bat"
  1209.  
  1210. .PHONY: gas+binutils.tar.gz
  1211. GASB_SUPPORT_DIRS= $(GAS_SUPPORT_DIRS) binutils ld gprof
  1212. gas+binutils.tar.gz: $(DIST_SUPPORT) $(GASB_SUPPORT_DIRS) gas
  1213.     $(MAKE) -f Makefile.in taz TOOL=gas \
  1214.         SUPPORT_FILES="$(GASB_SUPPORT_DIRS) makeall.bat configure.bat"
  1215.  
  1216. .PHONY: libg++.tar.gz
  1217. LIBGXX_SUPPORT_DIRS=include libstdc++ libio librx libiberty
  1218. libg++.tar.gz: $(DIST_SUPPORT) libg++
  1219.     $(MAKE) -f Makefile.in taz TOOL=libg++ \
  1220.         SUPPORT_FILES="$(LIBGXX_SUPPORT_DIRS)"
  1221.  
  1222. GNATS_SUPPORT_DIRS=include libiberty send-pr
  1223. gnats.tar.gz: $(DIST_SUPPORT) $(GNATS_SUPPORT_DIRS) gnats
  1224.     $(MAKE) -f  Makefile.in taz TOOL=gnats \
  1225.         SUPPORT_FILES="$(GNATS_SUPPORT_DIRS)"
  1226.  
  1227. .PHONY: gdb.tar.gz
  1228. GDB_SUPPORT_DIRS= bfd include libiberty mmalloc opcodes readline sim utils
  1229. GDBTK_SUPPORT_DIRS= `if [ -d tcl -a -d tk ] ; then echo tcl tk ; fi`
  1230. gdb.tar.gz: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
  1231.     $(MAKE) -f Makefile.in taz TOOL=gdb \
  1232.         SUPPORT_FILES="$(GDB_SUPPORT_DIRS) $(GDBTK_SUPPORT_DIRS)"
  1233.  
  1234. .PHONY: newlib.tar.gz
  1235. NEWLIB_SUPPORT_DIRS=libgloss
  1236. # taz configures for the sun4 target which won't configure newlib.
  1237. # We need newlib configured so that the .info files are made.
  1238. # Unfortunately, it is not enough to just configure newlib separately:
  1239. # taz will build the .info files but since SUBDIRS won't contain newlib,
  1240. # distclean won't be run (leaving Makefile, config.status, and the tmp files
  1241. # used in building the .info files, eg: *.def, *.ref).
  1242. # Compensate here by configuring newlib for a simple (no multilib support)
  1243. # cross target (sparc64), building the info files, and doing make distclean
  1244. # ourselves.
  1245. newlib.tar.gz: $(DIST_SUPPORT) $(NEWLIB_SUPPORT_DIRS) newlib
  1246.     rootme=`pwd` ; \
  1247.       cd newlib && ../configure --srcdir $$rootme/newlib \
  1248.         --host sun4 --target sparc64-elf
  1249.     cd newlib ; make info
  1250.     cd newlib ; make distclean
  1251.     $(MAKE) -f Makefile.in taz TOOL=newlib \
  1252.         SUPPORT_FILES="$(NEWLIB_SUPPORT_DIRS)" \
  1253.         DEVO_SUPPORT="$(DEVO_SUPPORT) COPYING.NEWLIB" newlib
  1254.  
  1255. .NOEXPORT:
  1256. MAKEOVERRIDES=
  1257.  
  1258.  
  1259. # end of Makefile.in
  1260.