X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=configure.in;h=4ec0d21a9e12d2d88ecaa2d134ce70a44c522ee6;hb=4bd2b877e855cab0c99a0d9ca9881e3360b3b71b;hp=1b60f7d49db09d06a005e2320a92fec1e77ecbb5;hpb=49fbf4b925552657ef9fe53d8382dfc5d9723ac5;p=pf3gnuchains%2Fgcc-fork.git diff --git a/configure.in b/configure.in index 1b60f7d49db..4ec0d21a9e1 100644 --- a/configure.in +++ b/configure.in @@ -18,6 +18,8 @@ ############################################################################## ### WARNING: this file contains embedded tabs. Do not run untabify on this file. +sinclude(config/acx.m4) + AC_INIT(move-if-change) AC_PREREQ(2.13) AC_CANONICAL_SYSTEM @@ -25,8 +27,8 @@ AC_ARG_PROGRAM # Get 'install' or 'install-sh' and its variants. AC_PROG_INSTALL - -sinclude(config/acx.m4) +ACX_PROG_LN +AC_PROG_LN_S ### we might need to use some other shell than /bin/sh for running subshells ### If we are on Windows, search for the shell. This will permit people @@ -126,7 +128,7 @@ fi # these libraries are used by various programs built for the host environment # -host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib libbanshee" +host_libs="intl mmalloc libiberty opcodes bfd readline tcl tk itcl tix libgui zlib libbanshee libcpp" # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -583,8 +585,13 @@ case "${target}" in *-*-cygwin*) target_configdirs="$target_configdirs target-libtermcap target-winsup" noconfigdirs="$noconfigdirs target-gperf target-libgloss ${libgcj}" - # always build newlib. - skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + # always build newlib if winsup directory is present. + if test -d "$srcdir/winsup" + then + skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` + else + echo "Warning: winsup is missing so newlib can't be built." + fi # Can't build gdb for Cygwin if not native. case "${host}" in @@ -1716,31 +1723,55 @@ case "$enable_gdbtk" in ;; esac -# Create the 'maybe dependencies'. This uses a temporary file. +# Strip out unwanted targets. # While at that, we remove Makefiles if we were started for recursive # configuration, so that the top-level Makefile reconfigures them, # like we used to do when configure itself was recursive. -rm -f maybedep.tmp -echo '# maybedep.tmp' > maybedep.tmp -# Make-targets which may need maybe dependencies. -mts="configure all install check clean distclean dvi info install-info" -mts="${mts} installcheck mostlyclean maintainer-clean TAGS" +# Loop over modules. $extrasub must be used with care, limiting as +# much as possible the usage of range addresses. That's because autoconf +# splits the sed script to overcome limits in the number of commands, +# and relying on carefully-timed sed passes may turn out to be very hard +# to maintain later. In this particular case, you just have to be careful +# not to nest @if/@endif pairs, because configure will not warn you at all. + +AC_ARG_ENABLE([bootstrap], +[ --enable-bootstrap Enable bootstrapping [no]],, +enable_bootstrap=no) +if test -d ${srcdir}/gcc; then + case "$host:$target:$enable_bootstrap" in + $build:$build:yes | *:no) ;; + *:yes) AC_MSG_ERROR([cannot bootstrap a cross-compiler]) ;; + *) AC_MSG_ERROR([invalid option for --enable-bootstrap]) ;; + esac +else + if test $enable_bootstrap = yes; then + AC_MSG_ERROR([cannot bootstrap without a compiler]) + fi +fi + +case "$enable_bootstrap" in + yes) + default_target=bootstrap + bootstrap_suffix=bootstrap ;; + no) + default_target=all + bootstrap_suffix=no-bootstrap ;; +esac +AC_SUBST(default_target) -# Loop over modules and make-targets. for module in ${build_modules} ; do if test -z "${no_recursion}" \ && test -f ${build_subdir}/${module}/Makefile; then echo 1>&2 "*** removing ${build_subdir}/${module}/Makefile to force reconfigure" rm -f ${build_subdir}/${module}/Makefile fi - for mt in ${mts} ; do - case ${mt} in - install) ;; # No installing build modules. - *) echo "maybe-${mt}-build-${module}: ${mt}-build-${module}" >> maybedep.tmp ;; - esac - done + extrasub="$extrasub +/^@if build-$module\$/d +/^@endif build-$module\$/d +/^@if build-$module-$bootstrap_suffix\$/d +/^@endif build-$module-$bootstrap_suffix\$/d" done for module in ${configdirs} ; do if test -z "${no_recursion}" \ @@ -1748,9 +1779,11 @@ for module in ${configdirs} ; do echo 1>&2 "*** removing ${module}/Makefile to force reconfigure" rm -f ${module}/Makefile fi - for mt in ${mts} ; do - echo "maybe-${mt}-${module}: ${mt}-${module}" >> maybedep.tmp - done + extrasub="$extrasub +/^@if $module\$/d +/^@endif $module\$/d +/^@if $module-$bootstrap_suffix\$/d +/^@endif $module-$bootstrap_suffix\$/d" done for module in ${target_configdirs} ; do if test -z "${no_recursion}" \ @@ -1758,12 +1791,15 @@ for module in ${target_configdirs} ; do echo 1>&2 "*** removing ${target_subdir}/${module}/Makefile to force reconfigure" rm -f ${target_subdir}/${module}/Makefile fi - for mt in ${mts} ; do - echo "maybe-${mt}-target-${module}: ${mt}-target-${module}" >> maybedep.tmp - done + extrasub="$extrasub +/^@if target-$module\$/d +/^@endif target-$module\$/d +/^@if target-$module-$bootstrap_suffix\$/d +/^@endif target-$module-$bootstrap_suffix\$/d" done -maybe_dependencies=maybedep.tmp -AC_SUBST_FILE(maybe_dependencies) + +extrasub="$extrasub +/^@if /,/^@endif /d" # Create the serialization dependencies. This uses a temporary file. @@ -2035,7 +2071,7 @@ elif test -d ${srcdir}/gcc; then elif test "$host" = "$target"; then GFORTRAN_FOR_TARGET='gfortran' else - GFORTRAN_FOR_TARGET=`echo gfortran | sed -e 's/x/x/' ${program_transform_name}` + GFORTRAN_FOR_TARGET=`echo gfortran | sed "${program_transform_name}"` fi case $GFORTRAN_FOR_TARGET in *' $(FLAGS_FOR_TARGET)') ;; @@ -2250,6 +2286,36 @@ case $build in esac AC_SUBST(stage1_cflags) +# It makes debugging easier if we create as symlinks the stage directories +# gcc for stageN-gcc and stage-prev for stage(N-1). In case this is not +# possible, however, we can resort to mv. +AC_CACHE_CHECK([if symbolic links between directories work], +[gcc_cv_prog_ln_s_dir], +[if test "${LN_S}" = "ln -s" \ + && mkdir confdir.s1 \ + && ln -s confdir.s1 confdir.s2 \ + && echo timestamp1 > confdir.s1/conftest.1 \ + && cmp confdir.s1/conftest.1 confdir.s2/conftest.1 \ + && echo timestamp2 > confdir.s2/conftest.2 \ + && cmp confdir.s1/conftest.2 confdir.s1/conftest.2 \ + && rm -f confdir.s2; then + gcc_cv_prog_ln_s_dir=yes +else + gcc_cv_prog_ln_s_dir=yes +fi +rm -rf confdir.s1 confdir.s2]) + +case ${gcc_cv_prog_ln_s_dir} in + yes) + CREATE_LINK_TO_DIR='ln -s $$1 $$2' + UNDO_LINK_TO_DIR='rm -f $$1' ;; + *) + CREATE_LINK_TO_DIR='mv $$1 $$2' + UNDO_LINK_TO_DIR='mv $$1 $$2' ;; +esac +AC_SUBST(CREATE_LINK_TO_DIR) +AC_SUBST(UNDO_LINK_TO_DIR) + # Enable -Werror in bootstrap stage2 and later. # Change the default to "no" on release branches. AC_ARG_ENABLE(werror,