AC_DEFUN(GLIBCPP_TOPREL_CONFIGURE, [
AC_ARG_ENABLE(multilib,
[ --enable-multilib build hella library versions (default)],
[case "${enableval}" in
yes) multilib=yes ;;
no) multilib=no ;;
*) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
esac], [multilib=yes])
if test "${srcdir}" = "."; then
if test -z "${with_target_subdir}"; then
toprel=".."
else
if test "${with_target_subdir}" != "."; then
toprel="${with_multisrctop}../.."
else
toprel="${with_multisrctop}.."
fi
fi
else
toprel=".."
fi
AC_CONFIG_AUX_DIR(${srcdir}/$toprel)
toplevel_srcdir=\${top_srcdir}/$toprel
AC_SUBST(toplevel_srcdir)
])
AC_DEFUN(GLIBCPP_CONFIGURE, [
glibcpp_builddir=`${PWDCMD-pwd}`
case $srcdir in
[\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
*) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
esac
AC_SUBST(glibcpp_builddir)
AC_SUBST(glibcpp_srcdir)
ifelse(not,equal,[AC_CONFIG_AUX_DIR(..)])
AC_PROG_AWK
AC_PROG_LN_S
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR
configuring in a subdirectory])
AC_ARG_WITH(cross-host,
[ --with-cross-host=HOST configuring with a cross compiler])
glibcpp_basedir=$srcdir/$toprel/$1/libstdc++-v3
AC_SUBST(glibcpp_basedir)
ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
AC_DEFUN(LIB_AC_PROG_CC,
[AC_BEFORE([$0], [AC_PROG_CPP]) AC_PROVIDE([AC_PROG_CC])
AC_CHECK_PROG(CC, gcc, gcc)
if test -z "$CC"; then
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi
AC_PROG_CC_GNU
if test $ac_cv_prog_gcc = yes; then
GCC=yes
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
AC_PROG_CC_G
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
elif test $ac_cv_prog_cc_g = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-O2"
fi
else
GCC=
test "${CFLAGS+set}" = set || CFLAGS="-g"
fi
])
LIB_AC_PROG_CC
AC_DEFUN(LIB_AC_PROG_CXX,
[AC_BEFORE([$0], [AC_PROG_CXXCPP]) AC_PROVIDE([AC_PROG_CXX])
glibcpp_CXX=$CXX
AC_CHECK_PROGS(glibcpp_CXX, $CCC c++ g++ gcc CC cxx cc++, gcc)
AC_SUBST(glibcpp_CXX)
CXX=$glibcpp_CXX
test -z "$glibcpp_CXX" && AC_MSG_ERROR([no acceptable c++ found in \$PATH])
AC_PROG_CXX_GNU
if test $ac_cv_prog_gxx = yes; then
GXX=yes
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
AC_PROG_CXX_G
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
elif test $ac_cv_prog_cxx_g = yes; then
CXXFLAGS="-g -O2"
else
CXXFLAGS="-O2"
fi
else
GXX=
test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
fi
])
LIB_AC_PROG_CXX
AC_MSG_CHECKING([for GCC version number])
gcc_version=`$glibcpp_CXX -dumpversion`
AC_MSG_RESULT($gcc_version)
AC_ISC_POSIX
AC_CHECK_TOOL(AS, as)
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error)
AC_PROG_INSTALL
AM_MAINTAINER_MODE
if false; then
:
AC_EXEEXT
fi
case [$]{glibcpp_basedir} in
/* | [A-Za-z]:[\\/]*) libgcj_flagbasedir=[$]{glibcpp_basedir} ;;
*) glibcpp_flagbasedir='[$](top_builddir)/'[$]{glibcpp_basedir} ;;
esac
GLIBCPP_CHECK_TARGET
])
AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
if test ! -f stamp-sanity-compiler; then
AC_MSG_CHECKING([for g++ that will successfully compile libstdc++-v3])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(, [
not_ok
], gpp_satisfactory=yes, AC_MSG_ERROR([please upgrade to GCC 3.0 or above]))
AC_LANG_RESTORE
AC_MSG_RESULT($gpp_satisfactory)
touch stamp-sanity-compiler
fi
])
AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
if test x"$USE_MAINTAINER_MODE" = xno; then
WERROR=''
else
WERROR='-Werror'
fi
AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
CXXFLAGS='-Werror -ffunction-sections -fdata-sections'
AC_TRY_COMPILE(, [int foo;
], [ac_fdsections=yes], [ac_fdsections=no])
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
else
CXXFLAGS=''
fi
if test x"$ac_fdsections" = x"yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
AC_LANG_RESTORE
AC_SUBST(WERROR)
AC_SUBST(SECTION_FLAGS)
])
AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
AC_REQUIRE([AC_PROG_LD])
if test x${with_gnu_ld+set} != xset; then
if test x${ac_cv_prog_gnu_ld+set} != xset; then
with_gnu_ld=no
else
with_gnu_ld=$ac_cv_prog_gnu_ld
fi
fi
changequote(,)
ldver=`$LD --version 2>/dev/null | head -1 | \
sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
changequote([,])
glibcpp_gnu_ld_version=`echo $ldver | \
$AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'`
if test "$with_gnu_ld" = "notbroken"; then
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS='-x c++ -Wl,--gc-sections'
AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
AC_TRY_RUN([
int main(void)
{
try { throw 1; }
catch (...) { };
return 0;
}
], [ac_sectionLDflags=yes],[ac_sectionLDflags=no], [ac_sectionLDflags=yes])
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
else
CFLAGS=''
fi
if test "$ac_sectionLDflags" = "yes"; then
SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
fi
AC_MSG_RESULT($ac_sectionLDflags)
fi
if test x"$with_gnu_ld" = x"yes"; then
OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
fi
AC_SUBST(SECTION_LDFLAGS)
AC_SUBST(OPT_LDFLAGS)
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_1, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ ],
[ $1(0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1, [
GLIBCPP_CHECK_MATH_DECL_1($1)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
else
GLIBCPP_CHECK_MATH_DECL_1(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1, [
AC_MSG_CHECKING([for $1 functions])
AC_CACHE_VAL(glibcpp_cv_func_$2_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ `for x in $3; do echo "$x (0);"; done` ],
[glibcpp_cv_func_$2_use=yes],
[glibcpp_cv_func_$2_use=no])
AC_LANG_RESTORE])
AC_MSG_RESULT($glibcpp_cv_func_$2_use)
if test x$glibcpp_cv_func_$2_use = x"yes"; then
AC_CHECK_FUNCS($3)
fi
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_2, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ $1(0, 0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2, [
GLIBCPP_CHECK_MATH_DECL_2($1)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
else
GLIBCPP_CHECK_MATH_DECL_2(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_3, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ $1(0, 0, 0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
])
AC_DEFUN(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3, [
GLIBCPP_CHECK_MATH_DECL_3($1)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
else
GLIBCPP_CHECK_MATH_DECL_3(_$1)
if test x$glibcpp_cv_func__$1_use = x"yes"; then
AC_CHECK_FUNCS(_$1)
fi
fi
])
AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ $1(0, 0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
fi
])
AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ $1(0, 0, 0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
fi
])
AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([ [ $1(0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
fi
])
AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <math.h>],
[ $1(0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_MSG_CHECKING([for $1 linkage])
if test x${glibcpp_cv_func_$1_link+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_link, [
AC_TRY_LINK([#include <math.h>],
[ $1(0);],
[glibcpp_cv_func_$1_link=yes], [glibcpp_cv_func_$1_link=no])
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_link)
if test x$glibcpp_cv_func_$1_link = x"yes"; then
ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
AC_DEFINE_UNQUOTED(${ac_tr_func})
fi
fi
])
AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrt)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos)
GLIBCPP_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl)
dummyvar=no
if test x$dummyvar = x"yes"; then
AC_DEFINE(HAVE___BUILTIN_ABS)
AC_DEFINE(HAVE___BUILTIN_LABS)
AC_DEFINE(HAVE___BUILTIN_COS)
AC_DEFINE(HAVE___BUILTIN_COSF)
AC_DEFINE(HAVE___BUILTIN_COSL)
AC_DEFINE(HAVE___BUILTIN_FABS)
AC_DEFINE(HAVE___BUILTIN_FABSF)
AC_DEFINE(HAVE___BUILTIN_FABSL)
AC_DEFINE(HAVE___BUILTIN_SIN)
AC_DEFINE(HAVE___BUILTIN_SINF)
AC_DEFINE(HAVE___BUILTIN_SINL)
AC_DEFINE(HAVE___BUILTIN_SQRT)
AC_DEFINE(HAVE___BUILTIN_SQRTF)
AC_DEFINE(HAVE___BUILTIN_SQRTL)
fi
])
AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
AC_CHECK_FUNCS(drand48)
CXXFLAGS="$ac_save_CXXFLAGS"
])
AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty)
CXXFLAGS="$ac_save_CXXFLAGS"
])
AC_DEFUN(GLIBCPP_CHECK_MATH_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
AC_CHECK_LIB(m, sin, libm="-lm")
ac_save_LIBS="$LIBS"
LIBS="$LIBS $libm"
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finite)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysign)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincos)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypot)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig,
float_trig,
acosf asinf atanf \
cosf sinf tanf \
coshf sinhf tanhf)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(float round,
float_round,
ceilf floorf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinff)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10f)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modff)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitef)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig,
long_double_trig,
acosl asinl atanl \
cosl sinl tanl \
coshl sinhl tanhl)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round,
long_double_round,
ceill floorl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(expl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(logl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(log10l)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(modfl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_2(powl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl)
GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE_1(finitel)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig,
_float_trig,
_acosf _asinf _atanf \
_cosf _sinf _tanf \
_coshf _sinhf _tanhf)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round,
_float_round,
_ceilf _floorf)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig,
_long_double_trig,
_acosl _asinl _atanl \
_cosl _sinl _tanl \
_coshl _sinhl _tanhl)
GLIBCPP_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round,
_long_double_round,
_ceill _floorl)
LIBS="$ac_save_LIBS"
CXXFLAGS="$ac_save_CXXFLAGS"
])
AC_DEFUN(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT, [
AC_CHECK_LIB(m, main)
AC_REPLACE_MATHFUNCS(nan copysignf)
AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"])
AC_CHECK_FUNCS([__signbitf], , [LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"])
if test x$ac_cv_func_copysignl = x"yes"; then
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
if test -n "$LIBMATHOBJS"; then
need_libmath=yes
fi
AC_SUBST(LIBMATHOBJS)
AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
])
AC_DEFUN(GLIBCPP_CHECK_TARGET, [
. [$]{glibcpp_basedir}/configure.target
AC_MSG_RESULT(CPU config directory is $cpu_include_dir)
AC_MSG_RESULT(OS config directory is $os_include_dir)
])
AC_DEFUN(GLIBCPP_CHECK_WCHAR_T_SUPPORT, [
enable_wchar_t=no
AC_MSG_CHECKING([for mbstate_t])
AC_TRY_COMPILE([ [mbstate_t teststate;],
have_mbstate_t=yes, have_mbstate_t=no)
AC_MSG_RESULT($have_mbstate_t)
if test x"$have_mbstate_t" = xyes; then
AC_DEFINE(HAVE_MBSTATE_T)
fi
AC_CHECK_HEADERS(wchar.h, ac_has_wchar_h=yes, ac_has_wchar_h=no)
AC_CHECK_HEADERS(wctype.h, ac_has_wctype_h=yes, ac_has_wctype_h=no)
if test x"$ac_has_wchar_h" = xyes &&
test x"$ac_has_wctype_h" = xyes &&
test x"$enable_c_mbchar" != xno; then
AC_MSG_CHECKING([for WCHAR_MIN and WCHAR_MAX])
AC_TRY_COMPILE([ [int i = WCHAR_MIN; int j = WCHAR_MAX;],
has_wchar_minmax=yes, has_wchar_minmax=no)
AC_MSG_RESULT($has_wchar_minmax)
AC_MSG_CHECKING([for WEOF])
AC_TRY_COMPILE([
[wint_t i = WEOF;],
has_weof=yes, has_weof=no)
AC_MSG_RESULT($has_weof)
ac_wfuncs=yes
AC_CHECK_FUNCS(wcslen wmemchr wmemcmp wmemcpy wmemmove wmemset,, \
ac_wfuncs=no)
AC_CHECK_FUNCS(btowc wctob fgetwc fgetws fputwc fputws fwide \
fwprintf fwscanf swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf \
vwprintf vwscanf wprintf wscanf getwc getwchar mbsinit mbrlen mbrtowc \
mbsrtowcs wcsrtombs putwc putwchar ungetwc wcrtomb wcstod wcstof wcstol \
wcstoul wcscpy wcsncpy wcscat wcsncat wcscmp wcscoll wcsncmp wcsxfrm \
wcscspn wcsspn wcstok wcsftime wcschr wcspbrk wcsrchr wcsstr,, \
ac_wfuncs=no)
AC_MSG_CHECKING([for ISO C99 wchar_t support])
if test x"$has_weof" = xyes &&
test x"$has_wchar_minmax" = xyes &&
test x"$ac_wfuncs" = xyes; then
ac_isoC99_wchar_t=yes
else
ac_isoC99_wchar_t=no
fi
AC_MSG_RESULT($ac_isoC99_wchar_t)
AC_CHECK_HEADER(iconv.h, ac_has_iconv_h=yes, ac_has_iconv_h=no)
AC_CHECK_HEADER(langinfo.h, ac_has_langinfo_h=yes, ac_has_langinfo_h=no)
AC_CHECK_LIB(iconv, iconv, libiconv="-liconv")
ac_save_LIBS="$LIBS"
LIBS="$LIBS $libiconv"
AC_CHECK_FUNCS(iconv_open iconv_close iconv nl_langinfo, \
ac_XPG2funcs=yes, ac_XPG2funcs=no)
LIBS="$ac_save_LIBS"
AC_MSG_CHECKING([for XPG2 wchar_t support])
if test x"$ac_has_iconv_h" = xyes &&
test x"$ac_has_langinfo_h" = xyes &&
test x"$ac_XPG2funcs" = xyes; then
ac_XPG2_wchar_t=yes
else
ac_XPG2_wchar_t=no
fi
AC_MSG_RESULT($ac_XPG2_wchar_t)
if test x"$ac_isoC99_wchar_t" = xyes &&
test x"$ac_XPG2_wchar_t" = xyes; then
AC_DEFINE(_GLIBCPP_USE_WCHAR_T)
enable_wchar_t=yes
fi
fi
AC_MSG_CHECKING([for enabled wchar_t specializations])
AC_MSG_RESULT($enable_wchar_t)
AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
])
AC_DEFUN(GLIBCPP_ENABLE_DEBUG, [define([GLIBCPP_ENABLE_DEBUG_DEFAULT], ifelse($1, yes, yes, no))AC_ARG_ENABLE(debug,
changequote(<<, >>)<< --enable-debug build extra debug library [default=>>GLIBCPP_ENABLE_DEBUG_DEFAULT],
changequote([, ])[case "${enableval}" in
yes) enable_debug=yes ;;
no) enable_debug=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable extra debugging]) ;;
esac],
enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)AC_MSG_CHECKING([for additional debug build])
AC_MSG_RESULT($enable_debug)
AM_CONDITIONAL(GLIBCPP_BUILD_DEBUG, test "$enable_debug" = yes)
])
AC_DEFUN(GLIBCPP_ENABLE_DEBUG_FLAGS, [define([GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT], ifelse($1,,, $1))AC_ARG_ENABLE(debug_flags,
changequote(<<, >>)<< --enable-debug-flags=FLAGS pass compiler FLAGS when building debug
library;[default=>>GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT],
changequote([, ])[case "${enableval}" in
none) ;;
-*) enable_debug_flags="${enableval}" ;;
*) AC_MSG_ERROR([Unknown argument to extra debugging flags]) ;;
esac],
enable_debug_flags=GLIBCPP_ENABLE_DEBUG_FLAGS_DEFAULT)
case x"$enable_debug" in
xyes)
case "$enable_debug_flags" in
none)
DEBUG_FLAGS="-g3 -O0";;
-*) DEBUG_FLAGS="${enableval}"
esac
;;
xno)
DEBUG_FLAGS=""
;;
esac
AC_SUBST(DEBUG_FLAGS)
AC_MSG_CHECKING([for debug build flags])
AC_MSG_RESULT($DEBUG_FLAGS)
])
AC_DEFUN(GLIBCPP_ENABLE_CXX_FLAGS, [define([GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT], ifelse($1,,, $1))AC_MSG_CHECKING([for extra compiler flags for building])
AC_ARG_ENABLE(cxx_flags,
changequote(<<, >>)<< --enable-cxx-flags=FLAGS pass compiler FLAGS when building library;
[default=>>GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT],
changequote([, ])[case "x$enable_cxx_flags" in
xyes)
AC_MSG_ERROR([--enable-cxx-flags needs compiler flags as arguments]) ;;
xno | xnone | x)
enable_cxx_flags='' ;;
*)
enable_cxx_flags="$enableval" ;;
esac],
enable_cxx_flags=GLIBCPP_ENABLE_CXX_FLAGS_DEFAULT)
if test -n "$enable_cxx_flags"; then
for f in $enable_cxx_flags; do
case "$f" in
-fhonor-std) ;;
-*) ;;
*) AC_MSG_ERROR([compiler flags start with a -]) ;;
esac
done
fi
EXTRA_CXX_FLAGS="$enable_cxx_flags"
AC_MSG_RESULT($EXTRA_CXX_FLAGS)
AC_SUBST(EXTRA_CXX_FLAGS)
])
AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
AC_MSG_CHECKING([for clocale to use])
AC_ARG_ENABLE(clocale,
[ --enable-clocale enable model for target locale package.
--enable-clocale=MODEL use MODEL target-speific locale package. [default=generic]
],
if test x$enable_clocale = xno; then
enable_clocale=no
fi,
enable_clocale=no)
enable_clocale_flag=$enable_clocale
if test x$enable_clocale_flag = xno; then
case x${target_os} in
xlinux* | xgnu*)
AC_EGREP_CPP([_GLIBCPP_ok], [
_GLIBCPP_ok
], enable_clocale_flag=gnu, enable_clocale_flag=generic)
if test x$enable_clocale_flag = xgnu; then
AC_TRY_RUN([
extern __typeof(newlocale) __newlocale;
extern __typeof(duplocale) __duplocale;
extern __typeof(strcoll_l) __strcoll_l;
int main()
{
const char __one[] = "Äuglein Augmen";
const char __two[] = "Äuglein";
int i;
int j;
__locale_t loc;
__locale_t loc_dup;
loc = __newlocale(1 << LC_ALL, "de_DE", 0);
loc_dup = __duplocale(loc);
i = __strcoll_l(__one, __two, loc);
j = __strcoll_l(__one, __two, loc_dup);
return 0;
}
],
[enable_clocale_flag=gnu],[enable_clocale_flag=generic],
[enable_clocale_flag=generic])
fi
;;
*)
enable_clocale_flag=generic
;;
esac
fi
AC_ARG_ENABLE(nls,
[ --enable-nls use Native Language Support (default)],
, enable_nls=yes)
USE_NLS=no
case x${enable_clocale_flag} in
xgeneric)
AC_MSG_RESULT(generic)
CLOCALE_H=config/locale/generic/c_locale.h
CLOCALE_CC=config/locale/generic/c_locale.cc
CCODECVT_H=config/locale/generic/codecvt_specializations.h
CCODECVT_CC=config/locale/generic/codecvt_members.cc
CCOLLATE_CC=config/locale/generic/collate_members.cc
CCTYPE_CC=config/locale/generic/ctype_members.cc
CMESSAGES_H=config/locale/generic/messages_members.h
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
xgnu)
AC_MSG_RESULT(gnu)
ALL_LINGUAS="de fr"
AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
USE_NLS=yes
fi
for ling in $ALL_LINGUAS; do \
glibcpp_MOFILES="$glibcpp_MOFILES $ling.mo"; \
glibcpp_POFILES="$glibcpp_POFILES $ling.po"; \
done
AC_SUBST(glibcpp_MOFILES)
AC_SUBST(glibcpp_POFILES)
CLOCALE_H=config/locale/gnu/c_locale.h
CLOCALE_CC=config/locale/gnu/c_locale.cc
CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
CCODECVT_CC=config/locale/gnu/codecvt_members.cc
CCOLLATE_CC=config/locale/gnu/collate_members.cc
CCTYPE_CC=config/locale/gnu/ctype_members.cc
CMESSAGES_H=config/locale/gnu/messages_members.h
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
xieee_1003.1-2001)
AC_MSG_RESULT(generic)
CLOCALE_H=config/locale/ieee_1003.1-2001/c_locale.h
CLOCALE_CC=config/locale/ieee_1003.1-2001/c_locale.cc
CCODECVT_H=config/locale/ieee_1003.1-2001/codecvt_specializations.h
CCODECVT_CC=config/locale/generic/codecvt_members.cc
CCOLLATE_CC=config/locale/generic/collate_members.cc
CCTYPE_CC=config/locale/generic/ctype_members.cc
CMESSAGES_H=config/locale/ieee_1003.1-2001/messages_members.h
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
*)
echo "$enable_clocale is an unknown locale package" 1>&2
exit 1
;;
esac
glibcpp_localedir=${glibcpp_builddir}/po/share/locale
AC_SUBST(glibcpp_localedir)
AC_SUBST(USE_NLS)
AC_SUBST(CLOCALE_H)
AC_SUBST(CCODECVT_H)
AC_SUBST(CMESSAGES_H)
AC_SUBST(CCODECVT_CC)
AC_SUBST(CCOLLATE_CC)
AC_SUBST(CCTYPE_CC)
AC_SUBST(CMESSAGES_CC)
AC_SUBST(CMONEY_CC)
AC_SUBST(CNUMERIC_CC)
AC_SUBST(CTIME_H)
AC_SUBST(CTIME_CC)
AC_SUBST(CLOCALE_CC)
AC_SUBST(CLOCALE_INTERNAL_H)
])
AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
AC_MSG_CHECKING([for cstdio to use])
AC_ARG_ENABLE(cstdio,
[ --enable-cstdio enable stdio for target io package.
--enable-cstdio=LIB use LIB target-speific io package. [default=stdio]
],
if test x$enable_cstdio = xno; then
enable_cstdio=stdio
fi,
enable_cstdio=stdio)
enable_cstdio_flag=$enable_cstdio
case x${enable_cstdio_flag} in
xlibio)
CSTDIO_H=config/io/c_io_libio.h
BASIC_FILE_H=config/io/basic_file_libio.h
BASIC_FILE_CC=config/io/basic_file_libio.cc
AC_MSG_RESULT(libio)
AC_CHECK_HEADER(libio.h, has_libio=yes, has_libio=no)
if test x$has_libio = x"yes"; then
case "$target" in
*-*-linux*)
AC_MSG_CHECKING([for glibc version >= 2.2])
AC_EGREP_CPP([ok], [
ok
], glibc_satisfactory=yes, glibc_satisfactory=no)
AC_MSG_RESULT($glibc_satisfactory)
;;
esac
glibc_satisfactory=no
if test x$glibc_satisfactory = x"yes"; then
need_libio=no
need_wlibio=no
else
need_libio=yes
if test x$enable_c_mbchar != xno; then
need_wlibio=yes
else
need_wlibio=no
fi
fi
else
need_libio=yes
if test x$enable_c_mbchar != xno; then
need_wlibio=yes
else
need_wlibio=no
fi
fi
;;
xstdio | x | xno | xnone | xyes)
CSTDIO_H=config/io/c_io_stdio.h
BASIC_FILE_H=config/io/basic_file_stdio.h
BASIC_FILE_CC=config/io/basic_file_stdio.cc
AC_MSG_RESULT(stdio)
need_libio=no
need_wlibio=no
;;
*)
echo "$enable_cstdio is an unknown io package" 1>&2
exit 1
;;
esac
AC_SUBST(CSTDIO_H)
AC_SUBST(BASIC_FILE_H)
AC_SUBST(BASIC_FILE_CC)
CCODECVT_C=config/io/c_io_libio_codecvt.c
AC_SUBST(CCODECVT_C)
AM_CONDITIONAL(GLIBCPP_BUILD_LIBIO,
test "$need_libio" = yes || test "$need_wlibio" = yes)
AM_CONDITIONAL(GLIBCPP_NEED_LIBIO, test "$need_libio" = yes)
AM_CONDITIONAL(GLIBCPP_NEED_WLIBIO, test "$need_wlibio" = yes)
if test "$need_libio" = yes || test "$need_wlibio" = yes; then
libio_la=../libio/libio.la
else
libio_la=
fi
AC_SUBST(libio_la)
])
AC_DEFUN(GLIBCPP_ENABLE_THREADS, [
AC_MSG_CHECKING([for thread model used by GCC])
target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
AC_MSG_RESULT([$target_thread_file])
if test $target_thread_file != single; then
AC_DEFINE(HAVE_GTHR_DEFAULT)
AC_DEFINE(_GLIBCPP_SUPPORTS_WEAK, __GXX_WEAK__)
fi
glibcpp_thread_h=gthr-$target_thread_file.h
AC_SUBST(glibcpp_thread_h)
])
AC_DEFUN(GLIBCPP_ENABLE_SJLJ_EXCEPTIONS, [
AC_MSG_CHECKING([for exception model to use])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_ARG_ENABLE(sjlj-exceptions,
[ --enable-sjlj-exceptions force use of builtin_setjmp for exceptions],
[:],
[ cat > conftest.$ac_ext << EOF
[struct S { ~S(); };
void bar();
void foo()
{
S s;
bar();
}
EOF
old_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=-S
if AC_TRY_EVAL(ac_compile); then
if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=yes
elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
enable_sjlj_exceptions=no
fi
fi
CXXFLAGS="$old_CXXFLAGS"
rm -f conftest*])
if test x$enable_sjlj_exceptions = xyes; then
AC_DEFINE(_GLIBCPP_SJLJ_EXCEPTIONS, 1,
[Define if the compiler is configured for setjmp/longjmp exceptions.])
ac_exception_model_name=sjlj
elif test x$enable_sjlj_exceptions = xno; then
ac_exception_model_name="call frame"
else
AC_MSG_ERROR([unable to detect exception model])
fi
AC_LANG_RESTORE
AC_MSG_RESULT($ac_exception_model_name)
])
AC_DEFUN(GLIBCPP_ENABLE_LIBUNWIND_EXCEPTIONS, [
AC_MSG_CHECKING([for use of libunwind])
AC_ARG_ENABLE(libunwind-exceptions,
[ --enable-libunwind-exceptions force use of libunwind for exceptions],
use_libunwind_exceptions=$enableval,
use_libunwind_exceptions=no)
AC_MSG_RESULT($use_libunwind_exceptions)
if test x"$use_libunwind_exceptions" = xyes; then
LIBUNWIND_FLAG="-lunwind"
else
LIBUNWIND_FLAG=""
fi
AC_SUBST(LIBUNWIND_FLAG)
])
AC_DEFUN(GLIBCPP_ENABLE_C99, [ define([GLIBCPP_ENABLE_C99_DEFAULT], ifelse($1, yes, yes, no))
AC_ARG_ENABLE(c99,
changequote(<<, >>) <<--enable-c99 turns on 'ISO/IEC 9899:1999 support' [default=>>GLIBCPP_ENABLE_C99_DEFAULT],
changequote([, ]) [case "$enableval" in
yes) enable_c99=yes ;;
no) enable_c99=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable C99]) ;;
esac],
enable_c99=GLIBCPP_ENABLE_C99_DEFAULT)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_c99_math=yes;
AC_MSG_CHECKING([for ISO C99 support in <math.h>])
AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ [isgreaterequal(0.0,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ [islessgreater(0.0,0.0);],, [ac_c99_math=no])
AC_TRY_COMPILE([ [isunordered(0.0,0.0);],, [ac_c99_math=no])
AC_MSG_RESULT($ac_c99_math)
ac_c99_stdio=yes;
AC_MSG_CHECKING([for ISO C99 support in <stdio.h>])
AC_TRY_COMPILE([ [snprintf("12", 0, "%i");],, [ac_c99_stdio=no])
AC_TRY_COMPILE([ void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vfscanf(stderr, "%i", args);}],
[],, [ac_c99_stdio=no])
AC_TRY_COMPILE([ void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vscanf("%i", args);}],
[],, [ac_c99_stdio=no])
AC_TRY_COMPILE([ void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vsnprintf(fmt, 0, "%i", args);}],
[],, [ac_c99_stdio=no])
AC_TRY_COMPILE([ void foo(char* fmt, ...)
{va_list args; va_start(args, fmt);
vsscanf(fmt, "%i", args);}],
[],, [ac_c99_stdio=no])
AC_MSG_RESULT($ac_c99_stdio)
ac_c99_stdlib=yes;
AC_MSG_CHECKING([for lldiv_t declaration])
AC_CACHE_VAL(ac_c99_lldiv_t, [
AC_TRY_COMPILE([ [ lldiv_t mydivt;],
[ac_c99_lldiv_t=yes], [ac_c99_lldiv_t=no])
])
AC_MSG_RESULT($ac_c99_lldiv_t)
AC_MSG_CHECKING([for ISO C99 support in <stdlib.h>])
AC_TRY_COMPILE([ [char* tmp; strtof("gnu", &tmp);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([ [char* tmp; strtold("gnu", &tmp);],, [ac_c99_stdlib=no])
AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ AC_TRY_COMPILE([ if test x"$ac_c99_lldiv_t" = x"no"; then
ac_c99_stdlib=no;
fi;
AC_MSG_RESULT($ac_c99_stdlib)
ac_c99_wchar=yes;
AC_MSG_CHECKING([for additional ISO C99 support in <wchar.h>])
AC_TRY_COMPILE([ [wcstold(L"10.0", NULL);],, [ac_c99_wchar=no])
AC_TRY_COMPILE([ [wcstoll(L"10", NULL, 10);],, [ac_c99_wchar=no])
AC_TRY_COMPILE([ [wcstoull(L"10", NULL, 10);],, [ac_c99_wchar=no])
AC_MSG_RESULT($ac_c99_wchar)
AC_MSG_CHECKING([for enabled ISO C99 support])
if test x"$ac_c99_math" = x"no" ||
test x"$ac_c99_stdio" = x"no" ||
test x"$ac_c99_stdlib" = x"no" ||
test x"$ac_c99_wchar" = x"no"; then
enable_c99=no;
fi;
AC_MSG_RESULT($enable_c99)
if test x"$enable_c99" = x"yes"; then
AC_DEFINE(_GLIBCPP_USE_C99)
fi
AC_LANG_RESTORE
])
AC_DEFUN(GLIBCPP_ENABLE_LONG_LONG, [ define([GLIBCPP_ENABLE_LONG_LONG_DEFAULT], ifelse($1, yes, yes, no))
AC_ARG_ENABLE(long-long,
changequote(<<, >>) <<--enable-long-long turns on 'long long' [default=>>GLIBCPP_ENABLE_LONG_LONG_DEFAULT],
changequote([, ]) [case "$enableval" in
yes) enable_long_long=yes ;;
no) enable_long_long=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable long long]) ;;
esac],
enable_long_long=GLIBCPP_ENABLE_LONG_LONG_DEFAULT)
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_MSG_CHECKING([for enabled long long I/O support])
AC_TRY_COMPILE([ [char* tmp; strtoq("gnu", &tmp, 10);],,[enable_long_long=no])
AC_TRY_COMPILE([ [char* tmp; strtouq("gnu", &tmp, 10);],,[enable_long_long=no])
# Option parsed, now set things appropriately
if test x"$enable_long_long" = xyes; then
AC_DEFINE(_GLIBCPP_USE_LONG_LONG)
fi
AC_MSG_RESULT($enable_long_long)
AC_LANG_RESTORE
])
dnl
dnl Check for what type of C headers to use.
dnl
dnl GLIBCPP_ENABLE_CHEADERS
dnl --enable-cheaders= [does stuff].
dnl --disable-cheaders [does not do anything, really].
dnl + Usage: GLIBCPP_ENABLE_CHEADERS[(DEFAULT)]
dnl Where DEFAULT is either `c' or `c_std'.
AC_DEFUN(GLIBCPP_ENABLE_CHEADERS, [define([GLIBCPP_ENABLE_CHEADERS_DEFAULT], ifelse($1, c_std, c_std, c_std))AC_MSG_CHECKING([for c header strategy to use])
AC_ARG_ENABLE(cheaders,
changequote(<<, >>)<< --enable-cheaders=MODEL construct "C" header files for g++ [default=>>GLIBCPP_ENABLE_CHEADERS_DEFAULT],
changequote([, ])
[case "$enableval" in
c)
enable_cheaders=c
;;
c_std)
enable_cheaders=c_std
;;
*) AC_MSG_ERROR([Unknown argument to enable/disable "C" headers])
;;
esac],
enable_cheaders=GLIBCPP_ENABLE_CHEADERS_DEFAULT)
AC_MSG_RESULT($enable_cheaders)
case "$enable_cheaders" in
c_std)
C_INCLUDE_DIR='${glibcpp_srcdir}/include/c_std'
;;
c)
C_INCLUDE_DIR='${glibcpp_srcdir}/include/c'
;;
esac
AC_SUBST(C_INCLUDE_DIR)
AM_CONDITIONAL(GLIBCPP_C_HEADERS_C, test "$enable_cheaders" = c)
AM_CONDITIONAL(GLIBCPP_C_HEADERS_C_STD, test "$enable_cheaders" = c_std)
AM_CONDITIONAL(GLIBCPP_C_HEADERS_COMPATIBILITY, test "$c_compatibility" = yes)
])
AC_DEFUN(GLIBCPP_ENABLE_C_MBCHAR, [define([GLIBCPP_ENABLE_C_MBCHAR_DEFAULT], ifelse($1, yes, yes, no))AC_ARG_ENABLE(c-mbchar,
changequote(<<, >>)<< --enable-c-mbchar enable multibyte (wide) characters [default=>>GLIBCPP_ENABLE_C_MBCHAR_DEFAULT],
changequote([, ])[case "$enableval" in
yes) enable_c_mbchar=yes ;;
no) enable_c_mbchar=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable c-mbchar]) ;;
esac],
enable_c_mbchar=GLIBCPP_ENABLE_C_MBCHAR_DEFAULT)])
AC_DEFUN(GLIBCPP_EXPORT_INCLUDES, [
GLIBCPP_INCLUDES="-I${glibcpp_builddir}/include/${target_alias} -I${glibcpp_builddir}/include"
if test x"$CANADIAN" = xyes; then
TOPLEVEL_INCLUDES='-I$(includedir)'
fi
LIBMATH_INCLUDES='-I$(top_srcdir)/libmath'
LIBSUPCXX_INCLUDES='-I$(top_srcdir)/libsupc++'
if test x"$need_libio" = xyes; then
LIBIO_INCLUDES='-I$(top_builddir)/libio -I$(top_srcdir)/libio'
AC_SUBST(LIBIO_INCLUDES)
fi
AC_SUBST(GLIBCPP_INCLUDES)
AC_SUBST(TOPLEVEL_INCLUDES)
AC_SUBST(LIBMATH_INCLUDES)
AC_SUBST(LIBSUPCXX_INCLUDES)
])
AC_DEFUN(GLIBCPP_EXPORT_FLAGS, [
OPTIMIZE_CXXFLAGS=
AC_SUBST(OPTIMIZE_CXXFLAGS)
WARN_FLAGS='-Wall -Wno-format -W -Wwrite-strings -Winline'
AC_SUBST(WARN_FLAGS)
])
AC_DEFUN(GLIBCPP_EXPORT_INSTALL_INFO, [
glibcpp_toolexecdir=no
glibcpp_toolexeclibdir=no
glibcpp_prefixdir=${prefix}
AC_MSG_CHECKING([for --with-gxx-include-dir])
AC_ARG_WITH(gxx-include-dir,
[ --with-gxx-include-dir the installation directory for include files],
[case "${withval}" in
yes)
AC_MSG_ERROR(Missing directory for --with-gxx-include-dir)
gxx_include_dir=no
;;
no)
gxx_include_dir=no
;;
*)
gxx_include_dir=${withval}
;;
esac], [gxx_include_dir=no])
AC_MSG_RESULT($gxx_include_dir)
AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
AC_ARG_ENABLE(version-specific-runtime-libs,
[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
[case "$enableval" in
yes) version_specific_libs=yes ;;
no) version_specific_libs=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
esac],
version_specific_libs=no)AC_MSG_RESULT($version_specific_libs)
if test $version_specific_libs = no && test $gxx_include_dir = no; then
gxx_include_dir='$(prefix)'/include/c++/${gcc_version}
fi
if test $version_specific_libs = yes; then
if test x"$gxx_include_dir" = x"no"; then
gxx_include_dir='$(libdir)/gcc-lib/$(target_alias)/'${gcc_version}/include/c++
fi
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
fi
if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
glibcpp_toolexeclibdir='$(libdir)'
fi
glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_MSG_CHECKING([for install location])
AC_MSG_RESULT($gxx_include_dir)
AC_SUBST(glibcpp_prefixdir)
AC_SUBST(gxx_include_dir)
AC_SUBST(glibcpp_toolexecdir)
AC_SUBST(glibcpp_toolexeclibdir)
])
AC_DEFUN(AC_REPLACE_MATHFUNCS,
[AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])])
AC_DEFUN(
GLIBCPP_CHECK_GNU_MAKE, [AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
_cv_gnu_make_command='' ;
for a in "${MAKE-make}" make gmake gnumake ; do
if ( $a --version 2> /dev/null | grep -c GNU > /dev/null )
then
_cv_gnu_make_command=$a ;
break;
fi
done ;
) ;
if test "x$_cv_gnu_make_command" != "x" ; then
ifGNUmake='' ;
else
ifGNUmake=' fi
AC_SUBST(ifGNUmake)
])
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT_ancilliary, [
AC_TRY_COMPILE([ ], [ int f = RLIMIT_$1 ; ],
[glibcpp_mresult=1], [glibcpp_mresult=0])
AC_DEFINE_UNQUOTED(HAVE_MEMLIMIT_$1, $glibcpp_mresult,
[Only used in build directory testsuite_hooks.h.])
])
AC_DEFUN(GLIBCPP_CHECK_SETRLIMIT, [
setrlimit_have_headers=yes
AC_CHECK_HEADERS(unistd.h sys/time.h sys/resource.h,
[],
setrlimit_have_headers=no)
if test $setrlimit_have_headers = yes; then
GLIBCPP_CHECK_SETRLIMIT_ancilliary(DATA)
GLIBCPP_CHECK_SETRLIMIT_ancilliary(RSS)
GLIBCPP_CHECK_SETRLIMIT_ancilliary(VMEM)
GLIBCPP_CHECK_SETRLIMIT_ancilliary(AS)
AC_CACHE_VAL(ac_setrlimit, [
AC_TRY_COMPILE([ ],
[ struct rlimit r; setrlimit(0, &r);],
[ac_setrlimit=yes], [ac_setrlimit=no])
])
fi
AC_MSG_CHECKING([for testsuite memory limit support])
if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
ac_mem_limits=yes
AC_DEFINE(_GLIBCPP_MEM_LIMITS)
else
ac_mem_limits=no
fi
AC_MSG_RESULT($ac_mem_limits)
])
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
GLIBCPP_CHECK_SETRLIMIT
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
AC_SUBST(baseline_file)
AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
test x"$build" = x"$host" && test -z "$with_cross_host")
])
sinclude(../libtool.m4)
ifelse(,,,[AC_SUBST(LIBTOOL)
AC_DEFUN([AM_PROG_LIBTOOL])
AC_DEFUN([AC_LIBTOOL_DLOPEN])
AC_DEFUN([AC_PROG_LD])
])
AC_DEFUN(AC_LC_MESSAGES, [
AC_CHECK_HEADER(locale.h, [
AC_CACHE_CHECK([for LC_MESSAGES], ac_cv_val_LC_MESSAGES,
[AC_TRY_LINK([ ac_cv_val_LC_MESSAGES=yes, ac_cv_val_LC_MESSAGES=no)])
if test $ac_cv_val_LC_MESSAGES = yes; then
AC_DEFINE(HAVE_LC_MESSAGES)
fi
])
])
AC_DEFUN(GLIBCPP_ENABLE_CONCEPT_CHECKS, [define([GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT], ifelse($1, yes, yes, no))AC_ARG_ENABLE(concept-checks,
changequote(<<, >>)<< --enable-concept-checks use Boost-derived template checks [default=>>GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT],
changequote([, ])[case "$enableval" in
yes) enable_concept_checks=yes ;;
no) enable_concept_checks=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable concept checks]) ;;
esac],
enable_concept_checks=GLIBCPP_ENABLE_CONCEPT_CHECKS_DEFAULT)if test x"$enable_concept_checks" = xyes; then
AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS)
fi
])
AC_DEFUN(GLIBCPP_ENABLE_SYMVERS, [define([GLIBCPP_ENABLE_SYMVERS_DEFAULT], ifelse($1, yes, yes, no))AC_ARG_ENABLE(symvers,
changequote(<<, >>)<< --enable-symvers=style enables symbol versioning of the shared library [default=>>GLIBCPP_ENABLE_SYMVERS_DEFAULT],
changequote([, ])[case "$enableval" in
yes) enable_symvers=yes ;;
no) enable_symvers=no ;;
gnu) enable_symvers=$enableval ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable symvers]) ;;
esac],
enable_symvers=GLIBCPP_ENABLE_SYMVERS_DEFAULT)
if test x$enable_shared = xno ||
test "x$LD" = x ||
test x$glibcpp_gnu_ld_version = x; then
enable_symvers=no
fi
if test $enable_symvers != no; then
AC_MSG_CHECKING([for shared libgcc])
ac_save_CFLAGS="$CFLAGS"
CFLAGS=' -lgcc_s'
AC_TRY_LINK(, [return 0], glibcpp_shared_libgcc=yes, glibcpp_shared_libgcc=no)
CFLAGS="$ac_save_CFLAGS"
AC_MSG_RESULT($glibcpp_shared_libgcc)
fi
glibcpp_min_gnu_ld_version=21200
if test $enable_symvers = yes ; then
if test $with_gnu_ld = yes &&
test $glibcpp_shared_libgcc = yes ;
then
if test $glibcpp_gnu_ld_version -ge $glibcpp_min_gnu_ld_version ; then
enable_symvers=gnu
else
ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS='-shared -Wl,--version-script,conftest.map'
enable_symvers=no
changequote(,)
echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
changequote([,])
AC_TRY_LINK([int foo;],, enable_symvers=gnu)
if test "$ac_test_CFLAGS" = set; then
CFLAGS="$ac_save_CFLAGS"
else
CFLAGS=''
fi
rm -f conftest.map
fi
else
enable_symvers=no
fi
fi
case $enable_symvers in
no)
SYMVER_MAP=config/linker-map.dummy
;;
gnu)
SYMVER_MAP=config/linker-map.gnu
AC_DEFINE(_GLIBCPP_SYMVER)
;;
esac
AC_SUBST(SYMVER_MAP)
AM_CONDITIONAL(GLIBCPP_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
AC_MSG_CHECKING([versioning on shared library symbols])
AC_MSG_RESULT($enable_symvers)
])