2001-07-12 Jeff Johnston <jjohnstn@redhat.com>
[deliverable/binutils-gdb.git] / Makefile.in
index 68b421bfa2197ff3b0aea93827f626162df7b830..ed3ab75548bbd43b5881045d61f16bb94d847a91 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Makefile for directory with subdirs to build.
-#   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 1998
-#   Free Software Foundation
+#   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+#   1999, 2000, 2001 Free Software Foundation
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -186,14 +186,19 @@ SET_LIB_PATH =
 # the libraries.  This may be changed by configure.in.
 RPATH_ENVVAR = LD_LIBRARY_PATH
 
+# This is the list of directories that may be needed in RPATH_ENVVAR
+# so that programs built for the host machine work.
+HOST_LIB_PATH = $$r/bfd:$$r/opcodes
+
+# This is the list of directories that may be needed in RPATH_ENVVAR
+# so that prorgams built for the target machine work.
+TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:$$r/$(TARGET_SUBDIR)/libstdc++
+
 # configure.in sets SET_LIB_PATH to this if --enable-shared was used.
+# Some platforms don't like blank entries, so we remove duplicate,
+# leading and trailing colons.
 REALLY_SET_LIB_PATH = \
-  if [ x"$$$(RPATH_ENVVAR)" != x ]; then \
-    $(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes:$$$(RPATH_ENVVAR); \
-  else \
-    $(RPATH_ENVVAR)=$$r/bfd:$$r/opcodes; \
-  fi; \
-  export $(RPATH_ENVVAR);
+  $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR);
 
 ALL = all.normal
 INSTALL_TARGET = installdirs \
@@ -215,16 +220,19 @@ FLAGS_FOR_TARGET =
 CC_FOR_TARGET =
 CHILL_FOR_TARGET =
 CXX_FOR_TARGET =
+CXX_FOR_TARGET_FOR_RECURSIVE_MAKE =
 
 # If GCC_FOR_TARGET is not overriden on the command line, then this
 # variable is passed down to the gcc Makefile, where it is used to
 # build libgcc2.a.  We define it here so that it can itself be
 # overridden on the command line.
-GCC_FOR_TARGET = $$r/gcc/xgcc $(FLAGS_FOR_TARGET)
+GCC_FOR_TARGET = $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET)
 
 AS_FOR_TARGET = ` \
   if [ -f $$r/gas/as-new ] ; then \
     echo $$r/gas/as-new ; \
+  elif [ -f $$r/gcc/xgcc ]; then \
+    $(CC_FOR_TARGET) -print-prog-name=as ; \
   else \
     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
       echo $(AS); \
@@ -236,6 +244,8 @@ AS_FOR_TARGET = ` \
 LD_FOR_TARGET = ` \
   if [ -f $$r/ld/ld-new ] ; then \
     echo $$r/ld/ld-new ; \
+  elif [ -f $$r/gcc/xgcc ]; then \
+    $(CC_FOR_TARGET) -print-prog-name=ld ; \
   else \
     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
       echo $(LD); \
@@ -291,6 +301,8 @@ RANLIB_FOR_TARGET = ` \
 NM_FOR_TARGET = ` \
   if [ -f $$r/binutils/nm-new ] ; then \
     echo $$r/binutils/nm-new ; \
+  elif [ -f $$r/gcc/xgcc ]; then \
+    $(CC_FOR_TARGET) -print-prog-name=nm ; \
   else \
     if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
       echo $(NM); \
@@ -380,6 +392,14 @@ BASE_FLAGS_TO_PASS = \
        "target_alias=$(target_alias)" \
        "libsubdir=$(libsubdir)"
 
+# For any flags above that may contain shell code that varies from one
+# target library to another.  When doing recursive invocations of the
+# top-level Makefile, we don't want the outer make to evaluate them,
+# so we pass these variables down unchanged.  They must not contain
+# single nor double quotes.
+RECURSE_FLAGS = \
+       CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)'
+
 # Flags to pass down to most sub-makes, in which we're building with
 # the host environment.
 # If any variables are added here, they must be added to do-*, below.
@@ -516,6 +536,7 @@ ALL_MODULES = \
        all-sed \
        all-send-pr \
        all-shellutils \
+       all-sid \
        all-sim \
        all-snavigator \
        all-tar \
@@ -528,6 +549,7 @@ ALL_MODULES = \
        all-uudecode \
        all-wdiff \
        all-zip \
+       all-zlib \
        $(EXTRA_TARGET_HOST_ALL_MODULES)
 
 # This is a list of the check targets for all of the modules which are
@@ -591,6 +613,7 @@ CROSS_CHECK_MODULES = \
        check-send-pr \
        check-shellutils \
        check-snavigator \
+       check-sid \
        check-sim \
        check-tar \
        check-tcl \
@@ -666,6 +689,7 @@ INSTALL_MODULES = \
        install-sed \
        install-send-pr \
        install-shellutils \
+       install-sid \
        install-sim \
        install-snavigator \
        install-tar \
@@ -868,6 +892,7 @@ CLEAN_MODULES = \
        clean-sed \
        clean-send-pr \
        clean-shellutils \
+       clean-sid \
        clean-sim \
        clean-snavigator \
        clean-tar \
@@ -878,7 +903,8 @@ CLEAN_MODULES = \
        clean-time \
        clean-uudecode \
        clean-wdiff \
-       clean-zip
+       clean-zip \
+       clean-zlib
 
 # All of the target modules that can be cleaned
 CLEAN_TARGET_MODULES = \
@@ -1056,7 +1082,12 @@ $(CLEAN_TARGET_MODULES):
          true; \
        fi
 
-clean-target: $(CLEAN_TARGET_MODULES)
+clean-target: $(CLEAN_TARGET_MODULES) clean-target-libgcc
+clean-target-libgcc:
+       test ! -d gcc/libgcc || \
+       (cd gcc/libgcc && find . -type d -print) | \
+       while read d; do rm -f gcc/$$d/libgcc.a || : ; done
+       -rm -rf gcc/libgcc
 
 # Check target.
 
@@ -1333,7 +1364,8 @@ $(ALL_TARGET_MODULES):
          r=`pwd`; export r; \
          s=`cd $(srcdir); pwd`; export s; \
          $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/$${dir}; $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
+         (cd $(TARGET_SUBDIR)/$${dir}; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \
        else \
          true; \
        fi
@@ -1347,7 +1379,8 @@ $(CHECK_TARGET_MODULES):
          r=`pwd`; export r; \
          s=`cd $(srcdir); pwd`; export s; \
          $(SET_LIB_PATH) \
-         (cd $(TARGET_SUBDIR)/$${dir};$(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
+         (cd $(TARGET_SUBDIR)/$${dir}; \
+           $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\
        else \
          true; \
        fi
@@ -1441,7 +1474,7 @@ bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean b
        s=`cd $(srcdir); pwd`; export s; \
        $(SET_LIB_PATH) \
        echo "Bootstrapping the compiler"; \
-       cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $@
+       cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@
        @r=`pwd`; export r; \
        s=`cd $(srcdir); pwd`; export s; \
        case "$@" in \
@@ -1457,12 +1490,12 @@ bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean b
        esac; \
        $(SET_LIB_PATH) \
        echo "$$msg"; \
-       cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
+       cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare
        @r=`pwd`; export r; \
        s=`cd $(srcdir); pwd` ; export s; \
        $(SET_LIB_PATH) \
        echo "Building runtime libraries"; \
-       $(MAKE) $(BASE_FLAGS_TO_PASS) all
+       $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all
 
 .PHONY: cross
 cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
@@ -1470,12 +1503,13 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
        s=`cd $(srcdir); pwd`; export s; \
        $(SET_LIB_PATH) \
        echo "Building the C and C++ compiler"; \
-       cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
+       cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++"
        @r=`pwd`; export r; \
        s=`cd $(srcdir); pwd` ; export s; \
        $(SET_LIB_PATH) \
        echo "Building runtime libraries"; \
-       $(MAKE) $(BASE_FLAGS_TO_PASS) all LANGUAGES="c c++"
+       $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \
+         LANGUAGES="c c++" all
 
 .PHONY: check-gcc
 check-gcc:
@@ -1526,6 +1560,9 @@ install-dosrel: installdirs info
 
 install-dosrel-fake:
 
+ALL_GCC = all-gcc
+ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss
+ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++ all-target-libstdc++-v3
 
 # This is a list of inter-dependencies among modules.
 all-apache:
@@ -1536,23 +1573,23 @@ all-bash:
 all-bfd: all-libiberty all-intl
 all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl
 all-bison: all-texinfo
-configure-target-boehm-gc: configure-target-newlib configure-target-qthreads
+configure-target-boehm-gc: $(ALL_GCC_CXX) configure-target-qthreads
 all-target-boehm-gc: configure-target-boehm-gc
-configure-target-bsp: $(ALL_GCC)
-all-target-bsp: configure-target-bsp all-gcc all-binutils all-target-newlib
+configure-target-bsp: $(ALL_GCC_C)
+all-target-bsp: configure-target-bsp
 all-byacc:
 all-bzip2:
 all-cgen: all-libiberty
 all-cvssrc:
-configure-target-cygmon: $(ALL_GCC)
-all-target-cygmon: configure-target-cygmon all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio all-target-libstub all-target-bsp
+configure-target-cygmon: $(ALL_GCC_C)
+all-target-cygmon: configure-target-cygmon all-target-libiberty all-target-libio all-target-libstub all-target-bsp
 all-db:
 all-dejagnu: all-tcl all-expect all-tk
 all-diff: all-libiberty
 all-emacs:
 all-emacs19: all-bison all-byacc
 all-etc:
-configure-target-examples: $(ALL_GCC)
+configure-target-examples: $(ALL_GCC_C)
 all-target-examples: configure-target-examples
 all-expect: all-tcl all-tk
 all-fileutils: all-libiberty
@@ -1562,14 +1599,13 @@ all-flex: all-libiberty all-bison all-byacc
 all-gas: all-libiberty all-opcodes all-bfd all-intl
 all-gash: all-tcl
 all-gawk:
-ALL_GCC = all-gcc
-all-gcc: all-bison all-byacc all-binutils all-gas all-ld
+all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib
 all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib
 GDB_TK = all-tk all-tcl all-itcl all-tix all-libgui
 all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK)
 all-gettext:
 all-gnuserv:
-configure-target-gperf: $(ALL_GCC)
+configure-target-gperf: $(ALL_GCC_C)
 all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++
 all-gprof: all-libiberty all-bfd all-opcodes all-intl
 all-grep: all-libiberty
@@ -1584,46 +1620,46 @@ all-intl:
 all-ispell: all-emacs19
 all-itcl: all-tcl all-tk all-tcl8.1 all-tk8.1
 all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl
-configure-target-libg++: $(ALL_GCC) configure-target-librx
-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++
+configure-target-libg++: $(ALL_GCC_CXX) configure-target-librx
+all-target-libg++: configure-target-libg++ all-target-libiberty all-target-librx
 configure-target-libgloss: $(ALL_GCC)
 all-target-libgloss: configure-target-libgloss configure-target-newlib
-configure-target-libio: $(ALL_GCC)
+configure-target-libio: $(ALL_GCC_C)
 all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libiberty all-target-newlib
-check-target-libio:
+check-target-libio: all-target-libstdc++
 all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
 all-libiberty:
-configure-target-libffi: $(ALL_GCC) 
-configure-target-libjava: $(ALL_GCC) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-newlib configure-target-libffi
+configure-target-libffi: $(ALL_GCC_C) 
 all-target-libffi: configure-target-libffi
-all-target-libjava: configure-target-libjava all-gcc all-zip all-target-newlib all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi
-configure-target-librx: $(ALL_GCC) configure-target-newlib
+configure-target-libjava: $(ALL_GCC_CXX) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
+all-target-libjava: configure-target-libjava all-zip all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi
+configure-target-librx: $(ALL_GCC_C)
 all-target-librx: configure-target-librx
-configure-target-libstdc++: $(ALL_GCC)
-configure-target-libstdc++-v3: $(ALL_GCC)
-all-target-libstdc++: configure-target-libstdc++ all-gas all-ld all-gcc all-target-libiberty all-target-newlib all-target-libio
-all-target-libstdc++-v3: configure-target-libstdc++-v3 all-gas all-ld all-gcc all-target-libiberty all-target-newlib 
-configure-target-libstub: $(ALL_GCC)
+configure-target-libstdc++: $(ALL_GCC_C)
+all-target-libstdc++: configure-target-libstdc++ all-target-libiberty all-target-libio
+configure-target-libstdc++-v3: $(ALL_GCC_C)
+all-target-libstdc++-v3: configure-target-libstdc++-v3 all-target-libiberty
+configure-target-libstub: $(ALL_GCC_C)
 all-target-libstub: configure-target-libstub
 all-libtool:
-configure-target-libf2c: $(ALL_GCC)
-all-target-libf2c: configure-target-libf2c all-gas all-ld all-gcc all-target-libiberty all-target-newlib
-configure-target-libchill: $(ALL_GCC)
-all-target-libchill: configure-target-libchill all-gas all-ld all-gcc all-target-libiberty all-target-newlib
-configure-target-libobjc: $(ALL_GCC)
-all-target-libobjc: configure-target-libobjc all-gas all-ld all-gcc all-target-libiberty all-target-newlib
-all-m4: all-libiberty
+configure-target-libf2c: $(ALL_GCC_C)
+all-target-libf2c: configure-target-libf2c all-target-libiberty
+configure-target-libchill: $(ALL_GCC_C)
+all-target-libchill: configure-target-libchill all-target-libiberty
+configure-target-libobjc: $(ALL_GCC_C)
+all-target-libobjc: configure-target-libobjc all-target-libiberty
+all-m4: all-libiberty all-texinfo
 all-make: all-libiberty
 all-mmalloc:
 configure-target-newlib: $(ALL_GCC)
-configure-target-libtermcap: $(ALL_GCC)
-all-target-newlib: configure-target-newlib all-binutils all-gas all-gcc
-all-target-libtermcap: configure-target-libtermcap all-binutils all-gas all-gcc
+all-target-newlib: configure-target-newlib
+configure-target-libtermcap: $(ALL_GCC_C)
+all-target-libtermcap: configure-target-libtermcap
 all-opcodes: all-bfd all-libiberty all-cgen
 all-patch: all-libiberty
 all-perl:
 all-prms: all-libiberty
-configure-target-qthreads: configure-target-newlib
+configure-target-qthreads: $(ALL_GCC_C)
 all-target-qthreads: configure-target-qthreads
 all-rcs:
 all-readline:
@@ -1631,6 +1667,7 @@ all-recode: all-libiberty
 all-sed: all-libiberty
 all-send-pr: all-prms
 all-shellutils:
+all-sid: all-tcl all-tk
 all-sim: all-libiberty all-bfd all-opcodes all-readline all-cgen
 all-snavigator: all-tcl all-tk all-itcl all-db all-grep all-libgui
 all-tar: all-libiberty
@@ -1645,18 +1682,19 @@ all-tgas: all-libiberty all-bfd all-opcodes
 all-time:
 all-tix: all-tcl all-tk all-tcl8.1 all-tk8.1
 all-wdiff:
-all-target-winsup: all-target-newlib all-target-libiberty all-target-libtermcap configure-target-winsup
-configure-target-winsup: configure-target-newlib
+configure-target-winsup: $(ALL_GCC_C)
+all-target-winsup: all-target-libiberty all-target-libtermcap configure-target-winsup
 all-uudecode: all-libiberty
 all-zip:
 all-zlib:
-configure-target-zlib: $(ALL_GCC)
+configure-target-zlib: $(ALL_GCC_C)
 all-target-zlib: configure-target-zlib
-configure-target-libiberty: $(ALL_GCC) configure-target-newlib
-all-target-libiberty: configure-target-libiberty all-gcc all-ld all-target-newlib
+configure-target-libiberty: $(ALL_GCC_C)
+all-target-libiberty: configure-target-libiberty
 all-target: $(ALL_TARGET_MODULES)
 install-target: $(INSTALL_TARGET_MODULES)
 install-gdb: install-tcl install-tk install-itcl install-tix install-libgui
+install-sid: install-tcl install-tk
 ### other supporting targets
 
 MAKEDIRS= \
@@ -1703,13 +1741,15 @@ DEVO_SUPPORT= README Makefile.in configure configure.in \
        mpw-README mpw-build.in mpw-config.in mpw-configure mpw-install \
        COPYING COPYING.LIB install-sh config-ml.in symlink-tree \
        mkinstalldirs ltconfig ltmain.sh missing ylwrap \
-       libtool.m4 gettext.m4 ltcf-c.sh
+       libtool.m4 gettext.m4 ltcf-c.sh ltcf-cxx.sh ltcf-gcj.sh
 
 # Files in devo/etc used in any net release.
 # ChangeLog omitted because it may refer to files which are not in this
 # distribution (perhaps it would be better to include it anyway).
 ETC_SUPPORT= Makefile.in configure configure.in standards.texi \
-       make-stds.texi standards.info*
+       make-stds.texi standards.info* configure.texi configure.info* \
+       configbuild.* configdev.*
+
 
 # When you use `make setup-dirs' or `make taz' you should always redefine
 # this macro.
@@ -1717,10 +1757,16 @@ SUPPORT_FILES = list-of-support-files-for-tool-in-question
 
 # NOTE: No double quotes in the below.  It is used within shell script
 # as VER="$(VER)"
-VER = `        if grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
+VER = `        if grep 'AM_INIT_AUTOMAKE.*BFD_VERSION' $(TOOL)/configure.in >/dev/null 2>&1; then \
+         sed < bfd/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \
+       elif grep AM_INIT_AUTOMAKE $(TOOL)/configure.in >/dev/null 2>&1; then \
          sed < $(TOOL)/configure.in -n 's/AM_INIT_AUTOMAKE[^,]*, *\([^)]*\))/\1/p'; \
-       else \
+       elif test -f $(TOOL)/version.in; then \
+         head -1 $(TOOL)/version.in; \
+       elif grep VERSION $(TOOL)/Makefile.in > /dev/null 2>&1; then \
          sed < $(TOOL)/Makefile.in -n 's/^VERSION *= *//p'; \
+       else \
+         echo VERSION; \
        fi`
 PACKAGE = $(TOOL)
 
@@ -1769,7 +1815,8 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
        #
        ./configure sun4
        [ -z "$(CONFIGURE_TARGET_MODULES)" ] \
-         || $(MAKE) $(CONFIGURE_TARGET_MODULES) ALL_GCC="" \
+         || $(MAKE) $(CONFIGURE_TARGET_MODULES) \
+           ALL_GCC="" ALL_GCC_C="" ALL_GCC_CXX="" \
            CC_FOR_TARGET="$(CC)" CXX_FOR_TARGET="$(CXX)"
        # Make links, and run "make diststuff" or "make info" when needed.
        rm -rf proto-toplev ; mkdir proto-toplev
@@ -1789,7 +1836,7 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
            fi ; \
          else ln -s ../$$d proto-toplev/$$d ; fi ; \
        done
-       cd etc ; $(MAKE) info
+       cd etc && $(MAKE) info
        $(MAKE) distclean
        #
        mkdir proto-toplev/etc
This page took 0.029178 seconds and 4 git commands to generate.