diff options
author | Richard Guenther <rguenther@suse.de> | 2006-01-31 11:56:46 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2006-01-31 11:56:46 +0000 |
commit | 0058967bb0b6d9395ceae3916f85ba7bcbfa3e8f (patch) | |
tree | 1bd09a73712c40d7c7750282692a1f094c832bba /libgcc-math/configure.ac | |
parent | 842173466d766db080cbc9e837988e31b453d05f (diff) | |
download | gcc-0058967bb0b6d9395ceae3916f85ba7bcbfa3e8f.zip gcc-0058967bb0b6d9395ceae3916f85ba7bcbfa3e8f.tar.gz gcc-0058967bb0b6d9395ceae3916f85ba7bcbfa3e8f.tar.bz2 |
Makefile.def (target_modules): Add libgcc-math target module.
2006-01-31 Richard Guenther <rguenther@suse.de>
Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (target_modules): Add libgcc-math target module.
* configure.in (target_libraries): Add libgcc-math target library.
(--enable-libgcc-math): New configure switch.
* Makefile.in: Re-generate.
* configure: Re-generate.
* libgcc-math: New toplevel directory.
* doc/install.texi (--disable-libgcc-math): Document.
libgcc-math/
* configure.ac: New file.
* Makefile.am: Likewise.
* configure: New generated file.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
* libtool-version: New file.
* include/ieee754.h: New file.
* include/libc-symbols.h: Likewise.
* include/math_private.h: Likewise.
* i386/Makefile.am: New file.
* i386/Makefile.in: New generated file.
* i386/sse2.h: New file.
* i386/endian.h: Likewise.
* i386/sse2.map: Linker script for SSE2 ABI math intrinsics.
* flt-32/: Import from glibc.
* dbl-64/: Likewise.
Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>
From-SVN: r110434
Diffstat (limited to 'libgcc-math/configure.ac')
-rw-r--r-- | libgcc-math/configure.ac | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/libgcc-math/configure.ac b/libgcc-math/configure.ac new file mode 100644 index 0000000..3928552 --- /dev/null +++ b/libgcc-math/configure.ac @@ -0,0 +1,148 @@ +# Process this file with autoconf to produce a configure script, like so: +# aclocal && autoconf && autoheader && automake + +AC_PREREQ(2.59) +AC_INIT(libgcc-math, 1.0) +AC_CONFIG_SRCDIR(configure.ac) +AC_CANONICAL_SYSTEM + +AM_INIT_AUTOMAKE + +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) + +AM_MAINTAINER_MODE +AC_EXEEXT + +AM_ENABLE_MULTILIB(, ..) + +target_alias=${target_alias-$host_alias} +AC_SUBST(target_alias) + +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([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) + +AC_SUBST(CFLAGS) + +if test "x$GCC" != "xyes"; then + AC_MSG_ERROR([libgcc-math must be built with GCC]) +fi +AC_PROG_CPP +AM_PROG_AS + +AC_MSG_CHECKING([whether hidden visibility is supported]) +AC_TRY_COMPILE([ +void __attribute__((visibility ("hidden"))) bar (void) {}],, +[gccm_hidden=yes],[gccm_hidden=no]) +AC_MSG_RESULT($gccm_hidden) +if test x$gccm_hidden = xyes; then + AC_DEFINE([HAVE_HIDDEN_VISIBILITY],[1],[__attribute__((visibility ("hidden"))) supported]) +fi + +AC_MSG_CHECKING([whether symbol versioning is supported]) +cat > conftest.map <<EOF +FOO_1.0 { + global: *foo*; bar; local: *; +}; +EOF +save_LDFLAGS="$LDFLAGS" +LDFLAGS="$LDFLAGS -fPIC -shared -Wl,--version-script,./conftest.map" +AC_TRY_LINK([int foo;],[],[gccm_use_symver=yes],[gccm_use_symver=no]) +LDFLAGS="$save_LDFLAGS" +AC_MSG_RESULT($gccm_use_symver) +AM_CONDITIONAL(LIBGCCM_USE_SYMVER, [test "x$gccm_use_symver" = xyes]) + +AC_MSG_CHECKING([whether we are a 32bit target]) +save_CFLAGS="$CFLAGS" +CFLAGS="-O2" +AC_TRY_LINK(,[ +if (sizeof(int) == 4 && sizeof(long) == 4 && sizeof(void *) == 4) + ; +else + undefined_function (); +], +target_ilp32=yes, +target_ilp32=no) +CFLAGS="$save_CFLAGS" +AM_CONDITIONAL(TARGET_ILP32, [test "x$target_ilp32" = xyes]) + + +AM_PROG_LIBTOOL +AC_SUBST(enable_shared) +AC_SUBST(enable_static) + +# 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) + +if test ${multilib} = yes; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + + +# Now check which parts we include in the library. + +arch_subdirs= +case "${target}" in + i?86-* | x86_64-* ) +# Handle multilib cases + if test "x$target_ilp32" = xyes; then + arch_subdirs="i386" + arch_libraries="i386/libsse2.la" + arch_maps="i386/sse2.map" + fi ;; + *) + ;; +esac +AC_SUBST(arch_subdirs) +AC_SUBST(arch_libraries) +AC_SUBST(arch_maps) +AM_CONDITIONAL(BUILD_LIBGCC_MATH, [test "x$arch_subdirs" != x]) + + +AC_CONFIG_FILES([Makefile i386/Makefile]) +AC_OUTPUT |