mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-21 10:05:27 +08:00
f4c53af18b
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
161 lines
4.9 KiB
Plaintext
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
|