From 9bd6112c5a2585eb58564f583ad84da87fe27d3a Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Fri, 17 Nov 2006 10:31:47 +0000 Subject: [PATCH] re PR ada/29802 (wrong directory in makefile for ada and libada when srcdir=.) 2006-11-16 Paolo Bonzini * Makefile.tpl (clean-target-libgcc): Test for gcc Makefile presence. (unstage): Test for stage_last presence. PR bootstrap/29802 * Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Add HOST_SUBDIR in STAGE_PREFIX. * Makefile.in: Regenerate. libada: 2006-11-16 Paolo Bonzini PR bootstrap/29802 * configure.ac: Call GCC_TOPLEV_SUBDIRS. * configure: Regenerate. * Makefile.in: Replace host_subdir. From-SVN: r118927 --- ChangeLog | 9 ++ Makefile.in | 28 ++--- Makefile.tpl | 6 +- libada/ChangeLog | 7 ++ libada/Makefile.in | 3 +- libada/configure | 254 +++++++++++++++++++++++++++++++++++--------- libada/configure.ac | 19 ++-- 7 files changed, 252 insertions(+), 74 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b77cf7f921..d8292d680ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-11-16 Paolo Bonzini + + * Makefile.tpl (clean-target-libgcc): Test for gcc Makefile presence. + (unstage): Test for stage_last presence. + + PR bootstrap/29802 + * Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Add HOST_SUBDIR in STAGE_PREFIX. + * Makefile.in: Regenerate. + 2003-11-16 Zdenek Dvorak * MAINTAINERS: Add myself and Daniel Berlin as loop optimizer diff --git a/Makefile.in b/Makefile.in index f95803c23a7..3e917139fa5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2084,7 +2084,7 @@ realclean: maintainer-clean # Extra dependency for clean-target, owing to the mixed nature of gcc. clean-target: clean-target-libgcc clean-target-libgcc: - test ! -d gcc || (cd gcc && $(MAKE) $@) + if test -f gcc/Makefile; then cd gcc && $(MAKE) $@; else :; fi # Check target. @@ -4470,7 +4470,7 @@ configure-stage1-bfd: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif bfd-bootstrap .PHONY: configure-stage2-bfd maybe-configure-stage2-bfd @@ -5225,7 +5225,7 @@ configure-stage1-opcodes: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif opcodes-bootstrap .PHONY: configure-stage2-opcodes maybe-configure-stage2-opcodes @@ -5980,7 +5980,7 @@ configure-stage1-binutils: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif binutils-bootstrap .PHONY: configure-stage2-binutils maybe-configure-stage2-binutils @@ -11792,7 +11792,7 @@ configure-stage1-gas: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif gas-bootstrap .PHONY: configure-stage2-gas maybe-configure-stage2-gas @@ -12547,7 +12547,7 @@ configure-stage1-gcc: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif gcc-bootstrap .PHONY: configure-stage2-gcc maybe-configure-stage2-gcc @@ -16074,7 +16074,7 @@ configure-stage1-intl: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif intl-bootstrap .PHONY: configure-stage2-intl maybe-configure-stage2-intl @@ -17606,7 +17606,7 @@ configure-stage1-ld: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif ld-bootstrap .PHONY: configure-stage2-ld maybe-configure-stage2-ld @@ -18361,7 +18361,7 @@ configure-stage1-libcpp: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif libcpp-bootstrap .PHONY: configure-stage2-libcpp maybe-configure-stage2-libcpp @@ -19116,7 +19116,7 @@ configure-stage1-libdecnumber: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif libdecnumber-bootstrap .PHONY: configure-stage2-libdecnumber maybe-configure-stage2-libdecnumber @@ -20267,7 +20267,7 @@ configure-stage1-libiberty: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif libiberty-bootstrap .PHONY: configure-stage2-libiberty maybe-configure-stage2-libiberty @@ -30109,7 +30109,7 @@ configure-stage1-zlib: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ \ - --disable-intermodule --enable-checking --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" + --disable-intermodule --disable-coverage --enable-languages="$(STAGE1_LANGUAGES)" @endif zlib-bootstrap .PHONY: configure-stage2-zlib maybe-configure-stage2-zlib @@ -41812,7 +41812,7 @@ stage = : current_stage = "" @if gcc-bootstrap -unstage = [ -f stage_current ] || $(MAKE) `cat stage_last`-start +unstage = if [ -f stage_last ]; then [ -f stage_current ] || $(MAKE) `cat stage_last`-start || exit 1; else :; fi stage = if [ -f stage_current ]; then $(MAKE) `cat stage_current`-end || exit 1; else :; fi current_stage = "`cat stage_current 2> /dev/null`" @endif gcc-bootstrap @@ -41855,7 +41855,7 @@ objext = .o # Flags to pass to stage2 and later makes. POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ - STAGE_PREFIX=$$r/prev-gcc/ \ + STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \ CFLAGS="$(BOOT_CFLAGS)" \ LIBCFLAGS="$(BOOT_CFLAGS)" \ LDFLAGS="$(BOOT_LDFLAGS)" \ diff --git a/Makefile.tpl b/Makefile.tpl index 5ce38abd853..7e9cb79d43f 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -591,7 +591,7 @@ realclean: maintainer-clean # Extra dependency for clean-target, owing to the mixed nature of gcc. clean-target: clean-target-libgcc clean-target-libgcc: - test ! -d gcc || (cd gcc && $(MAKE) $@) + if test -f gcc/Makefile; then cd gcc && $(MAKE) $@; else :; fi # Check target. @@ -1215,7 +1215,7 @@ stage = : current_stage = "" @if gcc-bootstrap -unstage = [ -f stage_current ] || $(MAKE) `cat stage_last`-start +unstage = if [ -f stage_last ]; then [ -f stage_current ] || $(MAKE) `cat stage_last`-start || exit 1; else :; fi stage = if [ -f stage_current ]; then $(MAKE) `cat stage_current`-end || exit 1; else :; fi current_stage = "`cat stage_current 2> /dev/null`" @endif gcc-bootstrap @@ -1258,7 +1258,7 @@ objext = .o # Flags to pass to stage2 and later makes. POSTSTAGE1_FLAGS_TO_PASS = \ CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \ - STAGE_PREFIX=$$r/prev-gcc/ \ + STAGE_PREFIX="$$r/$(HOST_SUBDIR)/prev-gcc/" \ CFLAGS="$(BOOT_CFLAGS)" \ LIBCFLAGS="$(BOOT_CFLAGS)" \ LDFLAGS="$(BOOT_LDFLAGS)" \ diff --git a/libada/ChangeLog b/libada/ChangeLog index 2b0ea5efa49..50626693c9a 100644 --- a/libada/ChangeLog +++ b/libada/ChangeLog @@ -1,3 +1,10 @@ +2006-11-16 Paolo Bonzini + + PR bootstrap/29802 + * configure.ac: Call GCC_TOPLEV_SUBDIRS. + * configure: Regenerate. + * Makefile.in: Replace host_subdir. + 2006-10-16 Brooks Moses * Makefile.in: Add dummy "pdf" target. diff --git a/libada/Makefile.in b/libada/Makefile.in index 5a7bfcc5d0a..07407a4fd2a 100644 --- a/libada/Makefile.in +++ b/libada/Makefile.in @@ -49,7 +49,8 @@ X_ADA_CFLAGS=@x_ada_cflags@ ALL_ADA_CFLAGS=$(X_ADA_CFLAGS) $(T_ADA_CFLAGS) $(ADA_CFLAGS) # For finding the GCC build dir, which is used far too much -GCC_DIR=../../$(HOST_SUBDIR)/gcc +host_subdir = @host_subdir@ +GCC_DIR=../../$(host_subdir)/gcc # Include fragment generated by GCC configure. include $(GCC_DIR)/libada-mk diff --git a/libada/configure b/libada/configure index 5243b5630be..8267eb3f43c 100755 --- a/libada/configure +++ b/libada/configure @@ -272,7 +272,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="Makefile.in" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS MAINT enable_shared build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os LN_S x_ada_cflags default_gnatlib_target LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical build_libsubdir build_subdir host_subdir target_subdir MAINT enable_shared LN_S x_ada_cflags default_gnatlib_target LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -793,6 +793,11 @@ Optional Features: sometimes confusing) to the casual installer --disable-shared don't provide a shared libgnat +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-build-libsubdir=DIR Directory where to find libraries for build system + _ACEOF fi @@ -881,7 +886,7 @@ esac else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd "$ac_popdir" + cd $ac_popdir done fi @@ -1232,49 +1237,102 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -# Command-line options. -# Very limited version of AC_MAINTAINER_MODE. -# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - case ${enable_maintainer_mode} in - yes) MAINT='' ;; - no) MAINT='#' ;; - *) { { echo "$as_me:$LINENO: error: --enable-maintainer-mode must be yes or no" >&5 -echo "$as_me: error: --enable-maintainer-mode must be yes or no" >&2;} - { (exit 1); exit 1; }; } ;; - esac - maintainer_mode=${enableval} -else - MAINT='#' -fi; - -# Check whether --enable-shared or --disable-shared was given. -if test "${enable_shared+set}" = set; then - enableval="$enable_shared" - -case $enable_shared in - yes | no) ;; - *) - enable_shared=no - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - case $pkg in - ada | libada) - enable_shared=yes ;; - esac - done - IFS="$ac_save_ifs" - ;; -esac - -else - enable_shared=yes -fi; +# Autoconf M4 include file defining utility macros for complex Canadian +# cross builds. -# Start of actual configure tests + + + + + + +#### +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# or AC_INIT. +# These demand that AC_CANONICAL_SYSTEM be called beforehand. + +#### +# NCN_STRICT_CHECK_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) +# Like plain AC_CHECK_TOOLS, but require prefix if build!=host. + + +#### +# NCN_STRICT_CHECK_TARGET_TOOLS(variable, progs-to-check-for,[value-if-not-found],[path]) +# Like CVS Autoconf AC_CHECK_TARGET_TOOLS, but require prefix if build!=target. + + + +# Backported from Autoconf 2.5x; can go away when and if +# we switch. Put the OS path separator in $PATH_SEPARATOR. + + + + +# ACX_HAVE_GCC_FOR_TARGET +# Check if the variable GCC_FOR_TARGET really points to a GCC binary. + + +# ACX_CHECK_INSTALLED_TARGET_TOOL(VAR, PROG) +# Searching for installed target binutils. We need to take extra care, +# else we may find the wrong assembler, linker, etc., and lose. +# +# First try --with-build-time-tools, if specified. +# +# For build != host, we ask the installed GCC for the name of the tool it +# uses, and accept it if it is an absolute path. This is because the +# only good choice for a compiler is the same GCC version that is being +# installed (or we couldn't make target libraries), and we assume that +# on the host system we'll have not only the same GCC version, but also +# the same binutils version. +# +# For build == host, search the same directories that the installed +# compiler will search. We used to do this for the assembler, linker, +# and nm only; for simplicity of configuration, however, we extend this +# criterion to tools (such as ar and ranlib) that are never invoked by +# the compiler, to avoid mismatches. +# +# Also note we have to check MD_EXEC_PREFIX before checking the user's path +# if build == target. This makes the most sense only when bootstrapping, +# but we also do so when build != host. In this case, we hope that the +# build and host systems will have similar contents of MD_EXEC_PREFIX. +# +# If we do not find a suitable binary, then try the user's path. + + +### +# AC_PROG_CPP_WERROR +# Used for autoconf 2.5x to force AC_PREPROC_IFELSE to reject code which +# triggers warnings from the preprocessor. Will be in autoconf 2.58. +# For now, using this also overrides header checks to use only the +# preprocessor (matches 2.13 behavior; matching 2.58's behavior is a +# bit harder from here). +# Eventually autoconf will default to checking headers with the compiler +# instead, and we'll have to do this differently. + +# AC_PROG_CPP_WERROR + +# Test for GNAT. +# We require the gnatbind program, and a compiler driver that +# understands Ada. We use the user's CC setting, already found. +# +# Sets the shell variable have_gnat to yes or no as appropriate, and +# substitutes GNATBIND. + + + + + + + + + + + + + +# Determine the host, build, and target systems ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then @@ -1383,6 +1441,98 @@ test -n "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- +# Determine the noncanonical target name, for directory use. + case ${build_alias} in + "") build_noncanonical=${build} ;; + *) build_noncanonical=${build_alias} ;; +esac + + case ${host_alias} in + "") host_noncanonical=${build_noncanonical} ;; + *) host_noncanonical=${host_alias} ;; +esac + + case ${target_alias} in + "") target_noncanonical=${host_noncanonical} ;; + *) target_noncanonical=${target_alias} ;; +esac + + + + +# Determine the target- and build-specific subdirectories + +# post-stage1 host modules use a different CC_FOR_BUILD so, in order to +# have matching libraries, they should use host libraries: Makefile.tpl +# arranges to pass --with-build-libsubdir=$(HOST_SUBDIR). +# However, they still use the build modules, because the corresponding +# host modules (e.g. bison) are only built for the host when bootstrap +# finishes. So: +# - build_subdir is where we find build modules, and never changes. +# - build_libsubdir is where we find build libraries, and can be overridden. + +# Prefix 'build-' so this never conflicts with target_subdir. +build_subdir="build-${build_noncanonical}" + +# Check whether --with-build-libsubdir or --without-build-libsubdir was given. +if test "${with_build_libsubdir+set}" = set; then + withval="$with_build_libsubdir" + build_libsubdir="$withval" +else + build_libsubdir="$build_subdir" +fi; +# --srcdir=. covers the toplevel, while "test -d" covers the subdirectories +if ( test $srcdir = . && test -d gcc ) \ + || test -d $srcdir/../host-${host_noncanonical}; then + host_subdir="host-${host_noncanonical}" +else + host_subdir=. +fi +# No prefix. +target_subdir=${target_noncanonical} + + +# Command-line options. +# Very limited version of AC_MAINTAINER_MODE. +# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + case ${enable_maintainer_mode} in + yes) MAINT='' ;; + no) MAINT='#' ;; + *) { { echo "$as_me:$LINENO: error: --enable-maintainer-mode must be yes or no" >&5 +echo "$as_me: error: --enable-maintainer-mode must be yes or no" >&2;} + { (exit 1); exit 1; }; } ;; + esac + maintainer_mode=${enableval} +else + MAINT='#' +fi; + +# Check whether --enable-shared or --disable-shared was given. +if test "${enable_shared+set}" = set; then + enableval="$enable_shared" + +case $enable_shared in + yes | no) ;; + *) + enable_shared=no + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," + for pkg in $enableval; do + case $pkg in + ada | libada) + enable_shared=yes ;; + esac + done + IFS="$ac_save_ifs" + ;; +esac + +else + enable_shared=yes +fi; + + # Need to pass this down for now :-P echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 @@ -2051,8 +2201,6 @@ s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t -s,@MAINT@,$MAINT,;t t -s,@enable_shared@,$enable_shared,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t @@ -2065,6 +2213,13 @@ s,@target@,$target,;t t s,@target_cpu@,$target_cpu,;t t s,@target_vendor@,$target_vendor,;t t s,@target_os@,$target_os,;t t +s,@target_noncanonical@,$target_noncanonical,;t t +s,@build_libsubdir@,$build_libsubdir,;t t +s,@build_subdir@,$build_subdir,;t t +s,@host_subdir@,$host_subdir,;t t +s,@target_subdir@,$target_subdir,;t t +s,@MAINT@,$MAINT,;t t +s,@enable_shared@,$enable_shared,;t t s,@LN_S@,$LN_S,;t t s,@x_ada_cflags@,$x_ada_cflags,;t t s,@default_gnatlib_target@,$default_gnatlib_target,;t t @@ -2232,6 +2387,11 @@ esac + if test x"$ac_file" != x-; then + { echo "$as_me:$LINENO: creating $ac_file" >&5 +echo "$as_me: creating $ac_file" >&6;} + rm -f "$ac_file" + fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ @@ -2270,12 +2430,6 @@ echo "$as_me: error: cannot find input file: $f" >&2;} fi;; esac done` || { (exit 1); exit 1; } - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub diff --git a/libada/configure.ac b/libada/configure.ac index a9b4a698710..837e08370f6 100644 --- a/libada/configure.ac +++ b/libada/configure.ac @@ -20,6 +20,19 @@ AC_PREREQ([2.59]) AC_CONFIG_SRCDIR([Makefile.in]) +sinclude(../config/acx.m4) + +# Determine the host, build, and target systems +AC_CANONICAL_BUILD +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +# Determine the noncanonical target name, for directory use. +ACX_NONCANONICAL_TARGET + +# Determine the target- and build-specific subdirectories +GCC_TOPLEV_SUBDIRS + # Command-line options. # Very limited version of AC_MAINTAINER_MODE. AC_ARG_ENABLE([maintainer-mode], @@ -56,12 +69,6 @@ esac ], [enable_shared=yes]) AC_SUBST([enable_shared]) -# Start of actual configure tests - -AC_CANONICAL_BUILD -AC_CANONICAL_HOST -AC_CANONICAL_TARGET - # Need to pass this down for now :-P AC_PROG_LN_S