URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [libgomp/] [configure.ac] - Rev 735
Compare with Previous | Blame | View Log
# Process this file with autoconf to produce a configure script, like so:# aclocal -I ../config && autoconf && autoheader && automakeAC_PREREQ(2.64)AC_INIT([GNU OpenMP Runtime Library], 1.0,,[libgomp])AC_CONFIG_HEADER(config.h)# -------# Options# -------AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])LIBGOMP_ENABLE(version-specific-runtime-libs, no, ,[Specify that runtime libraries should be installed in a compiler-specific directory],permit yes|no)AC_MSG_RESULT($enable_version_specific_runtime_libs)# 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([for --enable-generated-files-in-srcdir])LIBGOMP_ENABLE(generated-files-in-srcdir, no, ,[put copies of generated files in source dir intended for creating sourcetarballs for users without texinfo bison or flex.],permit yes|no)AC_MSG_RESULT($enable_generated_files_in_srcdir)AM_CONDITIONAL(GENINSRC, test "$enable_generated_files_in_srcdir" = yes)# -------# -------# 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.htmlAC_CANONICAL_SYSTEMtarget_alias=${target_alias-$host_alias}# Sets up automake. Must come after AC_CANONICAL_SYSTEM. Each of the# following is magically included in AUTOMAKE_OPTIONS in each Makefile.am.# 1.9.0: 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-dist: we don't want 'dist' and related rules.# -Wall: turns on all automake warnings...# -Wno-portability: ...except this one, since GNU make is required.# -Wno-override: ... and this one, since we do want this in testsuite.AM_INIT_AUTOMAKE([1.9.0 foreign no-dist -Wall -Wno-portability -Wno-override])AM_ENABLE_MULTILIB(, ..)# Calculate toolexeclibdir# Also toolexecdir, though it's only used in toolexeclibdircase ${enable_version_specific_runtime_libs} inyes)# 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'elsetoolexecdir='$(libdir)/gcc-lib/$(target_alias)'toolexeclibdir='$(libdir)'fimulti_os_directory=`$CC -print-multi-os-directory`case $multi_os_directory in.) ;; # Avoid trailing /.*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;esac;;esacAC_SUBST(toolexecdir)AC_SUBST(toolexeclibdir)# Check the compiler.# 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_CCm4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])AC_SUBST(CFLAGS)# In order to override CFLAGS_FOR_TARGET, all of our special flags go# in XCFLAGS. But we need them in CFLAGS during configury. So put them# in both places for now and restore CFLAGS at the end of config.save_CFLAGS="$CFLAGS"# Add -Wall -Werror if we are using GCC.if test "x$GCC" = "xyes"; thenXCFLAGS="$XCFLAGS -Wall -Werror"fi# Find other programs we need.AC_CHECK_TOOL(AR, ar)AC_CHECK_TOOL(RANLIB, ranlib, ranlib-not-found-in-path-error)AC_PATH_PROG(PERL, perl, perl-not-found-in-path-error)AC_PROG_MAKE_SETAC_PROG_INSTALL# 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")# Configure libtoolAM_PROG_LIBTOOLACX_LT_HOST_FLAGSAC_SUBST(enable_shared)AC_SUBST(enable_static)AM_MAINTAINER_MODE# Create a spec file, so that compile/link tests don't failtest -f libgfortran.spec || touch libgfortran.specFCFLAGS="$FCFLAGS -L."# We need gfortran to compile parts of the library# We can't use AC_PROG_FC because it expects a fully working gfortran.#AC_PROG_FC(gfortran)case `echo $GFORTRAN` in-* | no* )FC=no ;;*)set dummy $GFORTRAN; ac_word=$2if test -x "$ac_word"; thenFC="$GFORTRAN"elseFC=nofi ;;esacAC_PROG_FC(gfortran)FCFLAGS="$FCFLAGS -Wall -L../libgfortran"# For libtool versioning info, format is CURRENT:REVISION:AGElibtool_VERSION=1:0:0AC_SUBST(libtool_VERSION)# Check header files.AC_STDC_HEADERSAC_HEADER_TIMEACX_HEADER_STRINGAC_CHECK_HEADERS(unistd.h semaphore.h sys/loadavg.h sys/time.h sys/time.h)GCC_HEADER_STDINT(gstdint.h)# Check to see if -pthread or -lpthread is needed. Prefer the former.# In case the pthread.h system header is not found, this test will fail.XPCFLAGS=""CFLAGS="$CFLAGS -pthread"AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>void *g(void *d) { return NULL; }],[pthread_t t; pthread_create(&t,NULL,g,NULL);])],[XPCFLAGS=" -Wc,-pthread"],[CFLAGS="$save_CFLAGS" LIBS="-lpthread $LIBS"AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>void *g(void *d) { return NULL; }],[pthread_t t; pthread_create(&t,NULL,g,NULL);])],[],[AC_MSG_ERROR([Pthreads are required to build libgomp])])])# Check for functions needed.AC_CHECK_FUNCS(getloadavg clock_gettime strtoull)# Check for broken semaphore implementation on darwin.# sem_init returns: sem_init error: Function not implemented.case "$host" in*-darwin*)AC_DEFINE(HAVE_BROKEN_POSIX_SEMAPHORES, 1,Define if the POSIX Semaphores do not work on your system.);;esacGCC_LINUX_FUTEX(:)# Check for pthread_{,attr_}[sg]etaffinity_np.AC_LINK_IFELSE([AC_LANG_PROGRAM([#define _GNU_SOURCE#include <pthread.h>],[cpu_set_t cpuset;pthread_attr_t attr;pthread_getaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);if (CPU_ISSET (0, &cpuset))CPU_SET (1, &cpuset);elseCPU_ZERO (&cpuset);pthread_setaffinity_np (pthread_self (), sizeof (cpu_set_t), &cpuset);pthread_attr_init (&attr);pthread_attr_getaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);pthread_attr_setaffinity_np (&attr, sizeof (cpu_set_t), &cpuset);])],AC_DEFINE(HAVE_PTHREAD_AFFINITY_NP, 1,[ Define if pthread_{,attr_}{g,s}etaffinity_np is supported.]))# At least for glibc, clock_gettime is in librt. But don't pull that# in if it still doesn't give us the function we want.if test $ac_cv_func_clock_gettime = no; thenAC_CHECK_LIB(rt, clock_gettime,[LIBS="-lrt $LIBS"AC_DEFINE(HAVE_CLOCK_GETTIME, 1,[Define to 1 if you have the `clock_gettime' function.])])fi# See if we support thread-local storage.GCC_CHECK_TLS# See what sort of export controls are availible.LIBGOMP_CHECK_ATTRIBUTE_VISIBILITYLIBGOMP_CHECK_ATTRIBUTE_DLLEXPORTLIBGOMP_CHECK_ATTRIBUTE_ALIASLIBGOMP_ENABLE_SYMVERSif test $enable_symvers = gnu; thenAC_DEFINE(LIBGOMP_GNU_SYMBOL_VERSIONING, 1,[Define to 1 if GNU symbol versioning is used for libgomp.])fi# Get target configury.. ${srcdir}/configure.tgtCFLAGS="$save_CFLAGS $XCFLAGS"# Check for __sync_val_compare_and_swap, but only after the target has# had a chance to set XCFLAGS.LIBGOMP_CHECK_SYNC_BUILTINSXCFLAGS="$XCFLAGS$XPCFLAGS"AC_SUBST(config_path)AC_SUBST(XCFLAGS)AC_SUBST(XLDFLAGS)# Cleanup and exit.CFLAGS="$save_CFLAGS"AC_CACHE_SAVEif test ${multilib} = yes; thenmultilib_arg="--enable-multilib"elsemultilib_arg=fi# Set up the set of libraries that we need to link against for libgomp.# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,# which will force linkage against -lpthread (or equivalent for the system).# That's not 100% ideal, but about the best we can do easily.if test $enable_shared = yes; thenlink_gomp="-lgomp %{static: $LIBS}"elselink_gomp="-lgomp $LIBS"fiAC_SUBST(link_gomp)AM_CONDITIONAL([USE_FORTRAN], [test "$ac_cv_fc_compiler_gnu" = yes])# ??? 2006-01-24: Paulo committed to asking autoconf folk to document# and export AC_COMPUTE_INT. If that happens, then we'll need to remove# the underscore here and update the PREREQ. If it doesn't, then we'll# need to copy this macro to our acinclude.m4.save_CFLAGS="$CFLAGS"for i in $config_path; doif test -f $srcdir/config/$i/omp-lock.h; thenCFLAGS="$CFLAGS -include confdefs.h -include $srcdir/config/$i/omp-lock.h"breakfidone_AC_COMPUTE_INT([sizeof (omp_lock_t)], [OMP_LOCK_SIZE],,[AC_MSG_ERROR([unsupported system, cannot find sizeof (omp_lock_t)])])_AC_COMPUTE_INT([__alignof (omp_lock_t)], [OMP_LOCK_ALIGN])_AC_COMPUTE_INT([sizeof (omp_nest_lock_t)], [OMP_NEST_LOCK_SIZE])_AC_COMPUTE_INT([__alignof (omp_nest_lock_t)], [OMP_NEST_LOCK_ALIGN])_AC_COMPUTE_INT([sizeof (omp_lock_25_t)], [OMP_LOCK_25_SIZE],,[AC_MSG_ERROR([unsupported system, cannot find sizeof (omp_lock_25_t)])])_AC_COMPUTE_INT([__alignof (omp_lock_25_t)], [OMP_LOCK_25_ALIGN])_AC_COMPUTE_INT([sizeof (omp_nest_lock_25_t)], [OMP_NEST_LOCK_25_SIZE])_AC_COMPUTE_INT([__alignof (omp_nest_lock_25_t)], [OMP_NEST_LOCK_25_ALIGN])# If the lock fits in an integer, then arrange for Fortran to use that# integer. If it doesn't, then arrange for Fortran to use a pointer.# Except that we don't have a way at present to multi-lib the installed# Fortran modules, so we assume 8 bytes for pointers, regardless of the# actual target.OMP_LOCK_KIND=$OMP_LOCK_SIZEOMP_NEST_LOCK_KIND=$OMP_NEST_LOCK_SIZEif test $OMP_LOCK_SIZE -gt 8 || test $OMP_LOCK_ALIGN -gt $OMP_LOCK_SIZE; thenOMP_LOCK_KIND=8fiif test $OMP_NEST_LOCK_SIZE -gt 8 || test $OMP_NEST_LOCK_ALIGN -gt $OMP_NEST_LOCK_SIZE; thenOMP_NEST_LOCK_KIND=8fiOMP_LOCK_25_KIND=$OMP_LOCK_25_SIZEOMP_NEST_LOCK_25_KIND=$OMP_NEST_LOCK_25_SIZEif test $OMP_LOCK_25_SIZE -gt 8 || test $OMP_LOCK_25_ALIGN -gt $OMP_LOCK_25_SIZE; thenOMP_LOCK_25_KIND=8fiif test $OMP_NEST_LOCK_25_SIZE -gt 8 || test $OMP_NEST_LOCK_25_ALIGN -gt $OMP_NEST_LOCK_25_SIZE; thenOMP_NEST_LOCK_25_KIND=8fiAC_SUBST(OMP_LOCK_SIZE)AC_SUBST(OMP_LOCK_ALIGN)AC_SUBST(OMP_NEST_LOCK_SIZE)AC_SUBST(OMP_NEST_LOCK_ALIGN)AC_SUBST(OMP_LOCK_KIND)AC_SUBST(OMP_NEST_LOCK_KIND)AC_SUBST(OMP_LOCK_25_SIZE)AC_SUBST(OMP_LOCK_25_ALIGN)AC_SUBST(OMP_NEST_LOCK_25_SIZE)AC_SUBST(OMP_NEST_LOCK_25_ALIGN)AC_SUBST(OMP_LOCK_25_KIND)AC_SUBST(OMP_NEST_LOCK_25_KIND)CFLAGS="$save_CFLAGS"AC_CONFIG_FILES(omp.h omp_lib.h omp_lib.f90 libgomp_f.h)AC_CONFIG_FILES(Makefile testsuite/Makefile libgomp.spec)AC_OUTPUT
