diff options
author | Ken Martin <ken.martin@kitware.com> | 2001-05-21 13:33:35 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2001-05-21 13:33:35 (GMT) |
commit | 4a2ebf219d8f3853c37b184e16f620fb193e3c13 (patch) | |
tree | 28e1c8dbfd17a10c90eebb9f27d02969edf45280 /configure.in | |
parent | 619864c09eac7b4d87e3607c017a52c0499fdc11 (diff) | |
download | CMake-4a2ebf219d8f3853c37b184e16f620fb193e3c13.zip CMake-4a2ebf219d8f3853c37b184e16f620fb193e3c13.tar.gz CMake-4a2ebf219d8f3853c37b184e16f620fb193e3c13.tar.bz2 |
out of place cmake
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 490 |
1 files changed, 490 insertions, 0 deletions
diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..b7b0acb --- /dev/null +++ b/configure.in @@ -0,0 +1,490 @@ +# Process this file with autoconf to produce a configure script. +AC_INIT() + +AC_CONFIG_HEADER(Source/cmConfigure.h) + +CMAKE_CONFIG_DIR=`pwd` +AC_SUBST(CMAKE_CONFIG_DIR) + +# +# check for some programs we use +# +AC_PROG_CC +AC_PROG_CXX +AC_PROG_RANLIB +AC_PROG_INSTALL +AC_PATH_XTRA + +fullSrcDir=`cd $srcdir; pwd` +CMAKE_ROOT_DIR=$fullSrcDir +AC_SUBST(CMAKE_ROOT_DIR) + +# get byte swapping info +AC_C_BIGENDIAN +if test $ac_cv_c_bigendian = yes; then + CMAKE_WORDS_BIGENDIAN=1 +fi +AC_SUBST(CMAKE_WORDS_BIGENDIAN) + + +# some stuff Tcl uses +# +AC_CHECK_HEADER(limits.h, HAVE_LIMITS_H=-DHAVE_LIMITS_H,HAVE_LIMITS_H="") +AC_SUBST(CMAKE_HAVE_LIMITS_H) +AC_HAVE_HEADERS(unistd.h, HAVE_UNISTD_H=-DHAVE_UNISTD_H,HAVE_UNISTD_H="") +AC_SUBST(CMAKE_HAVE_UNISTD_H) + +# Step 1: set the variable "system" to hold the name and version number +# for the system. This can usually be done via the "uname" command, but +# there are a few systems, like Next, where this doesn't work. + +AC_MSG_CHECKING([system version (for dynamic loading)]) +if test -f /usr/lib/NextStep/software_version; then + system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` +else + system=`uname -s`-`uname -r` + if test "$?" -ne 0 ; then + AC_MSG_RESULT([unknown (can't find uname command)]) + system=unknown + else + # Special check for weird MP-RAS system (uname returns weird + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then + system=MP-RAS-`awk '{print $3}' /etc/.relid'` + fi + AC_MSG_RESULT($system) + fi +fi + +# +# use shared libs +# + + +CMAKE_shared_ok="yes" +# the following is an excerpt from the tcl7.5b2 configure.in +#-------------------------------------------------------------------- +# The statements below define a collection of symbols related to +# dynamic loading and shared libraries: +# +# CMAKE_SHLIB_CFLAGS - Flags to pass to cc when compiling the components +# of a shared library (may request position-independent +# code, among other things). +# CMAKE_SHLIB_LD_LIBS - Dependent libraries for the linker to scan when +# creating shared libraries. This symbol typically +# goes at the end of the "ld" commands that build +# shared libraries. The value of the symbol if +# "${LIBS}" if all of the dependent libraries should +# be specified when creating a shared library. If +# dependent libraries should not be specified (as on +# SunOS 4.x, where they cause the link to fail, or in +# general if Tcl and Tk aren't themselves shared +# libraries), then this symbol has an empty string +# as its value. +# CMAKE_SHLIB_SUFFIX - Suffix to use for the name of the shared library. An +# empty string means we don't know how to use shared +# libraries on this platform. +# CMAKE_SHLIB_BUILD_FLAGS - +# Flags to use when building a shared library. +# CMAKE_SHLIB_LINK_FLAGS - +# Flags to pass to the compiler when linking object +# files into an executable application binary such +# as tclsh. +#-------------------------------------------------------------------- + + +# Step 2: check for existence of -ldl library. This is needed because +# Linux can use either -ldl or -ldld for dynamic loading. + +AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) + +# Step 4: set configuration options based on system name and version. + +fullSrcDir=`cd $srcdir; pwd` +AC_SUBST(fullSrcDir) +case $system in + AIX-*) + # AIX: can't link shared library extensions unless Tcl and Tk are + # also shared libraries. + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS='${LIBS}' + CMAKE_SHLIB_SUFFIX="..o" + CMAKE_DL_LIBS="" + AC_CHECK_LIB(ld,printf, CMAKE_DL_LIBS="-lld") + CMAKE_SHLIB_LINK_FLAGS="" + ;; + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + CMAKE_SHLIB_CFLAGS="+z" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".sl" + CMAKE_DL_LIBS="-ldld" + CMAKE_SHLIB_BUILD_FLAGS='+Z -Wl,-E -Wl,-b' + CMAKE_SHLIB_LINK_FLAGS='-Wl,+s -Wl,+b,${LIB_RUNTIME_DIR}' + if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + CMAKE_SHLIB_BUILD_FLAGS='-shared -Wl,-E -Wl,-b' + CMAKE_SHLIB_LINK_FLAGS='-Wl,+s -Wl,+b,${LIB_RUNTIME_DIR}' + fi + ;; + IRIX-5.*) + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_BUILD_FLAGS="-shared -rdata_shared" + ;; + IRIX-6* | IRIX64-6* | IRIX-64-6*) + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_BUILD_FLAGS="-shared -rdata_shared" + ;; + Linux*) + CMAKE_SHLIB_CFLAGS="-fPIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_SHLIB_BUILD_FLAGS="-shared" + if test "$have_dl" = yes; then + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_LINK_FLAGS="-rdynamic" + else + AC_CHECK_HEADER(dld.h, [ + CMAKE_DL_LIBS="-ldld" + CMAKE_SHLIB_LINK_FLAGS=""]) + fi + ;; + CYGWIN_NT*) + CMAKE_SHLIB_CFLAGS="" + CMAKE_DL_LIBS="-lgdi32" + CMAKE_SHLIB_SUFFIX=".dll" + CMAKE_SHLIB_LINK_FLAGS="-shared" + ;; + MP-RAS-02*) + CMAKE_SHLIB_CFLAGS="-K PIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_LINK_FLAGS="" + ;; + MP-RAS-*) + CMAKE_SHLIB_CFLAGS="-K PIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_LINK_FLAGS="-Wl,-Bexport" + ;; + NetBSD-*|FreeBSD-*) + # Not available on all versions: check for include file. + if test -f /usr/include/dlfcn.h; then + CMAKE_SHLIB_CFLAGS="-fpic" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="-shared" + else + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX="..o" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="" + fi + ;; + NEXTSTEP-*) + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="" + ;; + OSF1-1.[012]) + # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 + CMAKE_SHLIB_CFLAGS="" + # Hack: make package name same as library name + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="" + ;; + OSF1-1.*) + # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 + CMAKE_SHLIB_CFLAGS="-fpic" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="" + ;; + OSF1-V*) + # Digital OSF/1 + CMAKE_SHLIB_CFLAGS="" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_BUILD_FLAGS='-shared -Wl,-expect_unresolved,"*"' + CMAKE_SHLIB_LINK_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' + ;; + RISCos-*) + CMAKE_SHLIB_CFLAGS="-G 0" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX="..o" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="-Wl,-D,08000000" + ;; + SCO_SV-3.2*) + # Note, dlopen is available only on SCO 3.2.5 and greater. However, + # this test works, since "uname -s" was non-standard in 3.2.4 and + # below. + CMAKE_SHLIB_CFLAGS="-Kpic -belf" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="-belf -Wl,-Bexport" + ;; + SINIX*5.4*) + CMAKE_SHLIB_CFLAGS="-K PIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_LINK_FLAGS="" + ;; + SunOS-4*) + CMAKE_SHLIB_CFLAGS="-PIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_BUILD_FLAGS='-shared -Wl,-r -nostdlib' + CMAKE_SHLIB_LINK_FLAGS='-Wl,-L${LIB_RUNTIME_DIR}' + ;; + SunOS-5*) + CMAKE_SHLIB_CFLAGS="-KPIC" + CMAKE_SHLIB_LD_LIBS='${LIBS}' + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_BUILD_FLAGS='-G' + CMAKE_SHLIB_LINK_FLAGS='-R ${LIB_RUNTIME_DIR}' + if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + CMAKE_SHLIB_BUILD_FLAGS='-Wl,-G' + CMAKE_SHLIB_LINK_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' + fi + ;; + ULTRIX-4.*) + CMAKE_SHLIB_CFLAGS="-G 0" + CMAKE_SHLIB_SUFFIX="..o" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_DL_LIBS="" + CMAKE_SHLIB_LINK_FLAGS="-Wl,-D,08000000" + ;; + UNIX_SV*) + CMAKE_SHLIB_CFLAGS="-K PIC" + CMAKE_SHLIB_LD_LIBS="" + CMAKE_SHLIB_SUFFIX=".so" + CMAKE_DL_LIBS="-ldl" + CMAKE_SHLIB_LINK_FLAGS="-Wl,-Bexport" + ;; +esac +export CMAKE_SHLIB_SUFFIX + +# If we're running gcc, then change the C flags for compiling shared +# libraries to the right flags for gcc, instead of those for the +# standard manufacturer compiler. +if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + CMAKE_SHLIB_CFLAGS="-fPIC" +fi +# if running on cygwin remove -fPIC flag +case $system in + CYGWIN_NT*) + CMAKE_SHLIB_CFLAGS="" + ;; +esac + +CMAKE_SHLIB_CFLAGS="${SHLIB_CFLAGS}" +CMAKE_LD_SEARCH_FLAGS="${LD_SEARCH_FLAGS}" + + +AC_SUBST(CMAKE_SHLIB_LINK_FLAGS) +AC_SUBST(CMAKE_SHLIB_BUILD_FLAGS) +AC_SUBST(CMAKE_SHLIB_CFLAGS) +AC_SUBST(CMAKE_LIB_EXT) +AC_SUBST(CMAKE_DL_LIBS) +AC_SUBST(CMAKE_SHLIB_LD_LIBS) +AC_SUBST(CMAKE_SHLIB_SUFFIX) + + +########################## +## ## +## Check thread support ## +## ## +########################## +# initialize thread vars +CMAKE_THREAD_LIBS="" +use_sproc=no +CMAKE_USE_SPROC=0 +CMAKE_USE_PTHREADS=0 +CMAKE_HP_PTHREADS=0 + +########################## +## ## +## sproc ## +## ## +########################## +# check for sproc +force_sproc=no +AC_ARG_WITH(sproc, + [ --with-sproc use sproc instead of pthreads if possible], + if test "$withval" = yes; then + force_sproc=yes + fi,) + + + +AC_CHECK_HEADERS(sys/prctl.h, [use_sproc=yes]) +if test "$use_sproc" = "yes"; then +case $system in + Linux* | IRIX64-6.5 | IRIX-6.5) + if test "$force_sproc" = "yes"; then + CMAKE_USE_SPROC=1 + else + use_sproc=no + fi + ;; + IRIX*) + CMAKE_USE_SPROC=1 + ;; +esac +fi +use_pthreads=no +AC_CHECK_HEADERS(pthread.h, [use_pthreads=yes]) +if test "$use_pthreads" = "yes"; then + if test "$use_sproc" = "no"; then + AC_CHECK_LIB(pthreads, pthread_create, CMAKE_THREAD_LIBS="-lpthreads") + AC_CHECK_LIB(pthread, pthread_create, CMAKE_THREAD_LIBS="-lpthread") +# Work around Solaris 5.6 and 5.7 bug: + if test "`uname -s -r`" = "SunOS 5.6"; then + AC_CHECK_LIB(thread, thr_create, CMAKE_THREAD_LIBS="$CMAKE_THREAD_LIBS -lthread") + fi + if test "`uname -s -r`" = "SunOS 5.7"; then + AC_CHECK_LIB(thread, thr_create, CMAKE_THREAD_LIBS="$CMAKE_THREAD_LIBS -lthread") + fi + CMAKE_USE_PTHREADS=1 + fi +fi + +# on an HP with pthread we need to use -lcma +# on dec alphas we have had problems as well +if test "$use_pthreads" = "yes"; then +case $system in + HP-UX-*.10.*) + CMAKE_THREAD_LIBS="-lcma" + CMAKE_USE_PTHREADS=1 + CMAKE_HP_PTHREADS=1 + ;; + OSF1-V*) + CMAKE_USE_PTHREADS=0 + CMAKE_THREAD_LIBS="" + ;; + FreeBSD*) + CMAKE_USE_PTHREADS=0 + CMAKE_THREAD_LIBS="" + ;; +esac +fi + + +AC_SUBST(CMAKE_USE_SPROC) +AC_SUBST(CMAKE_USE_PTHREADS) +AC_SUBST(CMAKE_HP_PTHREADS) +AC_SUBST(CMAKE_THREAD_LIBS) + + +CMAKE_ANSI_CFLAGS="" +# on hp use -Aa for ansi +if test $ac_cv_prog_gxx = no; then +case $system in + HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) + echo $ac_n "checking whether ${CC} accepts -Aa""... $ac_c" 1>&6 + echo 'void f(){}' > conftest.c + if test -z "`${CC} -Aa -c conftest.c 2>&1`"; then + echo "$ac_t""yes" 1>&6 + CMAKE_ANSI_CFLAGS="-Aa" + else + echo "$ac_t""no" 1>&6 + fi + rm -f conftest* + ;; +esac +fi +AC_SUBST(CMAKE_ANSI_CFLAGS) + +# if we are not running g++ then we might need some other flags +# to get the templates compiled correctly +CMAKE_TEMPLATE_FLAGS="" +if test $ac_cv_prog_gxx = no; then + echo $ac_n "checking whether ${CXX} accepts -ptused -no_prelink""... $ac_c" 1>&6 + echo 'void f(){}' > conftest.cc + if test -z "`${CXX} -ptused -no_prelink -c conftest.cc 2>&1`"; then + echo "$ac_t""yes" 1>&6 + CMAKE_TEMPLATE_FLAGS="-ptused -no_prelink" + else + echo "$ac_t""no" 1>&6 + fi + rm -f conftest* + echo $ac_n "checking whether ${CXX} accepts -instances=semiexplicit""... $ac_c" 1>&6 + echo 'void f(){}' > conftest.cc + if test -z "`${CXX} -instances=static -c conftest.cc 2>&1`"; then + echo "$ac_t""yes" 1>&6 + CMAKE_TEMPLATE_FLAGS="-instances=static" + else + echo "$ac_t""no" 1>&6 + fi +fi +AC_SUBST(CMAKE_TEMPLATE_FLAGS) + +# check no g++ compilers to see if they have the standard +# ansi stream files (without the .h) +if test $ac_cv_prog_gxx = no; then + AC_MSG_CHECKING( ansi standard C++ stream headers ) + echo "******" + rm -rf conftest.* + cat > conftest.cc <<! +#include <iostream> +! + if test -z "`${CXX} -c conftest.cc 2>&1`"; then + echo "$ac_t""yes" 1>&6 + else + AC_DEFINE(CMAKE_NO_STD_NAMESPACE) + echo "$ac_t""no" 1>&6 + fi +fi + +# check to see if stl is in the std namespace +if test $ac_cv_prog_gxx = no; then + echo "******" + AC_MSG_CHECKING( ansi standard namespace support ) + rm -rf conftest.* + cat > conftest.cc <<! +#include <list> +void foo() { std::list<int> l; } +! + if test -z "`${CXX} -c conftest.cc 2>&1`"; then + echo "$ac_t""yes" 1>&6 + else + AC_DEFINE(CMAKE_NO_ANSI_STREAM_HEADERS) + echo "$ac_t""no" 1>&6 + fi +fi + + +if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then + SHLIB_CFLAGS="-fPIC" +fi + +# find make to use to build cmake, prefer gmake +AC_PATH_PROGS(RUNMAKE, gmake make) +AC_PATH_PROGS(CMAKE_AR, ar) +AC_SUBST(CMAKE_AR) + +# generate output files. +# create mkdir files just to make some of the directories + +AC_OUTPUT(Makefile Source/Makefile) + |