AC_DEFUN([GLIBCXX_CONFIGURE], [ # Keep these sync'd with the list in Makefile.am. The first provides an # expandable list at autoconf time; the second provides an expandable list # (i.e., shell variable) at configure time. m4_define([glibcxx_SUBDIRS],[include libmath libsupc++ src doc po testsuite]) SUBDIRS='glibcxx_SUBDIRS' # These need to be absolute paths, yet at the same time need to # canonicalize only relative paths, because then amd will not unmount # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. glibcxx_builddir=`${PWDCMD-pwd}` case $srcdir in [\\/$]* | ?:[\\/]*) glibcxx_srcdir=${srcdir} ;; *) glibcxx_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; esac toplevel_srcdir=${glibcxx_srcdir}/.. AC_SUBST(glibcxx_builddir) AC_SUBST(glibcxx_srcdir) AC_SUBST(toplevel_srcdir) # We use these options to decide which functions to include. They are # set from the top level. AC_ARG_WITH([target-subdir], AC_HELP_STRING([--with-target-subdir=SUBDIR], [configuring in a subdirectory])) AC_ARG_WITH([cross-host], AC_HELP_STRING([--with-cross-host=HOST], [configuring with a cross compiler])) AC_ARG_WITH([newlib], AC_HELP_STRING([--with-newlib], [assume newlib as a system C library])) # We're almost certainly being configured before anything else which uses # C++, so all of our AC_PROG_* discoveries will be cached. It's vital that # we not cache the value of CXX that we "discover" here, because it's set # to something unique for us and libjava. Other target libraries need to # find CXX for themselves. We yank the rug out from under the normal AC_* # process by sneakily renaming the cache variable. This also lets us debug # the value of "our" CXX in postmortems. # # We must also force CXX to /not/ be a precious variable, otherwise the # wrong (non-multilib-adjusted) value will be used in multilibs. This # little trick also affects CPPFLAGS, CXXFLAGS, and LDFLAGS. And as a side # effect, CXXFLAGS is no longer automagically subst'd, so we have to do # that ourselves. Un-preciousing AC_PROG_CC also affects CC and CFLAGS. # # -fno-builtin must be present here so that a non-conflicting form of # std::exit can be guessed by AC_PROG_CXX, and used in later tests. m4_define([ac_cv_prog_CXX],[glibcxx_cv_prog_CXX]) m4_rename([_AC_ARG_VAR_PRECIOUS],[glibcxx_PRECIOUS]) m4_define([_AC_ARG_VAR_PRECIOUS],[]) save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -fno-builtin" AC_PROG_CC AC_PROG_CXX CXXFLAGS="$save_CXXFLAGS" m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS) # Will set LN_S to either 'ln -s', 'ln', or 'cp -p' (if linking isn't # available). Uncomment the next line to force a particular method. AC_PROG_LN_S #LN_S='cp -p' AC_CHECK_TOOL(AS, as) AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error) AM_MAINTAINER_MODE # 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 # Check for uClibc since Linux platforms use different configuration # directories depending on the C library in use. AC_EGREP_CPP([_using_uclibc], [ #include #if __UCLIBC__ _using_uclibc #endif ], uclibc=yes, uclibc=no) # Find platform-specific directories containing configuration info. # Also possibly modify flags used elsewhere, as needed by the platform. GLIBCXX_CHECK_HOST ])