##############################################################################
### 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
# 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
*-*-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
# 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)
+
for module in ${build_modules} ; do
if test -z "${no_recursion}" \
&& test -f ${build_subdir}/${module}/Makefile; then
fi
extrasub="$extrasub
/^@if build-$module\$/d
-/^@endif 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}" \
fi
extrasub="$extrasub
/^@if $module\$/d
-/^@endif $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}" \
fi
extrasub="$extrasub
/^@if target-$module\$/d
-/^@endif target-$module\$/d"
+/^@endif target-$module\$/d
+/^@if target-$module-$bootstrap_suffix\$/d
+/^@endif target-$module-$bootstrap_suffix\$/d"
done
+
extrasub="$extrasub
/^@if /,/^@endif /d"
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)') ;;
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,