URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libstdc++-v3/] [configure.ac] - Rev 742
Compare with Previous | Blame | View Log
# Process this file with autoreconf to produce a configure script.AC_PREREQ(2.64)AC_INIT(package-unused, version-unused,, libstdc++)AC_CONFIG_SRCDIR(src/shared/hashtable-aux.cc)AC_CONFIG_HEADER(config.h)# This works around the fact that libtool configuration may change LD# for this particular configuration, but some shells, instead of# keeping the changes in LD private, export them just because LD is# exported. Only used at the end of this file.### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD# Find the rest of the source tree framework.AM_ENABLE_MULTILIB(, ..)# Gets build, host, target, *_vendor, *_cpu, *_os, etc.## You will slowly go insane if you do not grok the following fact: when# building v3 as part of the compiler, 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 v3 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.htmlAC_CANONICAL_SYSTEMtarget_alias=${target_alias-$host_alias}# Handy for debugging:#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5if test "$build" != "$host"; then# We are being configured with some form of cross compiler.GLIBCXX_IS_NATIVE=falsecase "$host","$target" in# Darwin crosses can use the host system's libraries and headers,# because of the fat library support. Of course, it must be the# same version of Darwin on both sides. Allow the user to# just say --target=foo-darwin without a version number to mean# "the version on this system".*-*-darwin*,*-*-darwin*)hostos=`echo $host | sed 's/.*-darwin/darwin/'`targetos=`echo $target | sed 's/.*-darwin/darwin/'`if test $hostos = $targetos -o $targetos = darwin ; thenGLIBCXX_IS_NATIVE=truefi;;*)GCC_NO_EXECUTABLES;;esacelseGLIBCXX_IS_NATIVE=truefi# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the# following is magically included in AUTOMAKE_OPTIONS in each Makefile.am.# 1.x: minimum required version# no-define: PACKAGE and VERSION will not be #define'd in config.h (a bunch# of other PACKAGE_* variables will, however, and there's nothing# we can do about that; they come from AC_INIT).# foreign: we don't follow the normal rules for GNU packages (no COPYING# file in the top srcdir, etc, etc), so stop complaining.# no-dependencies: turns off auto dependency generation (just for now)# no-dist: we don't want 'dist' and related rules.# -Wall: turns on all automake warnings...# -Wno-portability: ...except this one, since GNU make is now required.AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dependencies no-dist -Wall -Wno-portability -Wno-override])AH_TEMPLATE(PACKAGE, [Name of package])AH_TEMPLATE(VERSION, [Version number of package])# -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.save_CXXFLAGS="$CXXFLAGS"CXXFLAGS="$CXXFLAGS -fno-builtin"AC_PROG_CCAC_PROG_CXXCXXFLAGS="$save_CXXFLAGS"# Runs configure.host, and assorted other critical bits. Sets# up critical shell variables.GLIBCXX_CONFIGUREif test "x${with_newlib}" != "xyes"; thenAC_LIBTOOL_DLOPENfiAM_PROG_LIBTOOLACX_LT_HOST_FLAGSAC_SUBST(enable_shared)AC_SUBST(enable_static)# Eliminate -lstdc++ addition to postdeps for cross compiles.postdeps_CXX=`echo " $postdeps_CXX " | sed 's, -lstdc++ ,,g'`# Possibly disable most of the library.## TODO: Consider skipping unncessary tests altogether in this case, rather## than just ignoring the results. Faster /and/ more correct, win win.GLIBCXX_ENABLE_HOSTED# Enable compiler support that doesn't require linking.GLIBCXX_ENABLE_SJLJ_EXCEPTIONSGLIBCXX_ENABLE_PCH($is_hosted)GLIBCXX_ENABLE_THREADSGLIBCXX_ENABLE_ATOMIC_BUILTINSGLIBCXX_ENABLE_DECIMAL_FLOATGLIBCXX_ENABLE_INT128_FLOAT128# Checks for compiler support that doesn't require linking.GLIBCXX_CHECK_COMPILER_FEATURES# Enable all the variable C++ runtime options that don't require linking.GLIBCXX_ENABLE_CSTDIOGLIBCXX_ENABLE_CLOCALEGLIBCXX_ENABLE_ALLOCATORGLIBCXX_ENABLE_CHEADERS($c_model) dnl c_model from configure.hostGLIBCXX_ENABLE_LONG_LONG([yes])GLIBCXX_ENABLE_WCHAR_T([yes])GLIBCXX_ENABLE_C99([yes])GLIBCXX_ENABLE_CONCEPT_CHECKS([no])GLIBCXX_ENABLE_DEBUG_FLAGS(["-gdwarf-4 -g3 -O0"])GLIBCXX_ENABLE_DEBUG([no])GLIBCXX_ENABLE_PARALLEL([yes])GLIBCXX_ENABLE_CXX_FLAGSGLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no])GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes])GLIBCXX_ENABLE_PYTHONGLIBCXX_ENABLE_WERROR([yes])# Checks for operating systems support that doesn't require linking.GLIBCXX_CHECK_MATH_PROTOGLIBCXX_CHECK_STDLIB_PROTOGLIBCXX_CHECK_SYSTEM_ERROR# For the streamoff typedef.GLIBCXX_CHECK_INT64_T# For LFS support.GLIBCXX_CHECK_LFS# For showmanyc_helper().AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)GLIBCXX_CHECK_POLLGLIBCXX_CHECK_S_ISREG_OR_S_IFREG# For xsputn_2().AC_CHECK_HEADERS(sys/uio.h)GLIBCXX_CHECK_WRITEV# For C99 support to TR1.GLIBCXX_CHECK_C99_TR1# For the EOF, SEEK_CUR, and SEEK_END integer constants.GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS# For gettimeofday support.GLIBCXX_CHECK_GETTIMEOFDAY# For clock_gettime, nanosleep and sched_yield support.# NB: The default is [no], because otherwise it requires linking.GLIBCXX_ENABLE_LIBSTDCXX_TIME([no])AC_LC_MESSAGES# For hardware_concurrencyAC_CHECK_HEADERS(sys/sysinfo.h)GLIBCXX_CHECK_GET_NPROCSAC_CHECK_HEADERS(unistd.h)GLIBCXX_CHECK_SC_NPROCESSORS_ONLNGLIBCXX_CHECK_SC_NPROC_ONLNGLIBCXX_CHECK_PTHREADS_NUM_PROCESSORS_NPGLIBCXX_CHECK_SYSCTL_HW_NCPU# Check for available headers.AC_CHECK_HEADERS([endian.h execinfo.h float.h fp.h ieeefp.h inttypes.h \locale.h machine/endian.h machine/param.h nan.h stdint.h stdlib.h string.h \strings.h sys/ipc.h sys/isa_defs.h sys/machine.h sys/param.h \sys/resource.h sys/sem.h sys/stat.h sys/time.h sys/types.h unistd.h \wchar.h wctype.h])# Only do link tests if native. Else, hardcode.if $GLIBCXX_IS_NATIVE; then# We can do more elaborate tests that assume a working linker.CANADIAN=noGLIBCXX_CHECK_LINKER_FEATURESGLIBCXX_CHECK_MATH_SUPPORTGLIBCXX_CHECK_STDLIB_SUPPORT# For /dev/random and /dev/urandom for TR1.GLIBCXX_CHECK_RANDOM_TR1# For TLS support.GCC_CHECK_TLS# For iconv support.AM_ICONVelse# This lets us hard-code the functionality we know we'll have in the cross# target environment. "Let" is a sugar-coated word placed on an especially# dull and tedious hack, actually.## Here's why GLIBCXX_CHECK_MATH_SUPPORT, and other autoconf macros# that involve linking, can't be used:# "cannot open sim-crt0.o"# "cannot open crt0.o"# etc. All this is because there currently exists no unified, consistent# way for top level CC information to be passed down to target directories:# newlib includes, newlib linking info, libgloss versus newlib crt0.o, etc.# When all of that is done, all of this hokey, excessive AC_DEFINE junk for# crosses can be removed.# If Canadian cross, then don't pick up tools from the build directory.# Used only in GLIBCXX_EXPORT_INCLUDES.if test -n "$with_cross_host" &&test x"$build_alias" != x"$with_cross_host" &&test x"$build" != x"$target";thenCANADIAN=yeselseCANADIAN=nofi# Construct crosses by hand, eliminating bits that need ld...# GLIBCXX_CHECK_MATH_SUPPORT# First, test for "known" system libraries. We may be using newlib even# on a hosted environment.if test "x${with_newlib}" = "xyes"; thenos_include_dir="os/newlib"AC_DEFINE(HAVE_HYPOT)# GLIBCXX_CHECK_STDLIB_SUPPORTAC_DEFINE(HAVE_STRTOF)AC_DEFINE(HAVE_ACOSF)AC_DEFINE(HAVE_ASINF)AC_DEFINE(HAVE_ATAN2F)AC_DEFINE(HAVE_ATANF)AC_DEFINE(HAVE_CEILF)AC_DEFINE(HAVE_COSF)AC_DEFINE(HAVE_COSHF)AC_DEFINE(HAVE_EXPF)AC_DEFINE(HAVE_FABSF)AC_DEFINE(HAVE_FLOORF)AC_DEFINE(HAVE_FMODF)AC_DEFINE(HAVE_FREXPF)AC_DEFINE(HAVE_LDEXPF)AC_DEFINE(HAVE_LOG10F)AC_DEFINE(HAVE_LOGF)AC_DEFINE(HAVE_MODFF)AC_DEFINE(HAVE_POWF)AC_DEFINE(HAVE_SINF)AC_DEFINE(HAVE_SINHF)AC_DEFINE(HAVE_SQRTF)AC_DEFINE(HAVE_TANF)AC_DEFINE(HAVE_TANHF)AC_DEFINE(HAVE_ICONV)elseGLIBCXX_CROSSCONFIGfi# At some point, we should differentiate between architectures# like x86, which have long double versions, and alpha/powerpc/etc.,# which don't. For the time being, punt.if test x"long_double_math_on_this_cpu" = x"yes"; thenAC_DEFINE(HAVE_ACOSL)AC_DEFINE(HAVE_ASINL)AC_DEFINE(HAVE_ATAN2L)AC_DEFINE(HAVE_ATANL)AC_DEFINE(HAVE_CEILL)AC_DEFINE(HAVE_COSL)AC_DEFINE(HAVE_COSHL)AC_DEFINE(HAVE_EXPL)AC_DEFINE(HAVE_FABSL)AC_DEFINE(HAVE_FLOORL)AC_DEFINE(HAVE_FMODL)AC_DEFINE(HAVE_FREXPL)AC_DEFINE(HAVE_LDEXPL)AC_DEFINE(HAVE_LOG10L)AC_DEFINE(HAVE_LOGL)AC_DEFINE(HAVE_MODFL)AC_DEFINE(HAVE_POWL)AC_DEFINE(HAVE_SINCOSL)AC_DEFINE(HAVE_SINL)AC_DEFINE(HAVE_SINHL)AC_DEFINE(HAVE_SQRTL)AC_DEFINE(HAVE_TANL)AC_DEFINE(HAVE_TANHL)fifi# Check for _Unwind_GetIPInfo.GCC_CHECK_UNWIND_GETIPINFOGCC_LINUX_FUTEX([AC_DEFINE(HAVE_LINUX_FUTEX, 1, [Define if futex syscall is available.])])GCC_HEADER_STDINT(include/gstdint.h)GLIBCXX_ENABLE_SYMVERS([yes])AC_SUBST(libtool_VERSION)GLIBCXX_ENABLE_LIBSTDCXX_VISIBILITY([yes])ac_ldbl_compat=nocase "$target" inpowerpc*-*-linux* | \sparc*-*-linux* | \s390*-*-linux* | \alpha*-*-linux*)AC_TRY_COMPILE(, [#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))#error no need for long double compatibility#endif], [ac_ldbl_compat=yes], [ac_ldbl_compat=no])if test "$ac_ldbl_compat" = yes; thenAC_DEFINE([_GLIBCXX_LONG_DOUBLE_COMPAT],1,[Define if compatibility should be provided for -mlong-double-64.])port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"fiesacGLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes)# This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.GLIBCXX_CONFIGURE_TESTSUITE# For gthread support. Depends on GLIBCXX_ENABLE_SYMVERS.GLIBCXX_CHECK_GTHREADS# Define documentation rules conditionally.# 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")# Check for doxygenAC_CHECK_PROG([DOXYGEN], doxygen, yes, no)AC_CHECK_PROG([DOT], dot, yes, no)# Check for docbookAC_CHECK_PROG([XSLTPROC], xsltproc, yes, no)AC_CHECK_PROG([XMLLINT], xmllint, yes, no)GLIBCXX_CONFIGURE_DOCBOOK# Check for xml/html dependencies.AM_CONDITIONAL(BUILD_XML,test $ac_cv_prog_DOXYGEN = "yes" &&test $ac_cv_prog_DOT = "yes" &&test $ac_cv_prog_XSLTPROC = "yes" &&test $ac_cv_prog_XMLLINT = "yes" &&test $glibcxx_stylesheets = "yes")AM_CONDITIONAL(BUILD_HTML,test $ac_cv_prog_DOXYGEN = "yes" &&test $ac_cv_prog_DOT = "yes" &&test $ac_cv_prog_XSLTPROC = "yes" &&test $ac_cv_prog_XMLLINT = "yes" &&test $glibcxx_stylesheets = "yes")# Check for man dependencies.AM_CONDITIONAL(BUILD_MAN,test $ac_cv_prog_DOXYGEN = "yes" &&test $ac_cv_prog_DOT = "yes")# Check for pdf dependencies.AC_CHECK_PROG([DBLATEX], dblatex, yes, no)AC_CHECK_PROG([PDFLATEX], pdflatex, yes, no)AM_CONDITIONAL(BUILD_PDF,test $ac_cv_prog_DBLATEX = "yes" &&test $ac_cv_prog_PDFLATEX = "yes")# Propagate the target-specific source directories through the build chain.ATOMICITY_SRCDIR=config/${atomicity_dir}ATOMIC_WORD_SRCDIR=config/${atomic_word_dir}ATOMIC_FLAGS=${atomic_flags}CPU_DEFINES_SRCDIR=config/${cpu_defines_dir}OS_INC_SRCDIR=config/${os_include_dir}ERROR_CONSTANTS_SRCDIR=config/${error_constants_dir}ABI_TWEAKS_SRCDIR=config/${abi_tweaks_dir}AC_SUBST(ATOMICITY_SRCDIR)AC_SUBST(ATOMIC_WORD_SRCDIR)AC_SUBST(ATOMIC_FLAGS)AC_SUBST(CPU_DEFINES_SRCDIR)AC_SUBST(ABI_TWEAKS_SRCDIR)AC_SUBST(OS_INC_SRCDIR)AC_SUBST(ERROR_CONSTANTS_SRCDIR)# Determine cross-compile flags and AM_CONDITIONALs.#AC_SUBST(GLIBCXX_IS_NATIVE)#AM_CONDITIONAL(CANADIAN, test $CANADIAN = yes)GLIBCXX_EVALUATE_CONDITIONALSAC_CACHE_SAVEif test ${multilib} = yes; thenmultilib_arg="--enable-multilib"elsemultilib_arg=fi# Export all the install information.GLIBCXX_EXPORT_INSTALL_INFO# Export all the include and flag information to Makefiles.GLIBCXX_EXPORT_INCLUDESGLIBCXX_EXPORT_FLAGSif test "$enable_shared" = yes; thenPIC_CXXFLAGS="-prefer-pic"elsePIC_CXXFLAGS=fiAC_SUBST(PIC_CXXFLAGS)dnl In autoconf 2.5x, AC_OUTPUT is replaced by four AC_CONFIG_* macros,dnl which can all be called multiple times as needed, plus one (different)dnl AC_OUTPUT macro. This one lists the files to be created:AC_CONFIG_FILES(Makefile)AC_CONFIG_FILES([scripts/testsuite_flags],[chmod +x scripts/testsuite_flags])AC_CONFIG_FILES([scripts/extract_symvers],[chmod +x scripts/extract_symvers])# Multilibs need MULTISUBDIR defined correctly in certain makefiles so# that multilib installs will end up installed in the correct place.# The testsuite needs it for multilib-aware ABI baseline files.# To work around this not being passed down from config-ml.in -># srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually# append it here. Only modify Makefiles that have just been created.## Also, get rid of this simulated-VPATH thing that automake does.AC_CONFIG_FILES(AC_FOREACH([DIR], glibcxx_SUBDIRS, [DIR/Makefile ]),[cat > vpsed$$ << \_EOFs!`test -f '$<' || echo '$(srcdir)/'`!!_EOFsed -f vpsed$$ $ac_file > tmp$$mv tmp$$ $ac_filerm vpsed$$echo 'MULTISUBDIR =' >> $ac_fileml_norecursion=yes. ${multi_basedir}/config-ml.inAS_UNSET([ml_norecursion])])AC_CONFIG_COMMANDS([generate-headers],[(cd include && ${MAKE-make} pch_build= )])dnl And this actually makes things happen:AC_OUTPUT
