OSDN Git Service

2001-11-16 John David Anglin <dave@hiauly1.hia.nrc.ca>
[pf3gnuchains/gcc-fork.git] / Makefile.in
index 86497d1..6d6c159 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Makefile for directory with subdirs to build.
 #   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-#   1999, 2000 Free Software Foundation
+#   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
@@ -87,6 +87,7 @@ CXXFLAGS = -g -O2
 
 LDFLAGS = 
 LIBCFLAGS = $(CFLAGS)
+CFLAGS_FOR_BUILD = $(CFLAGS)
 CFLAGS_FOR_TARGET = $(CFLAGS)
 LDFLAGS_FOR_TARGET = 
 LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
@@ -102,8 +103,6 @@ LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
 CXXFLAGS_FOR_TARGET = $(CXXFLAGS)
 LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
 
-RANLIB = ranlib
-
 DLLTOOL = dlltool
 WINDRES = windres
 
@@ -141,9 +140,13 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
        then echo $$r/m4/m4 ; \
        else echo ${DEFAULT_M4} ; fi`
 
+# For an installed makeinfo, we require it to be from texinfo 4 or
+# higher, else we use the "missing" dummy.
 MAKEINFO = `if [ -f $$r/texinfo/makeinfo/Makefile ] ; \
        then echo $$r/texinfo/makeinfo/makeinfo ; \
-       else echo makeinfo ; fi`
+       else if (makeinfo --version \
+         | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
+        then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
 
 # This just becomes part of the MAKEINFO definition passed down to
 # sub-makes.  It lets flags be given on the command line while still
@@ -220,6 +223,7 @@ FLAGS_FOR_TARGET =
 CC_FOR_TARGET =
 CHILL_FOR_TARGET =
 CXX_FOR_TARGET =
+CXX_FOR_TARGET_FOR_RECURSIVE_MAKE =
 GCJ_FOR_TARGET =
 
 # If GCC_FOR_TARGET is not overriden on the command line, then this
@@ -231,8 +235,10 @@ 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 \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(AS); \
     else \
        t='$(program_transform_name)'; echo as | sed -e 's/x/x/' $$t ; \
@@ -242,8 +248,10 @@ 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 \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(LD); \
     else \
        t='$(program_transform_name)'; echo ld | sed -e 's/x/x/' $$t ; \
@@ -254,7 +262,7 @@ DLLTOOL_FOR_TARGET = ` \
   if [ -f $$r/binutils/dlltool ] ; then \
     echo $$r/binutils/dlltool ; \
   else \
-    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(DLLTOOL); \
     else \
        t='$(program_transform_name)'; echo dlltool | sed -e 's/x/x/' $$t ; \
@@ -265,7 +273,7 @@ WINDRES_FOR_TARGET = ` \
   if [ -f $$r/binutils/windres ] ; then \
     echo $$r/binutils/windres ; \
   else \
-    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(WINDRES); \
     else \
        t='$(program_transform_name)'; echo windres | sed -e 's/x/x/' $$t ; \
@@ -276,7 +284,7 @@ AR_FOR_TARGET = ` \
   if [ -f $$r/binutils/ar ] ; then \
     echo $$r/binutils/ar ; \
   else \
-    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(AR); \
     else \
        t='$(program_transform_name)'; echo ar | sed -e 's/x/x/' $$t ; \
@@ -287,8 +295,12 @@ RANLIB_FOR_TARGET = ` \
   if [ -f $$r/binutils/ranlib ] ; then \
     echo $$r/binutils/ranlib ; \
   else \
-    if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
-      echo $(RANLIB); \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
+      if [ x'$(RANLIB)' != x ]; then \
+         echo $(RANLIB); \
+      else \
+         echo ranlib; \
+      fi; \
     else \
        t='$(program_transform_name)'; echo ranlib | sed -e 's/x/x/' $$t ; \
     fi; \
@@ -297,8 +309,10 @@ 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 \
+    if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
       echo $(NM); \
     else \
        t='$(program_transform_name)'; echo nm | sed -e 's/x/x/' $$t ; \
@@ -388,6 +402,14 @@ BASE_FLAGS_TO_PASS = \
        "gcc_version_trigger=$(gcc_version_trigger)" \
        "target_alias=$(target_alias)" 
 
+# 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.
@@ -399,7 +421,7 @@ EXTRA_HOST_FLAGS = \
        'DLLTOOL=$(DLLTOOL)' \
        'LD=$(LD)' \
        'NM=$(NM)' \
-       'RANLIB=$(RANLIB)' \
+       "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
        'WINDRES=$(WINDRES)'
 
 FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS)
@@ -453,9 +475,10 @@ EXTRA_GCC_FLAGS = \
        'HOST_PREFIX=$(HOST_PREFIX)' \
        'HOST_PREFIX_1=$(HOST_PREFIX_1)' \
        'NM=$(NM)' \
-       'RANLIB=$(RANLIB)' \
+       "`echo 'RANLIB=$(RANLIB)' | sed -e s/.*=$$/XFOO=/`" \
        'WINDRES=$$(WINDRES_FOR_TARGET)' \
        "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \
+       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
        "`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \
        "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \
        "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \
@@ -464,6 +487,7 @@ EXTRA_GCC_FLAGS = \
        "`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
        "`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \
        "`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \
+       "`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \
        "`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`"
 
 GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
@@ -525,6 +549,7 @@ ALL_MODULES = \
        all-sed \
        all-send-pr \
        all-shellutils \
+       all-sid \
        all-sim \
        all-snavigator \
        all-tar \
@@ -602,6 +627,7 @@ CROSS_CHECK_MODULES = \
        check-send-pr \
        check-shellutils \
        check-snavigator \
+       check-sid \
        check-sim \
        check-tar \
        check-tcl \
@@ -678,6 +704,7 @@ INSTALL_MODULES = \
        install-sed \
        install-send-pr \
        install-shellutils \
+       install-sid \
        install-sim \
        install-snavigator \
        install-tar \
@@ -869,6 +896,7 @@ CLEAN_MODULES = \
        clean-sed \
        clean-send-pr \
        clean-shellutils \
+       clean-sid \
        clean-sim \
        clean-snavigator \
        clean-tar \
@@ -952,20 +980,19 @@ $(DO_X):
            case $$i in \
            gcc) \
              for flag in $(EXTRA_GCC_FLAGS); do \
-               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
              done; \
              ;; \
            *) \
              for flag in $(EXTRA_HOST_FLAGS); do \
-               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
              done; \
              ;; \
            esac ; \
-           export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
            if (cd ./$$i; \
                $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
                        "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                       "RANLIB=$${RANLIB}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
                        "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
                        $${target}); \
            then true; else exit 1; fi; \
@@ -978,13 +1005,12 @@ $(DO_X):
        for i in $(TARGET_CONFIGDIRS) -dummy-; do \
          if [ -f $(TARGET_SUBDIR)/$$i/Makefile ]; then \
            for flag in $(EXTRA_TARGET_FLAGS); do \
-               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'|"`; \
+               eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
            done; \
-           export AR AS CC CXX LD NM RANLIB DLLTOOL WINDRES; \
            if (cd $(TARGET_SUBDIR)/$$i; \
                $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
                        "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                       "RANLIB=$${RANLIB}" \
+                       "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \
                        "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
                        $${target}); \
            then true; else exit 1; fi; \
@@ -1191,7 +1217,7 @@ $(ALL_MODULES) all-gui all-libproc:
 
 .PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES)
 $(NATIVE_CHECK_MODULES):
-       @if [ "$(host_canonical)" = "$(target_canonical)" ] ; then \
+       @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \
          dir=`echo $@ | sed -e 's/check-//'`; \
          if [ -f ./$${dir}/Makefile ] ; then \
            r=`pwd`; export r; \
@@ -1343,7 +1369,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
@@ -1357,7 +1384,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
@@ -1472,7 +1500,7 @@ bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean b
        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
@@ -1485,7 +1513,8 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld
        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:
@@ -1500,15 +1529,15 @@ check-gcc:
 
 .PHONY: check-c++
 check-c++:
-        @if [ -f ./gcc/Makefile ] ; then \
-          r=`pwd`; export r; \
-          s=`cd $(srcdir); pwd`; export s; \
-          $(SET_LIB_PATH) \
-          (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
-          $(MAKE) check-target-libstdc++-v3 \
-        else \
-          true; \
-        fi 
+       @if [ -f ./gcc/Makefile ] ; then \
+         r=`pwd`; export r; \
+         s=`cd $(srcdir); pwd`; export s; \
+         $(SET_LIB_PATH) \
+         (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \
+         $(MAKE) check-target-libstdc++-v3; \
+       else \
+         true; \
+       fi 
 
 .PHONY: install-gcc
 install-gcc:
@@ -1548,6 +1577,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++-v3
 
 # This is a list of inter-dependencies among modules.
 all-apache:
@@ -1584,16 +1616,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_C = $(ALL_GCC) all-target-newlib all-target-libgloss
-ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3
 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_C)
+configure-target-gperf: $(ALL_GCC_CXX)
 all-target-gperf: configure-target-gperf all-target-libiberty all-target-libstdc++-v3
 all-gprof: all-libiberty all-bfd all-opcodes all-intl
 all-grep: all-libiberty
@@ -1629,7 +1658,7 @@ 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-m4: all-libiberty all-texinfo
 all-make: all-libiberty
 all-mmalloc:
 configure-target-newlib: $(ALL_GCC)
@@ -1648,6 +1677,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
@@ -1677,6 +1707,7 @@ 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= \