diff options
author | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
---|---|---|
committer | upstream source tree <ports@midipix.org> | 2015-03-15 20:14:05 -0400 |
commit | 554fd8c5195424bdbcabf5de30fdc183aba391bd (patch) | |
tree | 976dc5ab7fddf506dadce60ae936f43f58787092 /libquadmath/configure.ac | |
download | cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.bz2 cbb-gcc-4.6.4-15d2061ac0796199866debe9ac87130894b0cdd3.tar.xz |
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig;
imported gcc-4.6.4 source tree from verified upstream tarball.
downloading a git-generated archive based on the 'upstream' tag
should provide you with a source tree that is binary identical
to the one extracted from the above tarball.
if you have obtained the source via the command 'git clone',
however, do note that line-endings of files in your working
directory might differ from line-endings of the respective
files in the upstream repository.
Diffstat (limited to 'libquadmath/configure.ac')
-rw-r--r-- | libquadmath/configure.ac | 367 |
1 files changed, 367 insertions, 0 deletions
diff --git a/libquadmath/configure.ac b/libquadmath/configure.ac new file mode 100644 index 000000000..512b9f813 --- /dev/null +++ b/libquadmath/configure.ac @@ -0,0 +1,367 @@ +# Process this file with autoconf to produce a configure script, like so: +# aclocal && autoconf && autoheader && automake + +AC_PREREQ(2.64) +AC_INIT([GCC Quad-precision Math Library], 0.1,,[libquadmath]) +AC_CONFIG_HEADER(config.h) + +# Gets build, host, target, *_vendor, *_cpu, *_os, etc. +# +# You will slowly go insane if you do not grok the following fact: when +# building this library, the top-level /target/ becomes the library's /host/. +# +# configure then causes --target to default to --host, exactly like any +# other package using autoconf. Therefore, 'target' and 'host' will +# always be the same. This makes sense both for native and cross compilers +# just think about it for a little while. :-) +# +# Also, if this library is being configured as part of a cross compiler, the +# top-level configure script will pass the "real" host as $with_cross_host. +# +# Do not delete or change the following two lines. For why, see +# http://gcc.gnu.org/ml/libstdc++/2003-07/msg00451.html +AC_CANONICAL_SYSTEM +ACX_NONCANONICAL_TARGET + +target_alias=${target_alias-$host_alias} +AC_SUBST(target_alias) + +AM_INIT_AUTOMAKE([1.9.0 foreign subdir-objects no-dist -Wall -Wno-override -Werror]) + +AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) +AC_ARG_ENABLE(version-specific-runtime-libs, +AS_HELP_STRING([--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) + +GCC_NO_EXECUTABLES + +AC_USE_SYSTEM_EXTENSIONS + +# See if makeinfo has been installed and is modern enough +# that we can use it. +ACX_CHECK_PROG_VER([MAKEINFO], [makeinfo], [--version], + [GNU texinfo.* \([0-9][0-9.]*\)], + [4.[4-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*]) +AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes") + +ACX_BUGURL([http://gcc.gnu.org/bugs.html]) + +# Configure libtool +AM_PROG_LIBTOOL +ACX_LT_HOST_FLAGS +AC_SUBST(enable_shared) +AC_SUBST(enable_static) + +AM_MAINTAINER_MODE +AM_ENABLE_MULTILIB(, ..) + +AC_LANG_C +# The same as in boehm-gc and libstdc++. Have to borrow it from there. +# We must force CC to /not/ be precious variables; otherwise +# the wrong, non-multilib-adjusted value will be used in multilibs. +# As a side effect, we have to subst CFLAGS ourselves. + +m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) +m4_define([_AC_ARG_VAR_PRECIOUS],[]) +AC_PROG_CC +m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) + +AC_SUBST(CFLAGS) + +AM_PROG_CC_C_O + +if test "x$GCC" != "xyes"; then + AC_MSG_ERROR([libquadmath must be built with GCC]) +fi +AC_PROG_CPP + +# Calculate toolexeclibdir +# Also toolexecdir, though it's only used in toolexeclibdir +case ${version_specific_libs} in + yes) + # Need the gcc compiler version to know where to install libraries + # and header files if --enable-version-specific-runtime-libs option + # is selected. + toolexecdir='$(libdir)/gcc/$(target_alias)' + toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' + ;; + no) + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + # Install a library built with a cross compiler in tooldir, not libdir. + toolexecdir='$(exec_prefix)/$(target_alias)' + toolexeclibdir='$(toolexecdir)/lib' + else + toolexecdir='$(libdir)/gcc-lib/$(target_alias)' + toolexeclibdir='$(libdir)' + fi + multi_os_directory=`$CC -print-multi-os-directory` + case $multi_os_directory in + .) ;; # Avoid trailing /. + *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; + esac + ;; +esac +AC_SUBST(toolexecdir) +AC_SUBST(toolexeclibdir) + +AC_CHECK_HEADERS(fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h) + +# If available, sqrtl and cbrtl speed up the calculation - +# but they are not required +if test x$gcc_no_link != xyes; then + AC_CHECK_LIB([m],[sqrtl],[AC_DEFINE([HAVE_SQRTL],[1],[libm includes sqrtl])]) + AC_CHECK_LIB([m],[cbrtl],[AC_DEFINE([HAVE_CBRTL],[1],[libm includes cbrtl])]) + AC_CHECK_LIB([m],[feholdexcept],[AC_DEFINE([HAVE_FEHOLDEXCEPT],[1],[libm includes feholdexcept])]) + AC_CHECK_LIB([m],[fesetround],[AC_DEFINE([HAVE_FESETROUND],[1],[libm includes fesetround])]) + AC_CHECK_LIB([m],[feupdateenv],[AC_DEFINE([HAVE_FEUPDATEENV],[1],[libm includes feupdateenv])]) + AC_CHECK_LIB([m],[fesetenv],[AC_DEFINE([HAVE_FESETENV],[1],[libm includes fesetenv])]) + AC_CHECK_LIB([m],[fetestexcept],[AC_DEFINE([HAVE_FETESTEXCEPT],[1],[libm includes fetestexcept])]) + AC_CHECK_FUNCS(strtoull) +else + if test "x$ac_cv_lib_m_sqrtl" = x""yes; then + AC_DEFINE([HAVE_SQRTL],[1],[libm includes sqrtl]) + fi + if test "x$ac_cv_lib_m_cbrtl" = x""yes; then + AC_DEFINE([HAVE_CBRTL],[1],[libm includes cbrtl]) + fi + if test "x$ac_cv_lib_m_feholdexcept" = x""yes; then + AC_DEFINE([HAVE_FEHOLDEXCEPT],[1],[libm includes feholdexcept]) + fi + if test "x$ac_cv_lib_m_fesetround" = x""yes; then + AC_DEFINE([HAVE_FESETROUND],[1],[libm includes fesetround]) + fi + if test "x$ac_cv_lib_m_feupdateenv" = x""yes; then + AC_DEFINE([HAVE_FEUPDATEENV],[1],[libm includes feupdateenv]) + fi + if test "x$ac_cv_lib_m_fesetenv" = x""yes; then + AC_DEFINE([HAVE_FESETENV],[1],[libm includes fesetenv]) + fi + if test "x$ac_cv_lib_m_fetestexcept" = x""yes; then + AC_DEFINE([HAVE_FETESTEXCEPT],[1],[libm includes fetestexcept]) + fi +fi + +# Check for hidden visibility (copied from libssp). +saved_CFLAGS="$CFLAGS" +CFLAGS="$CFLAGS -Werror" +AC_MSG_CHECKING([whether hidden visibility is supported]) +AC_TRY_COMPILE([ +void __attribute__((visibility ("hidden"))) bar (void) {}],, +[quadmath_hidden=yes],[quadmath_hidden=no]) +AC_MSG_RESULT($quadmath_hidden) +if test x$quadmath_hidden = xyes; then + AC_DEFINE([HAVE_HIDDEN_VISIBILITY],[1],[__attribute__((visibility ("hidden"))) supported]) +fi +CFLAGS="$saved_CFLAGS" + +# Check for symbol versioning (copied from libssp). +AC_MSG_CHECKING([whether symbol versioning is supported]) +AC_ARG_ENABLE(symvers, +AS_HELP_STRING([--disable-symvers], + [disable symbol versioning for libquadmath]), +quadmath_use_symver=$enableval, +quadmath_use_symver=yes) +if test "x$quadmath_use_symver" = xyes; then + if test x$gcc_no_link = xyes; then + # If we cannot link, we cannot build shared libraries, so do not use + # symbol versioning. + quadmath_use_symver=no + else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map" + cat > conftest.map <<EOF +FOO_1.0 { + global: *foo*; bar; local: *; +}; +EOF + AC_TRY_LINK([int foo;],[],[quadmath_use_symver=gnu],[quadmath_use_symver=no]) + if test x$quadmath_use_symver = xno; then + case "$target_os" in + solaris2*) + LDFLAGS="$save_LDFLAGS" + LDFLAGS="$LDFLAGS -fPIC -shared -Wl,-M,./conftest.map" + # Sun ld cannot handle wildcards and treats all entries as undefined. + cat > conftest.map <<EOF +FOO_1.0 { + global: foo; local: *; +}; +EOF + AC_TRY_LINK([int foo;],[],[quadmath_use_symver=sun],[quadmath_use_symver=no]) + ;; + esac + fi + LDFLAGS="$save_LDFLAGS" + fi +fi +AC_MSG_RESULT($quadmath_use_symver) +AM_CONDITIONAL(LIBQUAD_USE_SYMVER, [test "x$quadmath_use_symver" != xno]) +AM_CONDITIONAL(LIBQUAD_USE_SYMVER_GNU, [test "x$quadmath_use_symver" = xgnu]) +AM_CONDITIONAL(LIBQUAD_USE_SYMVER_SUN, [test "x$quadmath_use_symver" = xsun]) + +AC_CACHE_CHECK([whether __float128 is supported], [libquad_cv_have_float128], + [GCC_TRY_COMPILE_OR_LINK([ + typedef _Complex float __attribute__((mode(TC))) __complex128; + + __float128 foo (__float128 x) + { + + __complex128 z1, z2; + + z1 = x; + z2 = x / 7.Q; + z2 /= z1; + + return (__float128) z2; + } + + __float128 bar (__float128 x) + { + return x * __builtin_huge_valq (); + } + ],[ + foo (1.2Q); + bar (1.2Q); + ],[ + libquad_cv_have_float128=yes + ],[ + libquad_cv_have_float128=no +])]) +AM_CONDITIONAL(BUILD_LIBQUADMATH, [test "x$libquad_cv_have_float128" = xyes]) + +# Check for printf hook support. +AC_MSG_CHECKING([whether printf hooks are supported]) +AC_TRY_COMPILE([ +#include <printf.h> +#include <stdarg.h> +#include <stdlib.h> +extern void flt128_va (void *, va_list *); +extern int flt128_ais (const struct printf_info *, size_t, int *, int *); +extern int flt128_printf_fp (FILE *, const struct printf_info *, const void *const *); +],[ +int pa_flt128 = register_printf_type (flt128_va); +int mod_Q = register_printf_modifier (L"Q"); +int res = register_printf_specifier ('f', flt128_printf_fp, flt128_ais); +struct printf_info info = { .user = -1 }; +], +[quadmath_printf_hooks=yes],[quadmath_printf_hooks=no]) +AC_MSG_RESULT($quadmath_printf_hooks) +if test x$quadmath_printf_hooks = xyes; then + AC_DEFINE([HAVE_PRINTF_HOOKS],[1],[GNU C Library stype printf hooks supported]) +fi + +# Check for whether locale support for quadmath_snprintf or Q printf hooks +# should be provided. +AC_MSG_CHECKING([whether nl_langinfo should be used]) +AC_TRY_COMPILE([#include <langinfo.h>],[ +const char *s; +s = nl_langinfo (DECIMAL_POINT); +s = nl_langinfo (MON_DECIMAL_POINT); +s = nl_langinfo (GROUPING); +s = nl_langinfo (MON_GROUPING); +s = nl_langinfo (THOUSANDS_SEP); +s = nl_langinfo (MON_THOUSANDS_SEP); +(void) s; +], +[quadmath_use_nl_langinfo=yes],[quadmath_use_nl_langinfo=no]) +AC_MSG_RESULT($quadmath_use_nl_langinfo) +if test x$quadmath_use_nl_langinfo = xyes; then + AC_DEFINE([USE_NL_LANGINFO],[1],[whether nl_langinfo should be used]) +fi + +AC_MSG_CHECKING([whether nl_langinfo should be used for wide char locale info]) +AC_TRY_COMPILE([#include <langinfo.h>],[ +const char *s; +s = nl_langinfo (_NL_NUMERIC_DECIMAL_POINT_WC); +s = nl_langinfo (_NL_MONETARY_DECIMAL_POINT_WC); +s = nl_langinfo (_NL_NUMERIC_THOUSANDS_SEP_WC); +s = nl_langinfo (_NL_MONETARY_THOUSANDS_SEP_WC); +(void) s; +], +[quadmath_use_nl_langinfo_wc=yes],[quadmath_use_nl_langinfo_wc=no]) +AC_MSG_RESULT($quadmath_use_nl_langinfo_wc) +if test x$quadmath_use_nl_langinfo_wc = xyes; then + AC_DEFINE([USE_NL_LANGINFO_WC],[1],[whether nl_langinfo should be used for wide char locale info]) +fi + +AC_MSG_CHECKING([whether localeconv should be used]) +AC_TRY_COMPILE([#include <locale.h>],[ +const struct lconv *l = localeconv (); +const char *s; +s = l->decimal_point; +s = l->mon_decimal_point; +s = l->grouping; +s = l->mon_grouping; +s = l->thousands_sep; +s = l->mon_thousands_sep; +(void) s; +], +[quadmath_use_localeconv=yes],[quadmath_use_localeconv=no]) +AC_MSG_RESULT($quadmath_use_localeconv) +if test x$quadmath_use_localeconv = xyes; then + AC_DEFINE([USE_LOCALECONV],[1],[whether localeconv should be used]) +fi + +# Check for whether i18n number rewriting support for quadmath_snprintf +# or Q printf hooks should be provided. +AC_MSG_CHECKING([whether i18n number rewriting support for quadmath_snprintf should be added]) +AC_TRY_COMPILE([#include <langinfo.h> +#include <limits.h> +#include <string.h> +#include <wchar.h> +#include <wctype.h>],[ +const char *s; +char decimal[MB_LEN_MAX]; +wctrans_t map = wctrans ("to_outpunct"); +wint_t wdecimal = towctrans (L'.', map); +mbstate_t state; +memset (&state, '\0', sizeof (state)); +wcrtomb (decimal, wdecimal, &state); +s = nl_langinfo (_NL_CTYPE_OUTDIGIT0_MB); +s = nl_langinfo (_NL_CTYPE_OUTDIGIT0_WC); +s = nl_langinfo (_NL_CTYPE_MB_CUR_MAX); +(void) s; +], +[quadmath_use_i18n_number_h=yes],[quadmath_use_i18n_number_h=no]) +AC_MSG_RESULT($quadmath_use_i18n_number_h) +if test x$quadmath_use_i18n_number_h = xyes; then + AC_DEFINE([USE_I18N_NUMBER_H],[1],[whether i18n number rewriting can be supported]) +fi + +AC_CACHE_SAVE + +if test ${multilib} = yes; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + + +# We would like our source tree to be readonly. However when releases or +# pre-releases are generated, the flex/bison generated files as well as the +# various formats of manuals need to be included along with the rest of the +# sources. Therefore we have --enable-generated-files-in-srcdir to do +# just that. +AC_MSG_CHECKING(generated-files-in-srcdir) +AC_ARG_ENABLE(generated-files-in-srcdir, +AS_HELP_STRING([--enable-generated-files-in-srcdir], + [put copies of generated files in source dir intended for creating source tarballs for users without texinfo bison or flex]), +[case "$enableval" in + yes) enable_generated_files_in_srcdir=yes ;; + no) enable_generated_files_in_srcdir=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; + esac], +[enable_generated_files_in_srcdir=no]) +AC_MSG_RESULT($enable_generated_files_in_srcdir) +AM_CONDITIONAL(GENINSRC, test "$enable_generated_files_in_srcdir" = yes) + + +AC_CONFIG_FILES(Makefile) +AC_OUTPUT |