mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 10:54:07 +08:00
(top level)
2004-03-08 Paolo Bonzini <bonzini@gnu.org> PR ada/14131 Move language detection to the top level. * configure.in: Find default values for the tools as soon as possible. Disable ada if GNAT is not found. Emit error message about missing languages. Expand --enable-languages=all for the gcc subdirectory. (config) 2004-03-08 Paolo Bonzini <bonzini@gnu.org> PR ada/14131 Move language detection to the top level. * acx.m4 (ACX_PROG_GNAT): New macro, moved here from the gcc subdirectory. (gcc) 2004-03-08 Paolo Bonzini <bonzini@gnu.org> PR ada/14131 Move language detection to the top level. * configure.ac: Remove code to detect languages, it now lives exclusively in the top level. * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the top level, renamed to ACX_PROG_GNAT. (gcc/ada) 2004-03-08 Paolo Bonzini <bonzini@gnu.org> PR ada/14131 Move language detection to the top level. * config-lang.in: Build by default. From-SVN: r79299
This commit is contained in:
parent
e46e9f822e
commit
e4c9c07571
@ -1,3 +1,12 @@
|
||||
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR ada/14131
|
||||
Move language detection to the top level.
|
||||
* configure.in: Find default values for the tools as
|
||||
soon as possible. Disable ada if GNAT is not found.
|
||||
Emit error message about missing languages. Expand
|
||||
--enable-languages=all for the gcc subdirectory.
|
||||
|
||||
2004-03-10 Ben Elliston <bje@gnu.org>
|
||||
|
||||
* MAINTAINERS: Update my email address.
|
||||
|
@ -1,3 +1,10 @@
|
||||
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR ada/14131
|
||||
Move language detection to the top level.
|
||||
* acx.m4 (ACX_PROG_GNAT): New macro, moved here
|
||||
from the gcc subdirectory.
|
||||
|
||||
2004-03-09 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* accross.m4 (AC_C_BIGENDIAN_CROSS): Compile endian probe with
|
||||
|
@ -155,3 +155,38 @@ AC_DEFUN([AC_PROG_CPP_WERROR],
|
||||
[AC_REQUIRE([AC_PROG_CPP])dnl
|
||||
m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD]))
|
||||
ac_c_preproc_warn_flag=yes])# 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.
|
||||
AC_DEFUN([ACX_PROG_GNAT],
|
||||
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_CHECK_TOOL(GNATBIND, gnatbind, no)
|
||||
AC_CACHE_CHECK([whether compiler driver understands Ada],
|
||||
acx_cv_cc_gcc_supports_ada,
|
||||
[cat >conftest.adb <<EOF
|
||||
procedure conftest is begin null; end conftest;
|
||||
EOF
|
||||
acx_cv_cc_gcc_supports_ada=no
|
||||
# There is a bug in old released versions of GCC which causes the
|
||||
# driver to exit successfully when the appropriate language module
|
||||
# has not been installed. This is fixed in 2.95.4, 3.0.2, and 3.1.
|
||||
# Therefore we must check for the error message as well as an
|
||||
# unsuccessful exit.
|
||||
errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
|
||||
if test x"$errors" = x; then
|
||||
acx_cv_cc_gcc_supports_ada=yes
|
||||
break
|
||||
fi
|
||||
rm -f conftest.*])
|
||||
|
||||
if test x$GNATBIND != xno && test x$acx_cv_gcc_supports_ada != xno; then
|
||||
have_gnat=yes
|
||||
else
|
||||
have_gnat=no
|
||||
fi
|
||||
])
|
||||
|
834
configure.in
834
configure.in
@ -747,97 +747,448 @@ case "${noconfigdirs}" in
|
||||
*target-newlib*) noconfigdirs="$noconfigdirs target-libgloss" ;;
|
||||
esac
|
||||
|
||||
# Work in distributions that contain no compiler tools, like Autoconf.
|
||||
tentative_cc=""
|
||||
host_makefile_frag=/dev/null
|
||||
if test -d ${srcdir}/config ; then
|
||||
case "${host}" in
|
||||
m68k-hp-hpux*)
|
||||
# Avoid "too much defining" errors from HPUX compiler.
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
# If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
|
||||
# If it's HP/UX ar, this should be harmless.
|
||||
RANLIB="ar ts"
|
||||
;;
|
||||
m68k-apollo-sysv*)
|
||||
tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
|
||||
;;
|
||||
m68k-apollo-bsd*)
|
||||
#None of the Apollo compilers can compile gas or binutils. The preprocessor
|
||||
# chokes on bfd, the compiler won't let you assign integers to enums, and
|
||||
# other problems. Defining CC to gcc is a questionable way to say "don't use
|
||||
# the apollo compiler" (the preferred version of GCC could be called cc,
|
||||
# or whatever), but I'm not sure leaving CC as cc is any better...
|
||||
#CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
|
||||
# Used to have BISON=yacc.
|
||||
tentative_cc=gcc
|
||||
;;
|
||||
m88k-dg-dgux*)
|
||||
tentative_cc="gcc -Wall -ansi -D__using_DGUX"
|
||||
;;
|
||||
m88k-harris-cxux*)
|
||||
# Under CX/UX, we want to tell the compiler to use ANSI mode.
|
||||
tentative_cc="cc -Xa"
|
||||
host_makefile_frag="config/mh-cxux"
|
||||
;;
|
||||
m88k-motorola-sysv*)
|
||||
;;
|
||||
mips*-dec-ultrix*)
|
||||
tentative_cc="cc -Wf,-XNg1000"
|
||||
host_makefile_frag="config/mh-decstation"
|
||||
;;
|
||||
mips*-nec-sysv4*)
|
||||
# The C compiler on NEC MIPS SVR4 needs bigger tables.
|
||||
tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
|
||||
host_makefile_frag="config/mh-necv4"
|
||||
;;
|
||||
mips*-sgi-irix4*)
|
||||
# Tell compiler to use K&R C. We can't compile under the SGI Ansi
|
||||
# environment. Also bump switch table size so that cp-parse will
|
||||
# compile. Bump string length limit so linker builds.
|
||||
tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
|
||||
;;
|
||||
mips*-*-sysv4*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
mips*-*-sysv*)
|
||||
# This is for a MIPS running RISC/os 4.52C.
|
||||
|
||||
# This is needed for GDB, but needs to be in the top-level make because
|
||||
# if a library is compiled with the bsd headers and gets linked with the
|
||||
# sysv system libraries all hell can break loose (e.g. a jmp_buf might be
|
||||
# a different size).
|
||||
# ptrace(2) apparently has problems in the BSD environment. No workaround is
|
||||
# known except to select the sysv environment. Could we use /proc instead?
|
||||
# These "sysv environments" and "bsd environments" often end up being a pain.
|
||||
#
|
||||
# This is not part of CFLAGS because perhaps not all C compilers have this
|
||||
# option.
|
||||
tentative_cc="cc -systype sysv"
|
||||
;;
|
||||
i370-ibm-opened*)
|
||||
tentative_cc="c89"
|
||||
;;
|
||||
i[[3456789]]86-*-sysv5*)
|
||||
host_makefile_frag="config/mh-sysv5"
|
||||
;;
|
||||
i[[3456789]]86-*-dgux*)
|
||||
tentative_cc="gcc -Wall -ansi -D__using_DGUX"
|
||||
host_makefile_frag="config/mh-dgux386"
|
||||
;;
|
||||
i[[3456789]]86-ncr-sysv4.3*)
|
||||
# The MetaWare compiler will generate a copyright message unless you
|
||||
# turn it off by adding the -Hnocopyr flag.
|
||||
tentative_cc="cc -Hnocopyr"
|
||||
;;
|
||||
i[[3456789]]86-ncr-sysv4*)
|
||||
# for an NCR 3000 (i486/SVR4) system.
|
||||
# The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
|
||||
# This compiler not only emits obnoxious copyright messages every time
|
||||
# you run it, but it chokes and dies on a whole bunch of GNU source
|
||||
# files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
|
||||
tentative_cc="/usr/ccs/ATT/cc"
|
||||
host_makefile_frag="config/mh-ncr3000"
|
||||
;;
|
||||
i[[3456789]]86-*-sco3.2v5*)
|
||||
;;
|
||||
i[[3456789]]86-*-sco*)
|
||||
# The native C compiler botches some simple uses of const. Unfortunately,
|
||||
# it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
|
||||
tentative_cc="cc -Dconst="
|
||||
host_makefile_frag="config/mh-sco"
|
||||
;;
|
||||
i[[3456789]]86-*-udk*)
|
||||
host_makefile_frag="config/mh-sysv5"
|
||||
;;
|
||||
i[[3456789]]86-*-solaris2*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
i[[3456789]]86-*-msdosdjgpp*)
|
||||
host_makefile_frag="config/mh-djgpp"
|
||||
;;
|
||||
*-cygwin*)
|
||||
host_makefile_frag="config/mh-cygwin"
|
||||
;;
|
||||
*-mingw32*)
|
||||
host_makefile_frag="config/mh-mingw32"
|
||||
;;
|
||||
*-interix*)
|
||||
host_makefile_frag="config/mh-interix"
|
||||
;;
|
||||
vax-*-ultrix2*)
|
||||
# The old BSD pcc isn't up to compiling parts of gdb so use gcc
|
||||
tentative_cc=gcc
|
||||
;;
|
||||
*-*-solaris2*)
|
||||
host_makefile_frag="config/mh-solaris"
|
||||
;;
|
||||
m68k-sun-sunos*)
|
||||
# Sun's C compiler needs the -J flag to be able to compile cp-parse.c
|
||||
# without overflowing the jump tables (-J says to use a 32 bit table)
|
||||
tentative_cc="cc -J"
|
||||
;;
|
||||
*-hp-hpux*)
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
;;
|
||||
*-*-hiux*)
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
;;
|
||||
rs6000-*-lynxos*)
|
||||
# /bin/cc is less than useful for our purposes. Always use GCC
|
||||
tentative_cc="/usr/cygnus/progressive/bin/gcc"
|
||||
host_makefile_frag="config/mh-lynxrs6k"
|
||||
;;
|
||||
*-*-lynxos*)
|
||||
# /bin/cc is less than useful for our purposes. Always use GCC
|
||||
tentative_cc="/bin/gcc"
|
||||
;;
|
||||
*-*-sysv4*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# If we aren't going to be using gcc, see if we can extract a definition
|
||||
# of CC from the fragment.
|
||||
# Actually, use the 'pre-extracted' version above.
|
||||
if test -z "${CC}" && test "${build}" = "${host}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
found=
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/gcc; then
|
||||
found=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -z "${found}" && test -n "${tentative_cc}" ; then
|
||||
CC=$tentative_cc
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "${build}" != "${host}" ; then
|
||||
# If we are doing a Canadian Cross, in which the host and build systems
|
||||
# are not the same, we set reasonable default values for the tools.
|
||||
|
||||
BISON=${BISON-bison}
|
||||
CC=${CC-${host_alias}-gcc}
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXX=${CXX-${host_alias}-c++}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
|
||||
CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
|
||||
CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
|
||||
GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
|
||||
GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
|
||||
BUILD_PREFIX=${build_alias}-
|
||||
BUILD_PREFIX_1=${build_alias}-
|
||||
MAKEINFO=${MAKEINFO-makeinfo}
|
||||
|
||||
if test -z "${YACC}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/bison; then
|
||||
YACC="bison -y"
|
||||
break
|
||||
fi
|
||||
if test -f $dir/byacc; then
|
||||
YACC=byacc
|
||||
break
|
||||
fi
|
||||
if test -f $dir/yacc; then
|
||||
YACC=yacc
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -z "${YACC}" ; then
|
||||
YACC="bison -y"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "${LEX}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/flex; then
|
||||
LEX=flex
|
||||
break
|
||||
fi
|
||||
if test -f $dir/lex; then
|
||||
LEX=lex
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
LEX=${LEX-flex}
|
||||
fi
|
||||
|
||||
else
|
||||
# Set reasonable default values for some tools even if not Canadian.
|
||||
# Of course, these are different reasonable default values, originally
|
||||
# specified directly in the Makefile.
|
||||
# We don't export, so that autoconf can do its job.
|
||||
# Note that all these settings are above the fragment inclusion point
|
||||
# in Makefile.in, so can still be overridden by fragments.
|
||||
# This is all going to change when we autoconfiscate...
|
||||
|
||||
BISON="\$(USUAL_BISON)"
|
||||
CC_FOR_BUILD="\$(CC)"
|
||||
GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
|
||||
BUILD_PREFIX=
|
||||
BUILD_PREFIX_1=loser-
|
||||
MAKEINFO="\$(USUAL_MAKEINFO)"
|
||||
LEX="\$(USUAL_LEX)"
|
||||
YACC="\$(USUAL_YACC)"
|
||||
|
||||
# If CC is still not set, try to get gcc.
|
||||
cc_prog_is_gcc=
|
||||
if test -z "${CC}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/gcc; then
|
||||
CC="gcc"
|
||||
cc_prog_is_gcc=yes
|
||||
echo 'void f(){}' > conftest.c
|
||||
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
else
|
||||
CFLAGS=${CFLAGS-"-O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-O2"}
|
||||
fi
|
||||
rm -f conftest*
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
CC=${CC-cc}
|
||||
else
|
||||
# Determine if we are using gcc.
|
||||
cat > conftest.c <<EOF
|
||||
#ifdef __GNUC__
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if ${CC} -E conftest.c | grep yes >/dev/null 2>&1; then
|
||||
cc_prog_is_gcc=yes
|
||||
fi
|
||||
rm -f conftest.c
|
||||
if test -z "${CFLAGS}"; then
|
||||
# Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC
|
||||
# is set to a version of gcc.
|
||||
if test "$cc_prog_is_gcc" = yes; then
|
||||
echo 'void f(){}' > conftest.c
|
||||
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
else
|
||||
CFLAGS=${CFLAGS-"-O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-O2"}
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# We must set the default linker to the linker used by gcc for the correct
|
||||
# operation of libtool. If LD is not defined and we are using gcc, try to
|
||||
# set the LD default to the ld used by gcc.
|
||||
if test -z "$LD"; then
|
||||
if test "$cc_prog_is_gcc" = yes; then
|
||||
case $build in
|
||||
*-*-mingw*)
|
||||
gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
|
||||
*)
|
||||
gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
|
||||
esac
|
||||
case $gcc_prog_ld in
|
||||
# Accept absolute paths.
|
||||
[[\\/]* | [A-Za-z]:[\\/]*)]
|
||||
LD="$gcc_prog_ld" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
CXX=${CXX-"c++"}
|
||||
CFLAGS=${CFLAGS-"-g"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
fi
|
||||
|
||||
ACX_PROG_GNAT
|
||||
|
||||
# Figure out what language subdirectories are present.
|
||||
# Look if the user specified --enable-languages="..."; if not, use
|
||||
# the environment variable $LANGUAGES if defined. $LANGUAGES might
|
||||
# go away some day.
|
||||
# NB: embedded tabs in this IF block -- do not untabify
|
||||
if test x"${enable_languages+set}" != xset; then
|
||||
if test x"${LANGUAGES+set}" = xset; then
|
||||
enable_languages="${LANGUAGES}"
|
||||
echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
|
||||
if test -d ${srcdir}/gcc; then
|
||||
if test x"${enable_languages+set}" != xset; then
|
||||
if test x"${LANGUAGES+set}" = xset; then
|
||||
enable_languages="${LANGUAGES}"
|
||||
echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2
|
||||
else
|
||||
enable_languages=all
|
||||
fi
|
||||
else
|
||||
enable_languages=all
|
||||
if test x"${enable_languages}" = x ||
|
||||
test x"${enable_languages}" = xyes;
|
||||
then
|
||||
echo configure.in: --enable-languages needs at least one language argument 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if test x"${enable_languages}" = x ||
|
||||
test x"${enable_languages}" = xyes;
|
||||
then
|
||||
echo configure.in: --enable-languages needs at least one language argument 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
|
||||
enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
|
||||
|
||||
# First scan to see if an enabled language requires some other language.
|
||||
# We assume that a given config-lang.in will list all the language
|
||||
# front ends it requires, even if some are required indirectly.
|
||||
for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
|
||||
case ${lang_frag} in
|
||||
..) ;;
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
${srcdir}/gcc/[[*]]/config-lang.in) ;;
|
||||
*)
|
||||
# From the config-lang.in, get $language, $lang_requires
|
||||
language=
|
||||
lang_requires=
|
||||
. ${lang_frag}
|
||||
for other in ${lang_requires} ; do
|
||||
case ,${enable_languages}, in
|
||||
*,$other,*) ;;
|
||||
*,all,*) ;;
|
||||
*,$language,*)
|
||||
echo " \`$other' language required by \`$language'; enabling" 1>&2
|
||||
enable_languages="${enable_languages},${other}"
|
||||
# First scan to see if an enabled language requires some other language.
|
||||
# We assume that a given config-lang.in will list all the language
|
||||
# front ends it requires, even if some are required indirectly.
|
||||
for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
|
||||
case ${lang_frag} in
|
||||
..) ;;
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
${srcdir}/gcc/[[*]]/config-lang.in) ;;
|
||||
*)
|
||||
# From the config-lang.in, get $language, $lang_requires
|
||||
language=
|
||||
lang_requires=
|
||||
. ${lang_frag}
|
||||
for other in ${lang_requires} ; do
|
||||
case ,${enable_languages}, in
|
||||
*,$other,*) ;;
|
||||
*,all,*) ;;
|
||||
*,$language,*)
|
||||
echo " \`$other' language required by \`$language'; enabling" 1>&2
|
||||
enable_languages="${enable_languages},${other}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
new_enable_languages=c
|
||||
missing_languages=`echo ",$enable_languages," | sed -e s/,all,/,/ -e s/,c,/,/ `
|
||||
|
||||
for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
|
||||
case ${lang_frag} in
|
||||
..) ;;
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
${srcdir}/gcc/[[*]]/config-lang.in) ;;
|
||||
*)
|
||||
# From the config-lang.in, get $language, $target_libs,
|
||||
# $lang_dirs, and $build_by_default
|
||||
language=
|
||||
target_libs=
|
||||
lang_dirs=
|
||||
build_by_default=
|
||||
. ${lang_frag}
|
||||
# This is quite sensitive to the ordering of the case statement arms.
|
||||
case ,${enable_languages},:${language}:${have_gnat}:${build_by_default} in
|
||||
*::*:*)
|
||||
echo "${lang_frag} doesn't set \$language." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
esac
|
||||
done
|
||||
*:ada:no:*)
|
||||
# Ada was requested with no preexisting GNAT. Disable unconditionally.
|
||||
add_this_lang=no
|
||||
;;
|
||||
*,${language},*:*:*:*)
|
||||
# Language was explicitly selected; include it.
|
||||
add_this_lang=yes
|
||||
;;
|
||||
*,all,*:*:*:no)
|
||||
# 'all' was selected, but this is not a default language
|
||||
# so do not include it.
|
||||
add_this_lang=no
|
||||
;;
|
||||
*,all,*:*:*:*)
|
||||
# 'all' was selected and this is a default language; include it.
|
||||
add_this_lang=yes
|
||||
;;
|
||||
*)
|
||||
add_this_lang=no
|
||||
;;
|
||||
esac
|
||||
case $add_this_lang in
|
||||
no)
|
||||
# Remove language-dependent dirs.
|
||||
eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\" ;;
|
||||
*)
|
||||
new_enable_languages="$new_enable_languages,$language"
|
||||
missing_languages="`echo "$missing_languages" | sed "s/,$language,/,/"`" ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
for lang_frag in ${srcdir}/gcc/*/config-lang.in .. ; do
|
||||
case ${lang_frag} in
|
||||
..) ;;
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
${srcdir}/gcc/[[*]]/config-lang.in) ;;
|
||||
*)
|
||||
# From the config-lang.in, get $language, $target_libs,
|
||||
# $lang_dirs, and $build_by_default
|
||||
language=
|
||||
target_libs=
|
||||
lang_dirs=
|
||||
build_by_default=
|
||||
. ${lang_frag}
|
||||
if test "x$language" = x ; then
|
||||
echo "${lang_frag} doesn't set \$language." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
case ,${enable_languages}, in
|
||||
*,${language},*)
|
||||
# Language was explicitly selected; include it.
|
||||
add_this_lang=yes
|
||||
;;
|
||||
*,all,*)
|
||||
# 'all' was selected; include 'default' languages.
|
||||
case ${build_by_default} in
|
||||
no) add_this_lang=no ;;
|
||||
*) add_this_lang=yes ;;
|
||||
esac
|
||||
;;
|
||||
*) add_this_lang=no ;;
|
||||
esac
|
||||
case ${add_this_lang} in
|
||||
no)
|
||||
# Remove language-dependent dirs.
|
||||
eval noconfigdirs='"$noconfigdirs "'\"$target_libs $lang_dirs\"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
missing_languages="`echo "$missing_languages" | sed -e s/^,// -e s/,$//`"
|
||||
if test "x$missing_languages" != x; then
|
||||
AC_MSG_ERROR([
|
||||
The following requested languages were not found: ${missing_languages}])
|
||||
fi
|
||||
|
||||
if test "x$new_enable_languages" != "x$enable_languages"; then
|
||||
echo The following languages will be built: ${new_enable_languages}
|
||||
fi
|
||||
enable_languages="$new_enable_languages"
|
||||
ac_configure_args="`echo " $ac_configure_args" | sed -e 's/ --enable-languages=[[^ ]]*//' -e 's/$/ --enable-languages='"$enable_languages"/ `"
|
||||
fi
|
||||
|
||||
# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
|
||||
# $target_configdirs.
|
||||
@ -1014,157 +1365,6 @@ while test $# != 0 ; do
|
||||
shift; shift
|
||||
done
|
||||
|
||||
# Work in distributions that contain no compiler tools, like Autoconf.
|
||||
tentative_cc=""
|
||||
host_makefile_frag=/dev/null
|
||||
if test -d ${srcdir}/config ; then
|
||||
case "${host}" in
|
||||
m68k-hp-hpux*)
|
||||
# Avoid "too much defining" errors from HPUX compiler.
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
# If "ar" in $PATH is GNU ar, the symbol table may need rebuilding.
|
||||
# If it's HP/UX ar, this should be harmless.
|
||||
RANLIB="ar ts"
|
||||
;;
|
||||
m68k-apollo-sysv*)
|
||||
tentative_cc="cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DUSG"
|
||||
;;
|
||||
m68k-apollo-bsd*)
|
||||
#None of the Apollo compilers can compile gas or binutils. The preprocessor
|
||||
# chokes on bfd, the compiler won't let you assign integers to enums, and
|
||||
# other problems. Defining CC to gcc is a questionable way to say "don't use
|
||||
# the apollo compiler" (the preferred version of GCC could be called cc,
|
||||
# or whatever), but I'm not sure leaving CC as cc is any better...
|
||||
#CC=cc -A ansi -A runtype,any -A systype,any -U__STDC__ -DNO_STDARG
|
||||
# Used to have BISON=yacc.
|
||||
tentative_cc=gcc
|
||||
;;
|
||||
m88k-dg-dgux*)
|
||||
tentative_cc="gcc -Wall -ansi -D__using_DGUX"
|
||||
;;
|
||||
m88k-harris-cxux*)
|
||||
# Under CX/UX, we want to tell the compiler to use ANSI mode.
|
||||
tentative_cc="cc -Xa"
|
||||
host_makefile_frag="config/mh-cxux"
|
||||
;;
|
||||
m88k-motorola-sysv*)
|
||||
;;
|
||||
mips*-dec-ultrix*)
|
||||
tentative_cc="cc -Wf,-XNg1000"
|
||||
host_makefile_frag="config/mh-decstation"
|
||||
;;
|
||||
mips*-nec-sysv4*)
|
||||
# The C compiler on NEC MIPS SVR4 needs bigger tables.
|
||||
tentative_cc="cc -ZXNd=5000 -ZXNg=1000"
|
||||
host_makefile_frag="config/mh-necv4"
|
||||
;;
|
||||
mips*-sgi-irix4*)
|
||||
# Tell compiler to use K&R C. We can't compile under the SGI Ansi
|
||||
# environment. Also bump switch table size so that cp-parse will
|
||||
# compile. Bump string length limit so linker builds.
|
||||
tentative_cc="cc -cckr -Wf,-XNg1500 -Wf,-XNk1000 -Wf,-XNh2000 -Wf,-XNl8192"
|
||||
;;
|
||||
mips*-*-sysv4*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
mips*-*-sysv*)
|
||||
# This is for a MIPS running RISC/os 4.52C.
|
||||
|
||||
# This is needed for GDB, but needs to be in the top-level make because
|
||||
# if a library is compiled with the bsd headers and gets linked with the
|
||||
# sysv system libraries all hell can break loose (e.g. a jmp_buf might be
|
||||
# a different size).
|
||||
# ptrace(2) apparently has problems in the BSD environment. No workaround is
|
||||
# known except to select the sysv environment. Could we use /proc instead?
|
||||
# These "sysv environments" and "bsd environments" often end up being a pain.
|
||||
#
|
||||
# This is not part of CFLAGS because perhaps not all C compilers have this
|
||||
# option.
|
||||
tentative_cc="cc -systype sysv"
|
||||
;;
|
||||
i370-ibm-opened*)
|
||||
tentative_cc="c89"
|
||||
;;
|
||||
i[[3456789]]86-*-sysv5*)
|
||||
host_makefile_frag="config/mh-sysv5"
|
||||
;;
|
||||
i[[3456789]]86-*-dgux*)
|
||||
tentative_cc="gcc -Wall -ansi -D__using_DGUX"
|
||||
host_makefile_frag="config/mh-dgux386"
|
||||
;;
|
||||
i[[3456789]]86-ncr-sysv4.3*)
|
||||
# The MetaWare compiler will generate a copyright message unless you
|
||||
# turn it off by adding the -Hnocopyr flag.
|
||||
tentative_cc="cc -Hnocopyr"
|
||||
;;
|
||||
i[[3456789]]86-ncr-sysv4*)
|
||||
# for an NCR 3000 (i486/SVR4) system.
|
||||
# The NCR 3000 ships with a MetaWare compiler installed as /bin/cc.
|
||||
# This compiler not only emits obnoxious copyright messages every time
|
||||
# you run it, but it chokes and dies on a whole bunch of GNU source
|
||||
# files. Default to using the AT&T compiler installed in /usr/ccs/ATT/cc.
|
||||
tentative_cc="/usr/ccs/ATT/cc"
|
||||
host_makefile_frag="config/mh-ncr3000"
|
||||
;;
|
||||
i[[3456789]]86-*-sco3.2v5*)
|
||||
;;
|
||||
i[[3456789]]86-*-sco*)
|
||||
# The native C compiler botches some simple uses of const. Unfortunately,
|
||||
# it doesn't defined anything like "__sco__" for us to test for in ansidecl.h.
|
||||
tentative_cc="cc -Dconst="
|
||||
host_makefile_frag="config/mh-sco"
|
||||
;;
|
||||
i[[3456789]]86-*-udk*)
|
||||
host_makefile_frag="config/mh-sysv5"
|
||||
;;
|
||||
i[[3456789]]86-*-solaris2*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
i[[3456789]]86-*-msdosdjgpp*)
|
||||
host_makefile_frag="config/mh-djgpp"
|
||||
;;
|
||||
*-cygwin*)
|
||||
host_makefile_frag="config/mh-cygwin"
|
||||
;;
|
||||
*-mingw32*)
|
||||
host_makefile_frag="config/mh-mingw32"
|
||||
;;
|
||||
*-interix*)
|
||||
host_makefile_frag="config/mh-interix"
|
||||
;;
|
||||
vax-*-ultrix2*)
|
||||
# The old BSD pcc isn't up to compiling parts of gdb so use gcc
|
||||
tentative_cc=gcc
|
||||
;;
|
||||
*-*-solaris2*)
|
||||
host_makefile_frag="config/mh-solaris"
|
||||
;;
|
||||
m68k-sun-sunos*)
|
||||
# Sun's C compiler needs the -J flag to be able to compile cp-parse.c
|
||||
# without overflowing the jump tables (-J says to use a 32 bit table)
|
||||
tentative_cc="cc -J"
|
||||
;;
|
||||
*-hp-hpux*)
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
;;
|
||||
*-*-hiux*)
|
||||
tentative_cc="cc -Wp,-H256000"
|
||||
;;
|
||||
rs6000-*-lynxos*)
|
||||
# /bin/cc is less than useful for our purposes. Always use GCC
|
||||
tentative_cc="/usr/cygnus/progressive/bin/gcc"
|
||||
host_makefile_frag="config/mh-lynxrs6k"
|
||||
;;
|
||||
*-*-lynxos*)
|
||||
# /bin/cc is less than useful for our purposes. Always use GCC
|
||||
tentative_cc="/bin/gcc"
|
||||
;;
|
||||
*-*-sysv4*)
|
||||
host_makefile_frag="config/mh-sysv4"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
extra_arflags_for_target=
|
||||
extra_nmflags_for_target=
|
||||
extra_ranlibflags_for_target=
|
||||
@ -1279,25 +1479,6 @@ case "${host}" in
|
||||
;;
|
||||
esac
|
||||
|
||||
# If we aren't going to be using gcc, see if we can extract a definition
|
||||
# of CC from the fragment.
|
||||
# Actually, use the 'pre-extracted' version above.
|
||||
if test -z "${CC}" && test "${build}" = "${host}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
found=
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/gcc; then
|
||||
found=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -z "${found}" && test -n "${tentative_cc}" ; then
|
||||
CC=$tentative_cc
|
||||
fi
|
||||
fi
|
||||
|
||||
# Some systems (e.g., one of the i386-aix systems the gas testers are
|
||||
# using) don't handle "\$" correctly, so don't use it here.
|
||||
tooldir='${exec_prefix}'/${target_alias}
|
||||
@ -1360,157 +1541,6 @@ do
|
||||
test -n "$DEFAULT_LEX" && break
|
||||
done
|
||||
|
||||
if test "${build}" != "${host}" ; then
|
||||
# If we are doing a Canadian Cross, in which the host and build systems
|
||||
# are not the same, we set reasonable default values for the tools.
|
||||
|
||||
BISON=${BISON-bison}
|
||||
CC=${CC-${host_alias}-gcc}
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXX=${CXX-${host_alias}-c++}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
|
||||
CC_FOR_TARGET=${CC_FOR_TARGET-${target_alias}-gcc}
|
||||
CXX_FOR_TARGET=${CXX_FOR_TARGET-${target_alias}-c++}
|
||||
GCJ_FOR_TARGET=${GCJ_FOR_TARGET-${target_alias}-gcj}
|
||||
GCC_FOR_TARGET=${GCC_FOR_TARGET-${CC_FOR_TARGET-${target_alias}-gcc}}
|
||||
BUILD_PREFIX=${build_alias}-
|
||||
BUILD_PREFIX_1=${build_alias}-
|
||||
MAKEINFO=${MAKEINFO-makeinfo}
|
||||
|
||||
if test -z "${YACC}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/bison; then
|
||||
YACC="bison -y"
|
||||
break
|
||||
fi
|
||||
if test -f $dir/byacc; then
|
||||
YACC=byacc
|
||||
break
|
||||
fi
|
||||
if test -f $dir/yacc; then
|
||||
YACC=yacc
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
if test -z "${YACC}" ; then
|
||||
YACC="bison -y"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "${LEX}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/flex; then
|
||||
LEX=flex
|
||||
break
|
||||
fi
|
||||
if test -f $dir/lex; then
|
||||
LEX=lex
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
LEX=${LEX-flex}
|
||||
fi
|
||||
|
||||
else
|
||||
# Set reasonable default values for some tools even if not Canadian.
|
||||
# Of course, these are different reasonable default values, originally
|
||||
# specified directly in the Makefile.
|
||||
# We don't export, so that autoconf can do its job.
|
||||
# Note that all these settings are above the fragment inclusion point
|
||||
# in Makefile.in, so can still be overridden by fragments.
|
||||
# This is all going to change when we autoconfiscate...
|
||||
|
||||
BISON="\$(USUAL_BISON)"
|
||||
CC_FOR_BUILD="\$(CC)"
|
||||
GCC_FOR_TARGET="\$(USUAL_GCC_FOR_TARGET)"
|
||||
BUILD_PREFIX=
|
||||
BUILD_PREFIX_1=loser-
|
||||
MAKEINFO="\$(USUAL_MAKEINFO)"
|
||||
LEX="\$(USUAL_LEX)"
|
||||
YACC="\$(USUAL_YACC)"
|
||||
|
||||
# If CC is still not set, try to get gcc.
|
||||
cc_prog_is_gcc=
|
||||
if test -z "${CC}" ; then
|
||||
IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
|
||||
for dir in $PATH; do
|
||||
test -z "$dir" && dir=.
|
||||
if test -f $dir/gcc; then
|
||||
CC="gcc"
|
||||
cc_prog_is_gcc=yes
|
||||
echo 'void f(){}' > conftest.c
|
||||
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
else
|
||||
CFLAGS=${CFLAGS-"-O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-O2"}
|
||||
fi
|
||||
rm -f conftest*
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
CC=${CC-cc}
|
||||
else
|
||||
# Determine if we are using gcc.
|
||||
cat > conftest.c <<EOF
|
||||
#ifdef __GNUC__
|
||||
yes;
|
||||
#endif
|
||||
EOF
|
||||
if ${CC} -E conftest.c | grep yes >/dev/null 2>&1; then
|
||||
cc_prog_is_gcc=yes
|
||||
fi
|
||||
rm -f conftest.c
|
||||
if test -z "${CFLAGS}"; then
|
||||
# Here CC is set but CFLAGS is not. Use a quick hack to use -O2 if CC
|
||||
# is set to a version of gcc.
|
||||
if test "$cc_prog_is_gcc" = yes; then
|
||||
echo 'void f(){}' > conftest.c
|
||||
if test -z "`${CC} -g -c conftest.c 2>&1`"; then
|
||||
CFLAGS=${CFLAGS-"-g -O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
else
|
||||
CFLAGS=${CFLAGS-"-O2"}
|
||||
CXXFLAGS=${CXXFLAGS-"-O2"}
|
||||
fi
|
||||
rm -f conftest*
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# We must set the default linker to the linker used by gcc for the correct
|
||||
# operation of libtool. If LD is not defined and we are using gcc, try to
|
||||
# set the LD default to the ld used by gcc.
|
||||
if test -z "$LD"; then
|
||||
if test "$cc_prog_is_gcc" = yes; then
|
||||
case $build in
|
||||
*-*-mingw*)
|
||||
gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;;
|
||||
*)
|
||||
gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;;
|
||||
esac
|
||||
case $gcc_prog_ld in
|
||||
# Accept absolute paths.
|
||||
[[\\/]* | [A-Za-z]:[\\/]*)]
|
||||
LD="$gcc_prog_ld" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
CXX=${CXX-"c++"}
|
||||
CFLAGS=${CFLAGS-"-g"}
|
||||
CXXFLAGS=${CXXFLAGS-"-g -O2"}
|
||||
fi
|
||||
|
||||
# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest)
|
||||
# Set up the list of links to be made.
|
||||
# ${links} is the list of link names, and ${files} is the list of names to link to.
|
||||
|
@ -1,3 +1,12 @@
|
||||
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR ada/14131
|
||||
Move language detection to the top level.
|
||||
* configure.ac: Remove code to detect languages,
|
||||
it now lives exclusively in the top level.
|
||||
* aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
|
||||
top level, renamed to ACX_PROG_GNAT.
|
||||
|
||||
2004-03-10 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
|
||||
|
35
gcc/aclocal.m4
vendored
35
gcc/aclocal.m4
vendored
@ -295,41 +295,6 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
|
||||
AC_SUBST(INSTALL_DATA)dnl
|
||||
])
|
||||
|
||||
dnl Test for GNAT.
|
||||
dnl We require the gnatbind program, and a compiler driver that
|
||||
dnl understands Ada. We use the user's CC setting, already found.
|
||||
dnl
|
||||
dnl Sets the shell variable have_gnat to yes or no as appropriate, and
|
||||
dnl substitutes GNATBIND.
|
||||
AC_DEFUN([gcc_AC_PROG_GNAT],
|
||||
[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
AC_CHECK_TOOL(GNATBIND, gnatbind, no)
|
||||
AC_CACHE_CHECK([whether compiler driver understands Ada],
|
||||
gcc_cv_cc_supports_ada,
|
||||
[cat >conftest.adb <<EOF
|
||||
procedure conftest is begin null; end conftest;
|
||||
EOF
|
||||
gcc_cv_cc_supports_ada=no
|
||||
# There is a bug in old released versions of GCC which causes the
|
||||
# driver to exit successfully when the appropriate language module
|
||||
# has not been installed. This is fixed in 2.95.4, 3.0.2, and 3.1.
|
||||
# Therefore we must check for the error message as well as an
|
||||
# unsuccessful exit.
|
||||
errors=`(${CC} -c conftest.adb) 2>&1 || echo failure`
|
||||
if test x"$errors" = x; then
|
||||
gcc_cv_cc_supports_ada=yes
|
||||
break
|
||||
fi
|
||||
rm -f conftest.*])
|
||||
|
||||
if test x$GNATBIND != xno && test x$gcc_cv_supports_ada != xno; then
|
||||
have_gnat=yes
|
||||
else
|
||||
have_gnat=no
|
||||
fi
|
||||
])
|
||||
|
||||
dnl GCC_PATH_PROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
|
||||
dnl like AC_PATH_PROG but use other cache variables
|
||||
AC_DEFUN([GCC_PATH_PROG],
|
||||
|
@ -1,3 +1,9 @@
|
||||
2004-03-08 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
PR ada/14131
|
||||
Move language detection to the top level.
|
||||
* config-lang.in: Build by default.
|
||||
|
||||
2004-03-05 Robert Dewar <dewar@gnat.com>
|
||||
|
||||
* 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
|
||||
|
@ -39,9 +39,3 @@ gtfiles="\$(srcdir)/ada/ada-tree.h \$(srcdir)/ada/gigi.h \$(srcdir)/ada/decl.c \
|
||||
outputs=ada/Makefile
|
||||
|
||||
target_libs="target-libada"
|
||||
|
||||
# The logic for determining whether there is a bootstrap Ada compiler
|
||||
# available needs to be moved from gcc/configure to the toplevel configure,
|
||||
# so that target-libada is not built when there is no bootstrap Ada compiler.
|
||||
# Until then disable building this language by default.
|
||||
build_by_default=no
|
||||
|
179
gcc/configure.ac
179
gcc/configure.ac
@ -300,13 +300,6 @@ if test $ac_cv_c___int64 = yes; then
|
||||
AC_COMPILE_CHECK_SIZEOF(__int64)
|
||||
fi
|
||||
|
||||
# -----------------
|
||||
# Find Ada compiler
|
||||
# -----------------
|
||||
|
||||
# See if GNAT has been installed
|
||||
gcc_AC_PROG_GNAT
|
||||
|
||||
# ---------------------
|
||||
# Warnings and checking
|
||||
# ---------------------
|
||||
@ -613,6 +606,53 @@ esac],
|
||||
[onestep=""])
|
||||
AC_SUBST(onestep)
|
||||
|
||||
# Sanity check enable_languages in case someone does not run the toplevel
|
||||
# configure # script.
|
||||
AC_ARG_ENABLE(languages,
|
||||
[ --enable-languages=LIST specify which front-ends to build],
|
||||
[case ,${enable_languages}, in
|
||||
,,|,yes,)
|
||||
# go safe -- we cannot be much sure without the toplevel
|
||||
# configure's
|
||||
# analysis of which target libs are present and usable
|
||||
enable_languages=c
|
||||
;;
|
||||
*,all,*)
|
||||
AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
|
||||
;;
|
||||
*,c,*)
|
||||
;;
|
||||
*)
|
||||
enable_languages=c,${enable_languages}
|
||||
;;
|
||||
esac],
|
||||
[enable_languages=c])
|
||||
|
||||
subdirs=
|
||||
for lang in ${srcdir}/*/config-lang.in
|
||||
do
|
||||
case $lang in
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
changequote(,)dnl
|
||||
${srcdir}/[*]/config-lang.in) ;;
|
||||
*)
|
||||
lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
|
||||
if test "x$lang_alias" = x
|
||||
then
|
||||
echo "$lang doesn't set \$language." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
case ",$enable_languages," in
|
||||
*,$lang_alias,*)
|
||||
subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`" ;;
|
||||
esac
|
||||
;;
|
||||
changequote([,])dnl
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# -------------------------
|
||||
# Checks for other programs
|
||||
# -------------------------
|
||||
@ -2661,131 +2701,6 @@ if test x$with_sysroot = x && test x$host = x$target \
|
||||
[Define to PREFIX/include if cpp should also search that directory.])
|
||||
fi
|
||||
|
||||
# Figure out what language subdirectories are present.
|
||||
# Look if the user specified --enable-languages="..."; if not, use
|
||||
# the environment variable $LANGUAGES if defined. $LANGUAGES might
|
||||
# go away some day.
|
||||
# NB: embedded tabs in this IF block -- do not untabify
|
||||
if test x"${enable_languages+set}" != xset; then
|
||||
if test x"${LANGUAGES+set}" = xset; then
|
||||
enable_languages="${LANGUAGES}"
|
||||
AC_MSG_WARN([setting LANGUAGES is deprecated, use --enable-languages instead])
|
||||
|
||||
else
|
||||
enable_languages=all
|
||||
fi
|
||||
else
|
||||
if test x"${enable_languages}" = x \
|
||||
|| test x"${enable_languages}" = xyes;
|
||||
then
|
||||
AC_MSG_ERROR([--enable-languages needs at least one language argument])
|
||||
fi
|
||||
fi
|
||||
enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
|
||||
|
||||
# First scan to see if an enabled language requires some other language.
|
||||
# We assume that a given config-lang.in will list all the language
|
||||
# front ends it requires, even if some are required indirectly.
|
||||
for lang in ${srcdir}/*/config-lang.in
|
||||
do
|
||||
case $lang in
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
changequote(,)dnl
|
||||
${srcdir}/[*]/config-lang.in)
|
||||
;;
|
||||
*)
|
||||
lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
|
||||
this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang`
|
||||
for other in $this_lang_requires
|
||||
do
|
||||
case ,${enable_languages}, in
|
||||
*,$other,*)
|
||||
;;
|
||||
*,all,*)
|
||||
;;
|
||||
*,$lang_alias,*)
|
||||
enable_languages="$enable_languages,$other"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
;;
|
||||
changequote([,])dnl
|
||||
esac
|
||||
done
|
||||
|
||||
expected_languages=`echo ,${enable_languages}, | sed -e 's:,: :g' -e 's: *: :g' -e 's: *: :g' -e 's:^ ::' -e 's: $::'`
|
||||
found_languages=
|
||||
subdirs=
|
||||
for lang in ${srcdir}/*/config-lang.in
|
||||
do
|
||||
case $lang in
|
||||
# The odd quoting in the next line works around
|
||||
# an apparent bug in bash 1.12 on linux.
|
||||
changequote(,)dnl
|
||||
${srcdir}/[*]/config-lang.in) ;;
|
||||
*)
|
||||
lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
|
||||
this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang`
|
||||
build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang`
|
||||
if test "x$lang_alias" = x
|
||||
then
|
||||
echo "$lang doesn't set \$language." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
case ${build_by_default},${enable_languages}, in
|
||||
*,$lang_alias,*) add_this_lang=yes ;;
|
||||
no,*) add_this_lang=no ;;
|
||||
*,all,*) add_this_lang=yes ;;
|
||||
*) add_this_lang=no ;;
|
||||
esac
|
||||
found_languages="${found_languages} ${lang_alias}"
|
||||
if test x"${add_this_lang}" = xyes; then
|
||||
case $lang in
|
||||
${srcdir}/ada/config-lang.in)
|
||||
if test x$have_gnat = xyes ; then
|
||||
subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
subdirs="$subdirs `echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
changequote([,])dnl
|
||||
esac
|
||||
done
|
||||
|
||||
missing_languages=
|
||||
for expected_language in ${expected_languages} ..
|
||||
do
|
||||
if test "${expected_language}" != ..; then
|
||||
missing_language="${expected_language}"
|
||||
if test "${expected_language}" = "c" \
|
||||
|| test "${expected_language}" = "all"; then
|
||||
missing_language=
|
||||
fi
|
||||
for found_language in ${found_languages} ..
|
||||
do
|
||||
if test "${found_language}" != ..; then
|
||||
if test "${expected_language}" = "${found_language}"; then
|
||||
missing_language=
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if test "x${missing_language}" != x; then
|
||||
missing_languages="${missing_languages} ${missing_language}"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if test "x$missing_languages" != x; then
|
||||
AC_MSG_ERROR([
|
||||
The following requested languages were not found:${missing_languages}
|
||||
The following languages were available: c${found_languages}])
|
||||
fi
|
||||
|
||||
# Find out what GC implementation we want, or may, use.
|
||||
AC_ARG_WITH(gc,
|
||||
[ --with-gc={page,zone} choose the garbage collection mechanism to use
|
||||
|
Loading…
Reference in New Issue
Block a user