gcc/gnattools/configure.ac
Alexandre Oliva f4c53af18b PR81878: fix --disable-bootstrap --enable-languages=ada
gnattools build machinery uses just-build xgcc and xg++ as $(CC) and
$(CXX) in native builds.  However, if C and C++ languages are not
enabled, it won't find them.  So, enable C and C++ if Ada is enabled.
Most of the time, this is probably no big deal: C is always enabled
anyway, and C++ is already enabled for bootstraps.

We need not enable those for cross builds, however.  At first I just
took the logic from gnattools/configure, but found it to be lacking:
it would use the just-built tools even in cross-back settings, whose
tools just built for the host would not run on the build machine.  So
I've narrowed down the test to rely on autoconf-detected cross-ness
(build->host only), but also to ensure that host matches build, and
that target matches host.

I've considered sourcing ada/config-lang.in from within
gnattools/configure, and testing lang_requires as set by it, so as to
avoid a duplication of tests that ought to remain in sync, but decided
it would be too fragile, as ada/config-lang.in does not expect srcdir
to refer to gnattools.

for  gcc/ada/ChangeLog

	PR ada/81878
	* gcc-interface/config-lang.in (lang_requires): Set to "c c++"
	when gnattools wants it.

for  gnattools/ChangeLog

	PR ada/81878
	* configure.ac (default_gnattools_target): Do not mistake
	just-built host tools as native in cross-back toolchains.
	* configure: Rebuilt.

From-SVN: r266290
2018-11-20 00:07:47 +00:00

161 lines
4.9 KiB
Plaintext

# Configure script for libada.
# Copyright 2003, 2004, 2009, 2012 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
sinclude(../config/acx.m4)
sinclude(../config/override.m4)
AC_INIT
AC_CONFIG_SRCDIR([Makefile.in])
# Command-line options.
# Very limited version of AC_MAINTAINER_MODE.
AC_ARG_ENABLE([maintainer-mode],
[AC_HELP_STRING([--enable-maintainer-mode],
[enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer])],
[case ${enable_maintainer_mode} in
yes) MAINT='' ;;
no) MAINT='#' ;;
*) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;;
esac
maintainer_mode=${enableval}],
[MAINT='#'])
AC_SUBST([MAINT])dnl
# Start of actual configure tests
AC_PROG_INSTALL
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
ACX_NONCANONICAL_HOST
ACX_NONCANONICAL_TARGET
# Need to pass this down for now :-P
AC_PROG_LN_S
# Target-specific stuff (defaults)
TOOLS_TARGET_PAIRS=
AC_SUBST(TOOLS_TARGET_PAIRS)
EXTRA_GNATTOOLS=
AC_SUBST(EXTRA_GNATTOOLS)
# Per-target case statement
# -------------------------
case "${target}" in
*-*-aix*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-aix.adb \
indepsw.adb<indepsw-aix.adb"
;;
*-*-darwin*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-darwin.adb \
indepsw.adb<indepsw-darwin.adb"
;;
*-*-dragonfly*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-gnu.adb"
;;
*-*-freebsd*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-gnu.adb"
;;
*-*-linux*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb \
indepsw.adb<indepsw-gnu.adb"
;;
*-*-solaris*)
TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-solaris.adb"
;;
*-*-vxworks*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-vxworks.adb \
indepsw.adb<indepsw-gnu.adb"
;;
hppa*-hp-hpux10*)
;;
hppa*-hp-hpux11*)
TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-hpux.adb"
;;
ia64-hp-hpux11*)
TOOLS_TARGET_PAIRS="mlib-tgt-specific.adb<mlib-tgt-specific-ia64-hpux.adb"
;;
alpha*-*-vms* | alpha*-*-openvms*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-vms-alpha.adb \
symbols.adb<symbols-vms.adb \
symbols-processing.adb<symbols-processing-vms-alpha.adb"
EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
;;
ia64-*-vms* | ia64-*-openvms*)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-vms-ia64.adb \
symbols.adb<symbols-vms.adb \
symbols-processing.adb<symbols-processing-vms-ia64.adb"
EXTRA_GNATTOOLS='../../gnatlbr$(exeext) ../../gnatsym$(exeext)'
;;
*-*-cygwin32* | *-*-mingw32* | *-*-pe)
TOOLS_TARGET_PAIRS="\
mlib-tgt-specific.adb<mlib-tgt-specific-mingw.adb \
indepsw.adb<indepsw-mingw.adb"
EXTRA_GNATTOOLS='../../gnatdll$(exeext)'
;;
esac
# From user or toplevel makefile.
AC_SUBST(ADA_CFLAGS)
# This is testing the CC passed from the toplevel Makefile, not the
# one we will select below.
AC_PROG_CC
warn_cflags=
if test "x$GCC" = "xyes"; then
warn_cflags='$(GCC_WARN_CFLAGS)'
fi
AC_SUBST(warn_cflags)
# Determine what to build for 'gnattools'. Test after the above,
# because testing for CC sets the final value of cross_compiling, even
# if we end up using a different CC. We want to build
# gnattools-native when: (a) this is a native build, i.e.,
# cross_compiling=no, otherwise we know we cannot run binaries
# produced by the toolchain used for the build, not even the binaries
# created within ../gcc/; (b) build and host are the same, otherwise
# this is to be regarded as a cross build environment even if it seems
# that we can run host binaries; (c) host and target are the same,
# otherwise the tools in ../gcc/ generate code for a different
# platform. If you change this test, be sure to adjust
# ../gcc/ada/gcc-interface/config-lang.in as well.
if test "x$cross_compiling/$build/$host" = "xno/$host/$target" ; then
default_gnattools_target="gnattools-native"
else
default_gnattools_target="gnattools-cross"
fi
AC_SUBST([default_gnattools_target])
# Output: create a Makefile.
AC_CONFIG_FILES([Makefile])
AC_OUTPUT