From 92eabea208c3d09e0234cd32db064d6e1d5fac7b Mon Sep 17 00:00:00 2001 From: Phil Edwards Date: Wed, 27 Aug 2003 19:06:56 +0000 Subject: [PATCH] acinclude.m4 (GLIBCXX_CONDITIONAL): New macro. 2003-08-27 Phil Edwards * acinclude.m4 (GLIBCXX_CONDITIONAL): New macro. Wrap AM_CONDITIONAL. Replace all calls to AM_CONDITIONAL with this one. (GLIBCXX_ENABLE_HOSTED): New macro, sets new variable is_hosted, used elsewhere in this file. (GLIBCXX_EVALUATE_CONDITIONALS): New macro... * configure.ac: ...called here to expand all conditionals. * Makefile.am: Conditionalize SUBDIRS on GLIBCXX_HOSTED. * include/Makefile.am: Remove redundant gxx_include_dir assignment. (install-freestanding-headers): New target, a subset of install-headers. Conditionalize install-data-local on GLIBCXX_HOSTED. * aclocal.m4, configure, Makefile.in, include/Makefile.in, libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, src/Makefile.in, testsuite/Makefile.in: Regenerated. From-SVN: r70854 --- libstdc++-v3/ChangeLog | 17 +++ libstdc++-v3/Makefile.am | 6 +- libstdc++-v3/Makefile.in | 12 +- libstdc++-v3/acinclude.m4 | 71 +++++++-- libstdc++-v3/aclocal.m4 | 159 +++++++++++++------- libstdc++-v3/configure | 226 +++++++++++++++++++---------- libstdc++-v3/configure.ac | 8 +- libstdc++-v3/include/Makefile.am | 22 ++- libstdc++-v3/include/Makefile.in | 40 +++-- libstdc++-v3/libmath/Makefile.in | 2 + libstdc++-v3/libsupc++/Makefile.in | 2 + libstdc++-v3/po/Makefile.in | 2 + libstdc++-v3/src/Makefile.in | 2 + libstdc++-v3/testsuite/Makefile.in | 2 + 14 files changed, 408 insertions(+), 163 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 57908283d63..26cbdff5a74 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,20 @@ +2003-08-27 Phil Edwards + + * acinclude.m4 (GLIBCXX_CONDITIONAL): New macro. Wrap + AM_CONDITIONAL. Replace all calls to AM_CONDITIONAL with this one. + (GLIBCXX_ENABLE_HOSTED): New macro, sets new variable is_hosted, + used elsewhere in this file. + (GLIBCXX_EVALUATE_CONDITIONALS): New macro... + * configure.ac: ...called here to expand all conditionals. + * Makefile.am: Conditionalize SUBDIRS on GLIBCXX_HOSTED. + * include/Makefile.am: Remove redundant gxx_include_dir assignment. + (install-freestanding-headers): New target, a subset of + install-headers. Conditionalize install-data-local on GLIBCXX_HOSTED. + + * aclocal.m4, configure, Makefile.in, include/Makefile.in, + libmath/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, + src/Makefile.in, testsuite/Makefile.in: Regenerated. + 2003-08-26 Phil Edwards * docs/doxygen/run_doxygen: Shell fixes. Remove hardcoded local diff --git a/libstdc++-v3/Makefile.am b/libstdc++-v3/Makefile.am index 59ab45cecbd..2c3db0e9480 100644 --- a/libstdc++-v3/Makefile.am +++ b/libstdc++-v3/Makefile.am @@ -24,8 +24,12 @@ include $(top_srcdir)/fragment.am +if GLIBCXX_HOSTED + # Possibly libmath as well... + hosted_source = src po +endif ## Keep this list sync'd with acinclude.m4:GLIBCXX_CONFIGURE. -SUBDIRS = include libmath libsupc++ src po testsuite +SUBDIRS = include libmath libsupc++ $(hosted_source) testsuite # These rules are messy, but are hella worth it. doxygen: diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 12c6c2db4fc..2e7f454aeb1 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ @@ -216,8 +218,8 @@ WARN_CXXFLAGS = \ # -I/-D flags to pass when compiling. AM_CPPFLAGS = $(GLIBCXX_INCLUDES) - -SUBDIRS = include libmath libsupc++ src po testsuite +@GLIBCXX_HOSTED_TRUE@hosted_source = src po +SUBDIRS = include libmath libsupc++ $(hosted_source) testsuite # Multilib support. MAKEOVERRIDES = @@ -296,7 +298,7 @@ DIST_COMMON = README $(top_srcdir)/fragment.am ../ABOUT-NLS ../COPYING \ ../ltconfig ../ltmain.sh ../missing ../mkinstalldirs ../ylwrap \ ChangeLog Makefile.am Makefile.in acconfig.h acinclude.m4 \ aclocal.m4 config.h.in configure configure.ac -DIST_SUBDIRS = $(SUBDIRS) +DIST_SUBDIRS = include libmath libsupc++ src po testsuite all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -491,7 +493,7 @@ distdir: $(DISTFILES) || exit 1; \ fi; \ done - list='$(SUBDIRS)'; for subdir in $$list; do \ + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ @@ -670,6 +672,8 @@ uninstall-info: uninstall-info-recursive uninstall-info-recursive uninstall-recursive +@GLIBCXX_HOSTED_TRUE@ # Possibly libmath as well... + # These rules are messy, but are hella worth it. doxygen: -(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \ diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 4551898c52d..474af59c05e 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1,4 +1,21 @@ +dnl +dnl GLIBCXX_CONDITIONAL (NAME, SHELL-TEST) +dnl +dnl Exactly like AM_CONDITIONAL, but delays evaluation of the test until the +dnl end of configure. This lets tested variables be reassigned, and the +dnl conditional will depend on the final state of the variable. For a simple +dnl example of why this is needed, see GLIBCXX_ENABLE_HOSTED. +dnl +m4_define([_m4_divert(glibcxx_diversion)], 8000)dnl +AC_DEFUN(GLIBCXX_CONDITIONAL, [dnl + m4_divert_text([glibcxx_diversion],dnl + AM_CONDITIONAL([$1],[$2]) + )dnl +])dnl +AC_DEFUN(GLIBCXX_EVALUATE_CONDITIONALS, [m4_undivert([glibcxx_diversion])])dnl + + dnl dnl Check to see what architecture and operating system we are compiling dnl for. Also, if architecture- or OS-specific flags are required for @@ -143,7 +160,10 @@ AC_DEFUN(GLIBCXX_CONFIGURE, [ AM_MAINTAINER_MODE - # Set up safe default values for all subsequent AM_CONDITIONAL tests. + # Set up safe default values for all subsequent AM_CONDITIONAL tests + # which are themselves conditionally expanded. + ## (Right now, this only matters for enable_wchar_t, but nothing prevents + ## other macros from doing the same. This should be automated.) -pme need_libmath=no enable_wchar_t=no #enable_libstdcxx_debug=no @@ -152,6 +172,7 @@ AC_DEFUN(GLIBCXX_CONFIGURE, [ #c_compatibility=no #enable_abi_check=no #enable_symvers=no + #enable_hosted_libstdcxx=yes # Find platform-specific directories containing configuration info. # Also possibly modify flags used elsewhere, as needed by the platform. @@ -560,7 +581,7 @@ dnl Substs: dnl baseline_dir dnl AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ - if $GLIBCXX_IS_NATIVE; then + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes; then # Do checks for memory limit functions. GLIBCXX_CHECK_SETRLIMIT @@ -573,7 +594,7 @@ AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ AC_SUBST(baseline_dir) # Determine if checking the ABI is desirable. - if test $enable_symvers = no; then + if test $enable_symvers = no || test $is_hosted = no; then enable_abi_check=no else case "$host" in @@ -584,8 +605,8 @@ AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ esac fi - AM_CONDITIONAL(GLIBCXX_TEST_WCHAR_T, test $enable_wchar_t = yes) - AM_CONDITIONAL(GLIBCXX_TEST_ABI, test $enable_abi_check = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_TEST_WCHAR_T, test $enable_wchar_t = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_TEST_ABI, test $enable_abi_check = yes) ]) @@ -897,9 +918,9 @@ AC_DEFUN(GLIBCXX_ENABLE_CHEADERS, [ C_INCLUDE_DIR='${glibcxx_srcdir}/include/'$enable_cheaders AC_SUBST(C_INCLUDE_DIR) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_C, test $enable_cheaders = c) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_C_STD, test $enable_cheaders = c_std) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_COMPATIBILITY, test $c_compatibility = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_C, test $enable_cheaders = c) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_C_STD, test $enable_cheaders = c_std) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_COMPATIBILITY, test $c_compatibility = yes) ]) @@ -1213,7 +1234,7 @@ AC_DEFUN(GLIBCXX_ENABLE_DEBUG, [ AC_MSG_CHECKING([for additional debug build]) GLIBCXX_ENABLE(libstdcxx-debug,$1,,[build extra debug library]) AC_MSG_RESULT($enable_libstdcxx_debug) - AM_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) ]) @@ -1246,6 +1267,34 @@ AC_DEFUN(GLIBCXX_ENABLE_DEBUG_FLAGS, [ ]) +dnl +dnl Check if the user only wants a freestanding library implementation. +dnl +dnl --disable-hosted-libstdcxx will turn off most of the library build, +dnl installing only the headers required by [17.4.1.3] and the language +dnl support library. More than that will be built (to keep the Makefiles +dnl conveniently clean), but not installed. +dnl +dnl Sets: +dnl is_hosted (yes/no) +dnl +AC_DEFUN(GLIBCXX_ENABLE_HOSTED, [ + AC_ARG_ENABLE([hosted-libstdcxx], + AC_HELP_STRING([--disable-hosted-libstdcxx], + [only build freestanding C++ runtime support]),, + [enable_hosted_libstdcxx=yes]) + if test "$enable_hosted_libstdcxx" = no; then + AC_MSG_NOTICE([Only freestanding libraries will be built]) + is_hosted=no + enable_abi_check=no + enable_libstdcxx_pch=no + else + is_hosted=yes + fi + GLIBCXX_CONDITIONAL(GLIBCXX_HOSTED, test $is_hosted = yes) +]) + + dnl dnl Check for libunwind exception handling support. If enabled, then dnl we assume that the _Unwind_* functions that make up the Unwind ABI @@ -1351,7 +1400,7 @@ AC_DEFUN(GLIBCXX_ENABLE_PCH, [ enable_libstdcxx_pch=$glibcxx_cv_prog_CXX_pch fi - AM_CONDITIONAL(GLIBCXX_BUILD_PCH, test $enable_libstdcxx_pch = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_PCH, test $enable_libstdcxx_pch = yes) if test $enable_libstdcxx_pch = yes; then glibcxx_PCHFLAGS="-include bits/stdc++.h" else @@ -1523,7 +1572,7 @@ esac AC_SUBST(SYMVER_MAP) AC_SUBST(port_specific_symbol_files) -AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) +GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers) ]) diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index 5c892e91848..e6870fdced7 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -12,6 +12,23 @@ # PARTICULAR PURPOSE. +dnl +dnl GLIBCXX_CONDITIONAL (NAME, SHELL-TEST) +dnl +dnl Exactly like AM_CONDITIONAL, but delays evaluation of the test until the +dnl end of configure. This lets tested variables be reassigned, and the +dnl conditional will depend on the final state of the variable. For a simple +dnl example of why this is needed, see GLIBCXX_ENABLE_HOSTED. +dnl +m4_define([_m4_divert(glibcxx_diversion)], 8000)dnl +AC_DEFUN(GLIBCXX_CONDITIONAL, [dnl + m4_divert_text([glibcxx_diversion],dnl + AM_CONDITIONAL([$1],[$2]) + )dnl +])dnl +AC_DEFUN(GLIBCXX_EVALUATE_CONDITIONALS, [m4_undivert([glibcxx_diversion])])dnl + + dnl dnl Check to see what architecture and operating system we are compiling dnl for. Also, if architecture- or OS-specific flags are required for @@ -156,7 +173,10 @@ AC_DEFUN(GLIBCXX_CONFIGURE, [ AM_MAINTAINER_MODE - # Set up safe default values for all subsequent AM_CONDITIONAL tests. + # Set up safe default values for all subsequent AM_CONDITIONAL tests + # which are themselves conditionally expanded. + ## (Right now, this only matters for enable_wchar_t, but nothing prevents + ## other macros from doing the same. This should be automated.) -pme need_libmath=no enable_wchar_t=no #enable_libstdcxx_debug=no @@ -165,6 +185,7 @@ AC_DEFUN(GLIBCXX_CONFIGURE, [ #c_compatibility=no #enable_abi_check=no #enable_symvers=no + #enable_hosted_libstdcxx=yes # Find platform-specific directories containing configuration info. # Also possibly modify flags used elsewhere, as needed by the platform. @@ -573,7 +594,7 @@ dnl Substs: dnl baseline_dir dnl AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ - if $GLIBCXX_IS_NATIVE; then + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes; then # Do checks for memory limit functions. GLIBCXX_CHECK_SETRLIMIT @@ -586,7 +607,7 @@ AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ AC_SUBST(baseline_dir) # Determine if checking the ABI is desirable. - if test $enable_symvers = no; then + if test $enable_symvers = no || test $is_hosted = no; then enable_abi_check=no else case "$host" in @@ -597,8 +618,8 @@ AC_DEFUN(GLIBCXX_CONFIGURE_TESTSUITE, [ esac fi - AM_CONDITIONAL(GLIBCXX_TEST_WCHAR_T, test $enable_wchar_t = yes) - AM_CONDITIONAL(GLIBCXX_TEST_ABI, test $enable_abi_check = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_TEST_WCHAR_T, test $enable_wchar_t = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_TEST_ABI, test $enable_abi_check = yes) ]) @@ -910,9 +931,9 @@ AC_DEFUN(GLIBCXX_ENABLE_CHEADERS, [ C_INCLUDE_DIR='${glibcxx_srcdir}/include/'$enable_cheaders AC_SUBST(C_INCLUDE_DIR) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_C, test $enable_cheaders = c) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_C_STD, test $enable_cheaders = c_std) - AM_CONDITIONAL(GLIBCXX_C_HEADERS_COMPATIBILITY, test $c_compatibility = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_C, test $enable_cheaders = c) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_C_STD, test $enable_cheaders = c_std) + GLIBCXX_CONDITIONAL(GLIBCXX_C_HEADERS_COMPATIBILITY, test $c_compatibility = yes) ]) @@ -1226,7 +1247,7 @@ AC_DEFUN(GLIBCXX_ENABLE_DEBUG, [ AC_MSG_CHECKING([for additional debug build]) GLIBCXX_ENABLE(libstdcxx-debug,$1,,[build extra debug library]) AC_MSG_RESULT($enable_libstdcxx_debug) - AM_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) ]) @@ -1259,6 +1280,34 @@ AC_DEFUN(GLIBCXX_ENABLE_DEBUG_FLAGS, [ ]) +dnl +dnl Check if the user only wants a freestanding library implementation. +dnl +dnl --disable-hosted-libstdcxx will turn off most of the library build, +dnl installing only the headers required by [17.4.1.3] and the language +dnl support library. More than that will be built (to keep the Makefiles +dnl conveniently clean), but not installed. +dnl +dnl Sets: +dnl is_hosted (yes/no) +dnl +AC_DEFUN(GLIBCXX_ENABLE_HOSTED, [ + AC_ARG_ENABLE([hosted-libstdcxx], + AC_HELP_STRING([--disable-hosted-libstdcxx], + [only build freestanding C++ runtime support]),, + [enable_hosted_libstdcxx=yes]) + if test "$enable_hosted_libstdcxx" = no; then + AC_MSG_NOTICE([Only freestanding libraries will be built]) + is_hosted=no + enable_abi_check=no + enable_libstdcxx_pch=no + else + is_hosted=yes + fi + GLIBCXX_CONDITIONAL(GLIBCXX_HOSTED, test $is_hosted = yes) +]) + + dnl dnl Check for libunwind exception handling support. If enabled, then dnl we assume that the _Unwind_* functions that make up the Unwind ABI @@ -1364,7 +1413,7 @@ AC_DEFUN(GLIBCXX_ENABLE_PCH, [ enable_libstdcxx_pch=$glibcxx_cv_prog_CXX_pch fi - AM_CONDITIONAL(GLIBCXX_BUILD_PCH, test $enable_libstdcxx_pch = yes) + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_PCH, test $enable_libstdcxx_pch = yes) if test $enable_libstdcxx_pch = yes; then glibcxx_PCHFLAGS="-include bits/stdc++.h" else @@ -1536,7 +1585,7 @@ esac AC_SUBST(SYMVER_MAP) AC_SUBST(port_specific_symbol_files) -AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) +GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers) ]) @@ -1608,6 +1657,50 @@ AC_DEFUN([AC_PROG_LD]) dnl vim:et:ts=2:sw=2 +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. + +# This program 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 2, 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; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# serial 5 + +AC_PREREQ(2.52) + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE]) +AC_SUBST([$1_FALSE]) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]) +fi])]) + # Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -1742,50 +1835,6 @@ AC_DEFUN([AM_MAINTAINER_MODE], AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program 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 2, 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; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 5 - -AC_PREREQ(2.52) - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]) -fi])]) - # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index a8528819e38..9a7b9c48376 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -308,7 +308,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static LIBUNWIND_FLAG GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H FPOS_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CCODECVT_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE glibcxx_thread_h DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS SYMVER_MAP port_specific_symbol_files GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE baseline_dir GLIBCXX_TEST_WCHAR_T_TRUE GLIBCXX_TEST_WCHAR_T_FALSE GLIBCXX_TEST_ABI_TRUE GLIBCXX_TEST_ABI_FALSE ATOMICITY_INC_SRCDIR FPOS_INC_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE LIBUNWIND_FLAG GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H FPOS_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CCODECVT_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE glibcxx_thread_h DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS SYMVER_MAP port_specific_symbol_files GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE baseline_dir GLIBCXX_TEST_WCHAR_T_TRUE GLIBCXX_TEST_WCHAR_T_FALSE GLIBCXX_TEST_ABI_TRUE GLIBCXX_TEST_ABI_FALSE ATOMICITY_INC_SRCDIR FPOS_INC_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -850,6 +850,8 @@ Optional Features: --enable-static=PKGS build static libraries default=yes --enable-fast-install=PKGS optimize for fast installation default=yes --disable-libtool-lock avoid locking (might break parallel builds) + --disable-hosted-libstdcxx + only build freestanding C++ runtime support --enable-sjlj-exceptions force use of builtin_setjmp for exceptions [default=auto] @@ -857,7 +859,7 @@ Optional Features: force use of libunwind for exceptions [default=no] --enable-libstdcxx-pch build pre-compiled libstdc++ headers - [default=yes] + [default=$is_hosted] --enable-cstdio=PACKAGE use target-specific I/O package [default=stdio] --enable-clocale[=MODEL] @@ -3536,7 +3538,10 @@ fi - # Set up safe default values for all subsequent AM_CONDITIONAL tests. + # Set up safe default values for all subsequent AM_CONDITIONAL tests + # which are themselves conditionally expanded. + ## (Right now, this only matters for enable_wchar_t, but nothing prevents + ## other macros from doing the same. This should be automated.) -pme need_libmath=no enable_wchar_t=no #enable_libstdcxx_debug=no @@ -3545,6 +3550,7 @@ fi #c_compatibility=no #enable_abi_check=no #enable_symvers=no + #enable_hosted_libstdcxx=yes # Find platform-specific directories containing configuration info. # Also possibly modify flags used elsewhere, as needed by the platform. @@ -4287,7 +4293,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 4290 "configure"' > conftest.$ac_ext + echo '#line 4296 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -4821,6 +4827,29 @@ exec 5>>./config.log #AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10 +# Possibly disable most of the library. +## XXX Consider skipping unncessary tests altogether in this case, rather +## than just ignoring the results. Faster /and/ more correct, win win. + + # Check whether --enable-hosted-libstdcxx or --disable-hosted-libstdcxx was given. +if test "${enable_hosted_libstdcxx+set}" = set; then + enableval="$enable_hosted_libstdcxx" + +else + enable_hosted_libstdcxx=yes +fi; + if test "$enable_hosted_libstdcxx" = no; then + { echo "$as_me:$LINENO: Only freestanding libraries will be built" >&5 +echo "$as_me: Only freestanding libraries will be built" >&6;} + is_hosted=no + enable_abi_check=no + enable_libstdcxx_pch=no + else + is_hosted=yes + fi + + + # Check for support bits and g++ features that don't require linking. echo "$as_me:$LINENO: checking for exception model to use" >&5 @@ -4856,7 +4885,7 @@ fi; # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 4859 "configure" +#line 4888 "configure" struct S { ~S(); }; void bar(); void foo() @@ -4953,7 +4982,7 @@ echo "$as_me: error: Argument to enable/disable libstdcxx-pch must be yes or no" esac else - enable_libstdcxx_pch=yes + enable_libstdcxx_pch=$is_hosted fi; echo "$as_me:$LINENO: result: $enable_libstdcxx_pch" >&5 @@ -5002,15 +5031,6 @@ echo "${ECHO_T}$glibcxx_cv_prog_CXX_pch" >&6 fi - -if test $enable_libstdcxx_pch = yes; then - GLIBCXX_BUILD_PCH_TRUE= - GLIBCXX_BUILD_PCH_FALSE='#' -else - GLIBCXX_BUILD_PCH_TRUE='#' - GLIBCXX_BUILD_PCH_FALSE= -fi - if test $enable_libstdcxx_pch = yes; then glibcxx_PCHFLAGS="-include bits/stdc++.h" else @@ -6088,33 +6108,6 @@ echo "$as_me: \"C\" header strategy set to $enable_cheaders" >&6;} -if test $enable_cheaders = c; then - GLIBCXX_C_HEADERS_C_TRUE= - GLIBCXX_C_HEADERS_C_FALSE='#' -else - GLIBCXX_C_HEADERS_C_TRUE='#' - GLIBCXX_C_HEADERS_C_FALSE= -fi - - - -if test $enable_cheaders = c_std; then - GLIBCXX_C_HEADERS_C_STD_TRUE= - GLIBCXX_C_HEADERS_C_STD_FALSE='#' -else - GLIBCXX_C_HEADERS_C_STD_TRUE='#' - GLIBCXX_C_HEADERS_C_STD_FALSE= -fi - - - -if test $c_compatibility = yes; then - GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE= - GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE='#' -else - GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE='#' - GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE= -fi # Check whether --enable-c-mbchar or --disable-c-mbchar was given. @@ -7427,15 +7420,6 @@ fi; echo "${ECHO_T}$enable_libstdcxx_debug" >&6 -if test $enable_libstdcxx_debug = yes; then - GLIBCXX_BUILD_DEBUG_TRUE= - GLIBCXX_BUILD_DEBUG_FALSE='#' -else - GLIBCXX_BUILD_DEBUG_TRUE='#' - GLIBCXX_BUILD_DEBUG_FALSE= -fi - - echo "$as_me:$LINENO: checking for extra compiler flags for building" >&5 echo $ECHO_N "checking for extra compiler flags for building... $ECHO_C" >&6 # Check whether --enable-cxx-flags or --disable-cxx-flags was given. @@ -56984,22 +56968,13 @@ esac - -if test $enable_symvers != no; then - GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE= - GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE='#' -else - GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE='#' - GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE= -fi - { echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5 echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;} # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. - if $GLIBCXX_IS_NATIVE; then + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes; then # Do checks for memory limit functions. setrlimit_have_headers=yes @@ -57562,7 +57537,7 @@ done # Determine if checking the ABI is desirable. - if test $enable_symvers = no; then + if test $enable_symvers = no || test $is_hosted = no; then enable_abi_check=no else case "$host" in @@ -57575,24 +57550,6 @@ done -if test $enable_wchar_t = yes; then - GLIBCXX_TEST_WCHAR_T_TRUE= - GLIBCXX_TEST_WCHAR_T_FALSE='#' -else - GLIBCXX_TEST_WCHAR_T_TRUE='#' - GLIBCXX_TEST_WCHAR_T_FALSE= -fi - - - -if test $enable_abi_check = yes; then - GLIBCXX_TEST_ABI_TRUE= - GLIBCXX_TEST_ABI_FALSE='#' -else - GLIBCXX_TEST_ABI_TRUE='#' - GLIBCXX_TEST_ABI_FALSE= -fi - # Propagate the target-specific source directories through the build chain. @@ -57611,6 +57568,106 @@ FPOS_INC_SRCDIR=config/${fpos_include_dir} # from GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT: #AM_CONDITIONAL(GLIBCXX_BUILD_LIBMATH, test $need_libmath = yes) + +if test $is_hosted = yes; then + GLIBCXX_HOSTED_TRUE= + GLIBCXX_HOSTED_FALSE='#' +else + GLIBCXX_HOSTED_TRUE='#' + GLIBCXX_HOSTED_FALSE= +fi + + + + +if test $enable_libstdcxx_pch = yes; then + GLIBCXX_BUILD_PCH_TRUE= + GLIBCXX_BUILD_PCH_FALSE='#' +else + GLIBCXX_BUILD_PCH_TRUE='#' + GLIBCXX_BUILD_PCH_FALSE= +fi + + + + +if test $enable_cheaders = c; then + GLIBCXX_C_HEADERS_C_TRUE= + GLIBCXX_C_HEADERS_C_FALSE='#' +else + GLIBCXX_C_HEADERS_C_TRUE='#' + GLIBCXX_C_HEADERS_C_FALSE= +fi + + + + +if test $enable_cheaders = c_std; then + GLIBCXX_C_HEADERS_C_STD_TRUE= + GLIBCXX_C_HEADERS_C_STD_FALSE='#' +else + GLIBCXX_C_HEADERS_C_STD_TRUE='#' + GLIBCXX_C_HEADERS_C_STD_FALSE= +fi + + + + +if test $c_compatibility = yes; then + GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE= + GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE='#' +else + GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE='#' + GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE= +fi + + + + +if test $enable_libstdcxx_debug = yes; then + GLIBCXX_BUILD_DEBUG_TRUE= + GLIBCXX_BUILD_DEBUG_FALSE='#' +else + GLIBCXX_BUILD_DEBUG_TRUE='#' + GLIBCXX_BUILD_DEBUG_FALSE= +fi + + + + +if test $enable_symvers != no; then + GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE= + GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE='#' +else + GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE='#' + GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE= +fi + + + + +if test $enable_wchar_t = yes; then + GLIBCXX_TEST_WCHAR_T_TRUE= + GLIBCXX_TEST_WCHAR_T_FALSE='#' +else + GLIBCXX_TEST_WCHAR_T_TRUE='#' + GLIBCXX_TEST_WCHAR_T_FALSE= +fi + + + + +if test $enable_abi_check = yes; then + GLIBCXX_TEST_ABI_TRUE= + GLIBCXX_TEST_ABI_FALSE='#' +else + GLIBCXX_TEST_ABI_TRUE='#' + GLIBCXX_TEST_ABI_FALSE= +fi + + + + cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -57911,6 +57968,13 @@ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${GLIBCXX_HOSTED_TRUE}" && test -z "${GLIBCXX_HOSTED_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"GLIBCXX_HOSTED\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"GLIBCXX_HOSTED\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${GLIBCXX_BUILD_PCH_TRUE}" && test -z "${GLIBCXX_BUILD_PCH_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"GLIBCXX_BUILD_PCH\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -58581,6 +58645,8 @@ s,@CXXCPP@,$CXXCPP,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@enable_shared@,$enable_shared,;t t s,@enable_static@,$enable_static,;t t +s,@GLIBCXX_HOSTED_TRUE@,$GLIBCXX_HOSTED_TRUE,;t t +s,@GLIBCXX_HOSTED_FALSE@,$GLIBCXX_HOSTED_FALSE,;t t s,@LIBUNWIND_FLAG@,$LIBUNWIND_FLAG,;t t s,@GLIBCXX_BUILD_PCH_TRUE@,$GLIBCXX_BUILD_PCH_TRUE,;t t s,@GLIBCXX_BUILD_PCH_FALSE@,$GLIBCXX_BUILD_PCH_FALSE,;t t diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 326b22f19e6..d10d38144e5 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -70,10 +70,15 @@ AC_SUBST(enable_shared) AC_SUBST(enable_static) #AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10 +# Possibly disable most of the library. +## XXX Consider skipping unncessary tests altogether in this case, rather +## than just ignoring the results. Faster /and/ more correct, win win. +GLIBCXX_ENABLE_HOSTED + # Check for support bits and g++ features that don't require linking. GLIBCXX_ENABLE_SJLJ_EXCEPTIONS GLIBCXX_ENABLE_LIBUNWIND_EXCEPTIONS -GLIBCXX_ENABLE_PCH([yes]) +GLIBCXX_ENABLE_PCH($is_hosted) # Enable all the variable C++ runtime options. # NB: C_MBCHAR must come early. @@ -266,6 +271,7 @@ AC_SUBST(OS_INC_SRCDIR) #AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes) # from GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT: #AM_CONDITIONAL(GLIBCXX_BUILD_LIBMATH, test $need_libmath = yes) +GLIBCXX_EVALUATE_CONDITIONALS AC_CACHE_SAVE diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am index a7660d5ea15..cc4a5f54f3f 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am @@ -510,10 +510,30 @@ ${pch_input}: ${allstamped} ${host_builddir}/c++config.h ${pch_source} # `$(mkinstalldirs)' instead of `mkdir -p'. In particular, # host_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. -gxx_include_dir = @gxx_include_dir@ +if GLIBCXX_HOSTED install-data-local: install-headers ${pch_install} +else +install-data-local: install-freestanding-headers +endif +# This is a subset of the full install-headers rule. We only need , +# , , , , , , and any +# files which they include (and which we provide). The last three headers +# are installed by libsupc++, so only the first four and the sub-includes +# are copied here. +install-freestanding-headers: + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} + for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in cstddef cstdlib cstdarg; do \ + $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done + +# The real deal. install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index bb8bbb423bc..bb3218960b8 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ @@ -169,15 +171,6 @@ glibcxx_srcdir = @glibcxx_srcdir@ glibcxx_thread_h = @glibcxx_thread_h@ glibcxx_toolexecdir = @glibcxx_toolexecdir@ glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@ - -# For robustness sake (in light of junk files or in-source -# configuration), copy from the build or source tree to the install -# tree using only the human-maintained file lists and directory -# components. Yes, with minor differences, this is sheer duplication -# of the staging rules above using $(INSTALL_DATA) instead of LN_S and -# `$(mkinstalldirs)' instead of `mkdir -p'. In particular, -# host_headers_extra are taken out of the build tree staging area; -# the rest are taken from the original source tree. gxx_include_dir = @gxx_include_dir@ host = @host@ host_alias = @host_alias@ @@ -860,8 +853,35 @@ ${pch_input}: ${allstamped} ${host_builddir}/c++config.h ${pch_source} $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O0 -g -o ${pch_output_builddir}/O0g; \ $(CXX) $(PCHFLAGS) $(AM_CPPFLAGS) ${pch_source} -O2 -g -o ${pch_output_builddir}/O2g; -install-data-local: install-headers ${pch_install} +# For robustness sake (in light of junk files or in-source +# configuration), copy from the build or source tree to the install +# tree using only the human-maintained file lists and directory +# components. Yes, with minor differences, this is sheer duplication +# of the staging rules above using $(INSTALL_DATA) instead of LN_S and +# `$(mkinstalldirs)' instead of `mkdir -p'. In particular, +# host_headers_extra are taken out of the build tree staging area; +# the rest are taken from the original source tree. +@GLIBCXX_HOSTED_TRUE@install-data-local: install-headers ${pch_install} +@GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers + +# This is a subset of the full install-headers rule. We only need , +# , , , , , , and any +# files which they include (and which we provide). The last three headers +# are installed by libsupc++, so only the first four and the sub-includes +# are copied here. +install-freestanding-headers: + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${host_builddir} + for file in ${host_srcdir}/os_defines.h ${host_builddir}/c++config.h; do \ + $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${host_builddir}; done + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(INSTALL_DATA) ${std_builddir}/limits $(DESTDIR)${gxx_include_dir}/${std_builddir} + $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir} + for file in cstddef cstdlib cstdarg; do \ + $(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done + +# The real deal. install-headers: $(mkinstalldirs) $(DESTDIR)${gxx_include_dir} $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir} diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index 18d3ac4c20d..55699003f57 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index cf19aed9214..4e74717ed63 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index dee122c514f..d9b439bac2b 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 383498720e6..a622f551f99 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -95,6 +95,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 4bfb56e4588..932aca9c195 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -94,6 +94,8 @@ GLIBCXX_C_HEADERS_C_FALSE = @GLIBCXX_C_HEADERS_C_FALSE@ GLIBCXX_C_HEADERS_C_STD_FALSE = @GLIBCXX_C_HEADERS_C_STD_FALSE@ GLIBCXX_C_HEADERS_C_STD_TRUE = @GLIBCXX_C_HEADERS_C_STD_TRUE@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ +GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ +GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@