OSDN Git Service

i2002-04-11 DJ Delorie <dj@redhat.com>
[pf3gnuchains/gcc-fork.git] / Makefile.in
index 379a779..94f4692 100644 (file)
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 #
 
+# Tell GNU make 3.79 not to run the top level in parallel.  This 
+# prevents contention for $builddir/$target/config.cache, as well
+# as minimizing scatter in file system caches.
+NOTPARALLEL = .NOTPARALLEL
+$(NOTPARALLEL):
+
 srcdir = .
 
 prefix = /usr/local
@@ -140,9 +146,13 @@ M4 = `if [ -f $$r/m4/m4 ] ; \
        then echo $$r/m4/m4 ; \
        else echo ${DEFAULT_M4} ; fi`
 
-MAKEINFO = `if [ -f $$r/texinfo/makeinfo/Makefile ] ; \
+# 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/makeinfo ] ; \
        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
@@ -174,8 +184,16 @@ TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib librx winsup opcod
 # Changed by configure to $(target_alias) if cross.
 TARGET_SUBDIR = .
 
-# This is set by the configure script to the arguments passed to configure.
-CONFIG_ARGUMENTS = 
+BUILD_CONFIGDIRS = libiberty
+BUILD_SUBDIR = .
+
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the target.
+TARGET_CONFIGARGS = 
+
+# This is set by the configure script to the arguments to use when configuring
+# directories built for the build system.
+BUILD_CONFIGARGS =
 
 # This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
 # was used.
@@ -489,6 +507,18 @@ EXTRA_GCC_FLAGS = \
 GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS)
 
 # This is a list of the targets for all of the modules which are compiled
+# using the build machine's native compiler.  Configure edits the second
+# macro for build!=host builds.
+ALL_BUILD_MODULES_LIST = \
+       all-build-libiberty
+ALL_BUILD_MODULES = 
+
+# This is a list of the configure targets for all of the modules which
+# are compiled using the native tools.
+CONFIGURE_BUILD_MODULES = \
+       configure-build-libiberty
+
+# This is a list of the targets for all of the modules which are compiled
 # using $(FLAGS_TO_PASS).
 ALL_MODULES = \
        all-apache \
@@ -943,6 +973,7 @@ CLEAN_X11_MODULES = \
 # The target built for a native build.
 .PHONY: all.normal
 all.normal: \
+       $(ALL_BUILD_MODULES) \
        $(ALL_MODULES) \
        $(ALL_X11_MODULES) \
        $(ALL_TARGET_MODULES) \
@@ -1091,8 +1122,11 @@ clean-target-libgcc:
 
 # Check target.
 
-.PHONY: check
-check: $(CHECK_MODULES) \
+.PHONY: check do-check
+check:
+       $(MAKE) do-check NOTPARALLEL=parallel-ok
+
+do-check: $(CHECK_MODULES) \
        $(CHECK_TARGET_MODULES) \
        $(CHECK_X11_MODULES) \
        check-gcc
@@ -1189,6 +1223,106 @@ gcc-no-fixedincludes:
          mv gcc/tmp-include gcc/include 2>/dev/null; \
        else true; fi
 
+# This rule is used to build the modules which are built with the
+# build machine's native compiler.
+.PHONY: $(ALL_BUILD_MODULES)
+$(ALL_BUILD_MODULES):
+       dir=`echo $@ | sed -e 's/all-build-//'`; \
+       if [ -f ./$${dir}/Makefile ] ; then \
+         r=`pwd`; export r; \
+         s=`cd $(srcdir); pwd`; export s; \
+         (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \
+       else \
+         true; \
+       fi
+
+# This rule is used to configure the modules which are built with the
+# native tools.
+.PHONY: $(CONFIGURE_BUILD_MODULES)
+$(CONFIGURE_BUILD_MODULES):
+       @dir=`echo $@ | sed -e 's/configure-build-//'`; \
+       if [ ! -d $(BUILD_SUBDIR) ]; then \
+         true; \
+       elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \
+         true; \
+       elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \
+         if [ -d $(srcdir)/$${dir} ]; then \
+           [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\
+           r=`pwd`; export r; \
+           s=`cd $(srcdir); pwd`; export s; \
+           AR="$(AR_FOR_BUILD)"; export AR; \
+           AS="$(AS_FOR_BUILD)"; export AS; \
+           CC="$(CC_FOR_BUILD)"; export CC; \
+           CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
+           CXX="$(CXX_FOR_BUILD)"; export CXX; \
+           CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+           GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+           DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
+           LD="$(LD_FOR_BUILD)"; export LD; \
+            LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
+           NM="$(NM_FOR_BUILD)"; export NM; \
+           RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \
+           WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \
+           echo Configuring in $(BUILD_SUBDIR)/$${dir}; \
+           cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \
+           case $(srcdir) in \
+           /* | [A-Za-z]:[\\/]*) \
+             topdir=$(srcdir) ;; \
+           *) \
+             case "$(BUILD_SUBDIR)" in \
+             .) topdir="../$(srcdir)" ;; \
+             *) topdir="../../$(srcdir)" ;; \
+             esac ;; \
+           esac; \
+           if [ "$(srcdir)" = "." ] ; then \
+             if [ "$(BUILD_SUBDIR)" != "." ] ; then \
+               if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
+                 if [ -f Makefile ]; then \
+                   if $(MAKE) distclean; then \
+                     true; \
+                   else \
+                     exit 1; \
+                   fi; \
+                 else \
+                   true; \
+                 fi; \
+               else \
+                 exit 1; \
+               fi; \
+             else \
+               true; \
+             fi; \
+             srcdiroption="--srcdir=."; \
+             libsrcdir="."; \
+           else \
+             srcdiroption="--srcdir=$${topdir}/$${dir}"; \
+             libsrcdir="$$s/$${dir}"; \
+           fi; \
+           if [ -f $${libsrcdir}/configure ] ; then \
+             rm -f no-such-file skip-this-dir; \
+             CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+               $(BUILD_CONFIGARGS) $${srcdiroption} \
+               --with-build-subdir="$(BUILD_SUBDIR)"; \
+           else \
+             rm -f no-such-file skip-this-dir; \
+             CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
+               $(BUILD_CONFIGARGS) $${srcdiroption} \
+               --with-build-subdir="$(BUILD_SUBDIR)"; \
+           fi || exit 1; \
+           if [ -f skip-this-dir ] ; then \
+             sh skip-this-dir; \
+             rm -f skip-this-dir; \
+             cd ..; rmdir $${dir} || true; \
+           else \
+             true; \
+           fi; \
+         else \
+           true; \
+         fi; \
+       else \
+         true; \
+       fi
+
 # This rule is used to build the modules which use FLAGS_TO_PASS.  To
 # build a target all-X means to cd to X and make all.
 #
@@ -1334,12 +1468,12 @@ $(CONFIGURE_TARGET_MODULES):
            if [ -f $${libsrcdir}/configure ] ; then \
              rm -f no-such-file skip-this-dir; \
              CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
-               $(CONFIG_ARGUMENTS) $${srcdiroption} \
+               $(TARGET_CONFIGARGS) $${srcdiroption} \
                --with-target-subdir="$(TARGET_SUBDIR)"; \
            else \
              rm -f no-such-file skip-this-dir; \
              CONFIG_SITE=no-such-file $(SHELL) $$s/configure \
-               $(CONFIG_ARGUMENTS) $${srcdiroption} \
+               $(TARGET_CONFIGARGS) $${srcdiroption} \
                --with-target-subdir="$(TARGET_SUBDIR)"; \
            fi || exit 1; \
            if [ -f skip-this-dir ] ; then \
@@ -1586,7 +1720,7 @@ 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: $(ALL_GCC_CXX) configure-target-qthreads
+configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads
 all-target-boehm-gc: configure-target-boehm-gc
 configure-target-bsp: $(ALL_GCC_C)
 all-target-bsp: configure-target-bsp
@@ -1637,9 +1771,12 @@ configure-target-libgloss: $(ALL_GCC)
 all-target-libgloss: configure-target-libgloss configure-target-newlib
 all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
 all-libiberty:
+
+all-build-libiberty: configure-build-libiberty
+
 configure-target-libffi: $(ALL_GCC_C) 
 all-target-libffi: configure-target-libffi
-configure-target-libjava: $(ALL_GCC_CXX) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
+configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi
 all-target-libjava: configure-target-libjava all-fastjar 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
@@ -1675,7 +1812,7 @@ 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-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui
 all-tar: all-libiberty
 all-tcl:
 all-tcl8.1:
@@ -1695,9 +1832,9 @@ all-zip:
 all-zlib:
 configure-target-zlib: $(ALL_GCC_C)
 all-target-zlib: configure-target-zlib
-all-fastjar: all-zlib
+all-fastjar: all-zlib all-libiberty
 configure-target-fastjar: configure-target-zlib
-all-target-fastjar: configure-target-fastjar all-target-zlib
+all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty
 configure-target-libiberty: $(ALL_GCC_C)
 all-target-libiberty: configure-target-libiberty
 all-target: $(ALL_TARGET_MODULES)
@@ -1756,7 +1893,9 @@ DEVO_SUPPORT= README Makefile.in configure configure.in \
 # 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.
@@ -1764,10 +1903,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)
 
@@ -1781,13 +1926,17 @@ taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
                TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(SUPPORT_FILES)"
-       $(MAKE) -f Makefile.in do-tar-bz2 \
+       $(MAKE) -f Makefile.in do-tar \
+               TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(SUPPORT_FILES)"
+       $(MAKE) -f Makefile.in do-bz2 \
                TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(SUPPORT_FILES)"
 
-.PHONY: gdb-taz
-gdb-taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
+.PHONY: gdb-tar
+gdb-tar: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
        $(MAKE) -f Makefile.in do-proto-toplev \
                TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
                MD5PROG="$(MD5PROG)" \
@@ -1800,7 +1949,18 @@ gdb-taz: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
                TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(SUPPORT_FILES)"
-       $(MAKE) -f Makefile.in do-tar-bz2 \
+       $(MAKE) -f Makefile.in do-tar \
+               TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(SUPPORT_FILES)"
+
+.PHONY: gdb-taz
+gdb-taz: gdb-tar $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
+       $(MAKE) -f Makefile.in gdb-tar \
+               TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(SUPPORT_FILES)"
+       $(MAKE) -f Makefile.in do-bz2 \
                TOOL=$(TOOL) PACKAGE="$(PACKAGE)" VER="$(VER)" \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(SUPPORT_FILES)"
@@ -1859,15 +2019,25 @@ do-proto-toplev: $(DEVO_SUPPORT) $(SUPPORT_FILES) texinfo/texinfo.tex
        else true; fi
        chmod -R og=u . || chmod og=u `find . -print`
        #
+       # Create .gmo files from .po files.
+       for f in `find . -name '*.po' -type f -print`; do \
+            msgfmt -o `echo $$f | sed -e 's/\.po$$/.gmo/'` $$f ; \
+       done
+       #
        -rm -f $(PACKAGE)-$(VER)
        ln -s proto-toplev $(PACKAGE)-$(VER)
 
-.PHONY: do-tar-bz2
-do-tar-bz2:
-       echo "==> Making $(PACKAGE)-$(VER).tar.bz2"
-       -rm -f $(PACKAGE)-$(VER).tar.bz2
+.PHONY: do-tar
+do-tar:
+       echo "==> Making $(PACKAGE)-$(VER).tar"
+       -rm -f $(PACKAGE)-$(VER).tar
        find $(PACKAGE)-$(VER) -follow -name CVS -prune -o -type f -print \
                | tar cTfh - $(PACKAGE)-$(VER).tar
+
+.PHONY: do-bz2
+do-bz2:
+       echo "==> Bzipping $(PACKAGE)-$(VER).tar.bz2"
+       -rm -f $(PACKAGE)-$(VER).tar.bz2
        $(BZIPPROG) -v -9 $(PACKAGE)-$(VER).tar
 
 .PHONY: do-md5sum
@@ -1924,9 +2094,14 @@ gdb.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
        $(MAKE) -f Makefile.in gdb-taz TOOL=gdb \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(GDB_SUPPORT_DIRS)"
+.PHONY: gdb.tar
+gdb.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
+       $(MAKE) -f Makefile.in gdb-tar TOOL=gdb \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(GDB_SUPPORT_DIRS)"
 
-.PHONY: dejagnu.tar.bz2
 DEJAGNU_SUPPORT_DIRS=  tcl expect libiberty
+.PHONY: dejagnu.tar.bz2
 dejagnu.tar.bz2: $(DIST_SUPPORT) $(DEJAGNU_SUPPORT_DIRS) dejagnu
        $(MAKE) -f Makefile.in taz TOOL=dejagnu \
                MD5PROG="$(MD5PROG)" \
@@ -1938,6 +2113,11 @@ gdb+dejagnu.tar.bz2: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb
        $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=gdb+dejagnu \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)"
+.PHONY: gdb+dejagnu.tar
+gdb+dejagnu.tar: $(DIST_SUPPORT) $(GDBD_SUPPORT_DIRS) gdb
+       $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE=gdb+dejagnu \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(GDBD_SUPPORT_DIRS)"
 
 .PHONY: insight.tar.bz2
 INSIGHT_SUPPORT_DIRS= $(GDB_SUPPORT_DIRS) tcl tk itcl tix libgui
@@ -1945,6 +2125,11 @@ insight.tar.bz2: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
        $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE=insight \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)"
+.PHONY: insight.tar
+insight.tar: $(DIST_SUPPORT) $(GDB_SUPPORT_DIRS) gdb
+       $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE=insight \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(INSIGHT_SUPPORT_DIRS)"
 
 .PHONY: insight+dejagnu.tar.bz2
 INSIGHTD_SUPPORT_DIRS= $(INSIGHT_SUPPORT_DIRS) expect dejagnu
@@ -1952,6 +2137,11 @@ insight+dejagnu.tar.bz2: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb
        $(MAKE) -f Makefile.in gdb-taz TOOL=gdb PACKAGE="insight+dejagnu" \
                MD5PROG="$(MD5PROG)" \
                SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)"
+.PHONY: insight+dejagnu.tar
+insight+dejagnu.tar: $(DIST_SUPPORT) $(INSIGHTD_SUPPORT_DIRS) gdb
+       $(MAKE) -f Makefile.in gdb-tar TOOL=gdb PACKAGE="insight+dejagnu" \
+               MD5PROG="$(MD5PROG)" \
+               SUPPORT_FILES="$(INSIGHTD_SUPPORT_DIRS)"
 
 .PHONY: newlib.tar.bz2
 NEWLIB_SUPPORT_DIRS=libgloss