Newer
Older
Alexandre Oliva
committed
# would be better to flag an error than risking having
# incompatible object files being constructed. We can't
# guarantee that an error will be flagged, but let's hope the
# compiler will do it, when presented with incompatible header
# files.
fi
Alexandre Oliva
committed
fi
case "${target}-${is_cross_compiler}" in
i[[3456789]]86-*-linux*-no)
# Here host == target, so we don't need to build gcc,
# so we don't want to discard standard headers.
FLAGS_FOR_TARGET=`echo " $FLAGS_FOR_TARGET " | sed -e 's/ -nostdinc / /'`
;;
*)
# If we're building newlib, use its generic headers last, but search
# for any libc-related directories first (so make it the last -B
# switch).
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$$r/$(TARGET_SUBDIR)/newlib/ -isystem $$r/$(TARGET_SUBDIR)/newlib/targ-include -isystem $$s/newlib/libc/include'
;;
esac
Alexandre Oliva
committed
esac
;;
Alexandre Oliva
committed
# Allow the user to override the flags for
# our build compiler if desired.
CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
Alexandre Oliva
committed
# On Canadian crosses, we'll be searching the right directories for
# the previously-installed cross compiler, so don't bother to add
# flags for directories within the install tree of the compiler
# being built; programs in there won't even run.
if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then
# Search for pre-installed headers if nothing else fits.
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include'
Alexandre Oliva
committed
if test "x${use_gnu_ld}" = x &&
echo " ${configdirs} " | grep " ld " > /dev/null ; then
# Arrange for us to find uninstalled linker scripts.
FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -L$$r/$(HOST_SUBDIR)/ld'
for frag in host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag;
do
eval fragval=\$$frag
if test $fragval != /dev/null; then
eval $frag=${srcdir}/$fragval
fi
done
AC_SUBST_FILE(host_makefile_frag)
AC_SUBST_FILE(target_makefile_frag)
AC_SUBST_FILE(alphaieee_frag)
AC_SUBST_FILE(ospace_frag)
# Miscellanea: directories, flags, etc.
AC_SUBST(RPATH_ENVVAR)
AC_SUBST(BUILD_PREFIX)
AC_SUBST(BUILD_PREFIX_1)
AC_SUBST(tooldir)
AC_SUBST(build_tooldir)
AC_SUBST(GDB_TK)
# Build module lists & subconfigure args.
AC_SUBST(build_configargs)
AC_SUBST(build_configdirs)
# Host module lists & subconfigure args.
AC_SUBST(host_configargs)
AC_SUBST(configdirs)
# Target module lists & subconfigure args.
AC_SUBST(target_configargs)
AC_SUBST(target_configdirs)
# Build tools.
AC_SUBST(CC_FOR_BUILD)
AC_SUBST(config_shell)
# Host tools.
NCN_STRICT_CHECK_TOOLS(AR, ar)
NCN_STRICT_CHECK_TOOLS(AS, as)
NCN_STRICT_CHECK_TOOLS(DLLTOOL, dlltool)
NCN_STRICT_CHECK_TOOLS(LD, ld)
NCN_STRICT_CHECK_TOOLS(NM, nm)
NCN_STRICT_CHECK_TOOLS(RANLIB, ranlib, :)
NCN_STRICT_CHECK_TOOLS(WINDRES, windres)
NCN_STRICT_CHECK_TOOLS(OBJCOPY, objcopy)
NCN_STRICT_CHECK_TOOLS(OBJDUMP, objdump)
AC_SUBST(CC)
AC_SUBST(CXX)
AC_SUBST(CFLAGS)
AC_SUBST(CFLAGS_FOR_BUILD)
# Target tools. Do the tests using the names they may have passed in
# the environment, then move it to CONFIGURED_*_FOR_TARGET.
NCN_STRICT_CHECK_TARGET_TOOLS(AR_FOR_TARGET, ar)
NCN_STRICT_CHECK_TARGET_TOOLS(AS_FOR_TARGET, as)
NCN_STRICT_CHECK_TARGET_TOOLS(CC_FOR_TARGET, cc gcc)
NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TARGET, c++ g++ cxx gxx)
NCN_STRICT_CHECK_TARGET_TOOLS(DLLTOOL_FOR_TARGET, dlltool)
NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
NCN_STRICT_CHECK_TARGET_TOOLS(LD_FOR_TARGET, ld)
NCN_STRICT_CHECK_TARGET_TOOLS(NM_FOR_TARGET, nm)
NCN_STRICT_CHECK_TARGET_TOOLS(RANLIB_FOR_TARGET, ranlib, :)
NCN_STRICT_CHECK_TARGET_TOOLS(WINDRES_FOR_TARGET, windres)
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
CONFIGURED_AR_FOR_TARGET="$AR_FOR_TARGET"
CONFIGURED_AS_FOR_TARGET="$AS_FOR_TARGET"
CONFIGURED_CC_FOR_TARGET="$CC_FOR_TARGET"
CONFIGURED_CXX_FOR_TARGET="$CXX_FOR_TARGET"
CONFIGURED_DLLTOOL_FOR_TARGET="$DLLTOOL_FOR_TARGET"
CONFIGURED_GCC_FOR_TARGET="$GCC_FOR_TARGET"
CONFIGURED_GCJ_FOR_TARGET="$GCJ_FOR_TARGET"
CONFIGURED_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET"
CONFIGURED_LD_FOR_TARGET="$LD_FOR_TARGET"
CONFIGURED_NM_FOR_TARGET="$NM_FOR_TARGET"
CONFIGURED_RANLIB_FOR_TARGET="$RANLIB_FOR_TARGET"
CONFIGURED_WINDRES_FOR_TARGET="$WINDRES_FOR_TARGET"
AC_SUBST(CONFIGURED_AR_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_AS_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_CC_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_CXX_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_DLLTOOL_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_GCC_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_GCJ_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_GFORTRAN_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_LD_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_NM_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_RANLIB_FOR_TARGET)dnl
AC_SUBST(CONFIGURED_WINDRES_FOR_TARGET)dnl
AC_SUBST(FLAGS_FOR_TARGET)
# Fix up target tools.
if test "x${build}" = "x${host}" ; then
# In this case, the newly built tools can and should be used,
# so we override the results of the autoconf tests.
# This should really only happen when the tools are actually being built,
# but that's a further refinement. The new build scheme, where
# tools are built into a structure paralleling where they're installed,
# should also eliminate all of this cleanly.
AR_FOR_TARGET="\$(USUAL_AR_FOR_TARGET)"
AS_FOR_TARGET="\$(USUAL_AS_FOR_TARGET)"
CC_FOR_TARGET="\$(USUAL_CC_FOR_TARGET)"
CXX_FOR_TARGET="\$(USUAL_CXX_FOR_TARGET)"
RAW_CXX_FOR_TARGET="\$(USUAL_RAW_CXX_FOR_TARGET)"
DLLTOOL_FOR_TARGET="\$(USUAL_DLLTOOL_FOR_TARGET)"
GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
GCJ_FOR_TARGET="\$(USUAL_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(USUAL_GFORTRAN_FOR_TARGET)"
LD_FOR_TARGET="\$(USUAL_LD_FOR_TARGET)"
NM_FOR_TARGET="\$(USUAL_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(USUAL_RANLIB_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(USUAL_WINDRES_FOR_TARGET)"
Nathanael Nerode
committed
else
# Just use the ones we found.
AR_FOR_TARGET="\$(CONFIGURED_AR_FOR_TARGET)"
AS_FOR_TARGET="\$(CONFIGURED_AS_FOR_TARGET)"
CC_FOR_TARGET="\$(CONFIGURED_CC_FOR_TARGET)"
CXX_FOR_TARGET="\$(CONFIGURED_CXX_FOR_TARGET)"
RAW_CXX_FOR_TARGET="\$(CONFIGURED_CXX_FOR_TARGET)"
Nathanael Nerode
committed
DLLTOOL_FOR_TARGET="\$(CONFIGURED_DLLTOOL_FOR_TARGET)"
GCC_FOR_TARGET="\$(CONFIGURED_GCC_FOR_TARGET)"
GCJ_FOR_TARGET="\$(CONFIGURED_GCJ_FOR_TARGET)"
GFORTRAN_FOR_TARGET="\$(CONFIGURED_GFORTRAN_FOR_TARGET)"
Nathanael Nerode
committed
LD_FOR_TARGET="\$(CONFIGURED_LD_FOR_TARGET)"
NM_FOR_TARGET="\$(CONFIGURED_NM_FOR_TARGET)"
RANLIB_FOR_TARGET="\$(CONFIGURED_RANLIB_FOR_TARGET)"
WINDRES_FOR_TARGET="\$(CONFIGURED_WINDRES_FOR_TARGET)"
AC_SUBST(RAW_CXX_FOR_TARGET)
Nathanael Nerode
committed
# Certain tools may need extra flags.
AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target}
RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target}
NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target}
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
AC_ARG_ENABLE(maintainer-mode,
[ --enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer],
USE_MAINTAINER_MODE=$enableval,
USE_MAINTAINER_MODE=no)
AC_MSG_RESULT($USE_MAINTAINER_MODE)
AC_SUBST(MAINTAINER_MODE_TRUE)
AC_SUBST(MAINTAINER_MODE_FALSE)
if test "$USE_MAINTAINER_MODE" = yes; then
MAINTAINER_MODE_TRUE=
MAINTAINER_MODE_FALSE='#'
else
MAINTAINER_MODE_TRUE='#'
MAINTAINER_MODE_FALSE=
fi
MAINT=$MAINTAINER_MODE_TRUE
AC_SUBST(MAINT)dnl
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
# ---------------------
# GCC bootstrap support
# ---------------------
# Stage specific cflags for build.
stage1_cflags="-g"
case $build in
vax-*-*)
case ${GCC} in
yes) stage1_cflags="-g -Wa,-J" ;;
*) stage1_cflags="-g -J" ;;
esac ;;
powerpc-*-darwin*)
# The spiffy cpp-precomp chokes on some legitimate constructs in GCC
# sources; use -no-cpp-precomp to get to GNU cpp.
# Apple's GCC has bugs in designated initializer handling, so disable
# that too.
stage1_cflags="-g -no-cpp-precomp -DHAVE_DESIGNATED_INITIALIZERS=0"
;;
esac
AC_SUBST(stage1_cflags)
# It makes debugging easier if we create as symlinks the stage directories
# gcc for stageN-gcc and stagePREV-gcc 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=no
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,
[ --enable-werror enable -Werror in bootstrap stage2 and later], [],
[enable_werror=yes])
Nathanael Nerode
committed
case ${enable_werror} in
yes) stage2_werror_flag="--enable-werror-always" ;;
*) stage2_werror_flag="" ;;
esac
Nathanael Nerode
committed
AC_SUBST(stage2_werror_flag)