X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=autoconf%2Fconfigure.ac;h=b7e11e69e6a482ab7d73a42e29cb57882de7ca5a;hb=0c09a411e0c763d69aaefa2321c2ae8daabc80e4;hp=9d9762d4855f7092bc484c28010bec01bce20483;hpb=7931a7867b602fa159f1939daf37756d9c3b1532;p=oota-llvm.git diff --git a/autoconf/configure.ac b/autoconf/configure.ac index 9d9762d4855..b7e11e69e6a 100644 --- a/autoconf/configure.ac +++ b/autoconf/configure.ac @@ -31,11 +31,11 @@ dnl=== dnl===-----------------------------------------------------------------------=== dnl Initialize autoconf and define the package name, version number and dnl email address for reporting bugs. -AC_INIT([[llvm]],[[1.4]],[llvmbugs@cs.uiuc.edu]) +AC_INIT([[llvm]],[[1.6cvs]],[llvmbugs@cs.uiuc.edu]) dnl Provide a copyright substitution and ensure the copyright notice is included dnl in the output of --version option of the generated configure script. -AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2005 U University of Illinois at Urbana-Champaign."]) +AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2005 University of Illinois at Urbana-Champaign."]) AC_COPYRIGHT($LLVM_COPYRIGHT) dnl Indicate that we require autoconf 2.59 or later. Ths is needed because we @@ -72,10 +72,9 @@ do "llvm-test") AC_CONFIG_SUBDIRS([projects/llvm-test]) ;; "llvm-reopt") AC_CONFIG_SUBDIRS([projects/llvm-reopt]);; "llvm-gcc") AC_CONFIG_SUBDIRS([projects/llvm-gcc]) ;; - "Java") AC_CONFIG_SUBDIRS([projects/Java]) ;; + "llvm-java") AC_CONFIG_SUBDIRS([projects/llvm-java]) ;; "llvm-tv") AC_CONFIG_SUBDIRS([projects/llvm-tv]) ;; - "llvm-fefw") AC_CONFIG_SUBDIRS([projects/llvm-fefw]) ;; - "poolalloc") AC_CONFIG_SUBDIRS([projects/poolalloc]) ;; + "llvm-poolalloc") AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) ;; *) AC_MSG_WARN([Unknown project (${i}) won't be configured automatically]) ;; @@ -112,6 +111,9 @@ AC_CACHE_CHECK([type of operating system we're on], *-*-freebsd*) llvm_cv_os_type="FreeBSD" llvm_cv_platform_type="Unix" ;; + *-*-hpux*) + llvm_cv_os_type="HP-UX" + llvm_cv_platform_type="Unix" ;; *-*-interix*) llvm_cv_os_type="Interix" llvm_cv_platform_type="Unix" ;; @@ -147,34 +149,27 @@ dnl to use. case $llvm_cv_platform_type in Unix) AC_DEFINE([LLVM_ON_UNIX],[1],[Define if this is Unixish platform]) + AC_SUBST(LLVM_ON_UNIX,[1]) + AC_SUBST(LLVM_ON_WIN32,[0]) ;; Win32) AC_DEFINE([LLVM_ON_WIN32],[1],[Define if this is Win32ish platform]) + AC_SUBST(LLVM_ON_UNIX,[0]) + AC_SUBST(LLVM_ON_WIN32,[1]) ;; esac -dnl Make a link from lib/System/platform to lib/System/$llvm_cv_os_type -dnl This helps the #inclusion of the system specific include files -dnl for the operating system abstraction library, lib/System. -AC_CONFIG_LINKS(lib/System/platform:lib/System/$llvm_cv_os_type) - -dnl If we are targetting a Sparc machine running Solaris, pretend that it is -dnl V9, since that is all that we support at the moment, and autoconf will only -dnl tell us we're a sparc. -case $target in - sparc*-*-solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]]) - ;; -esac - dnl Determine what our target architecture is and configure accordingly. dnl This will allow Makefiles to make a distinction between the hardware and dnl the OS. AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch], [case $target in i?86-*) llvm_cv_target_arch="x86" ;; - amd64-* | x86_64-*) llvm_cv_target_arch="AMD64" ;; + amd64-* | x86_64-*) llvm_cv_target_arch="x86_64" ;; sparc*-*) llvm_cv_target_arch="Sparc" ;; powerpc*-*) llvm_cv_target_arch="PowerPC" ;; + alpha*-*) llvm_cv_target_arch="Alpha" ;; + ia64-*) llvm_cv_target_arch="IA64" ;; *) llvm_cv_target_arch="Unknown" ;; esac]) @@ -216,7 +211,9 @@ else x86) AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;; Sparc) AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;; PowerPC) AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;; - AMD64) AC_SUBST(JIT,[[]]) ;; + x86_64) AC_SUBST(JIT,[[]]) ;; + Alpha) AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;; + IA64) AC_SUBST(JIT,[[]]) ;; *) AC_SUBST(JIT,[[]]) ;; esac fi @@ -233,6 +230,41 @@ case "$enableval" in *) AC_MSG_ERROR([Invalid setting for --enable-doxygen. Use "yes" or "no"]) ;; esac +dnl Allow specific targets to be specified for building (or not) +TARGETS_TO_BUILD="" +AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-target], + [Build specific host targets: all,host-only,{target-name} (default=all)]),, + enableval=all) +case "$enableval" in + all) TARGETS_TO_BUILD="X86 SparcV8 SparcV9 PowerPC Alpha IA64 Skeleton" ;; + host-only) + case "$llvm_cv_target_arch" in + x86) TARGETS_TO_BUILD="X86" ;; + x86_64) TARGETS_TO_BUILD="X86" ;; + Sparc) TARGETS_TO_BUILD="SparcV8 SparcV9" ;; + PowerPC) TARGETS_TO_BUILD="PowerPC" ;; + Alpha) TARGETS_TO_BUILD="Alpha" ;; + IA64) TARGETS_TO_BUILD="IA64" ;; + *) AC_MSG_ERROR([Can not set target to build]) ;; + esac + ;; + *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do + case "$a_target" in + x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; + x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; + sparc) TARGETS_TO_BUILD="SparcV8 SparcV9 $TARGETS_TO_BUILD" ;; + powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; + alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; + ia64) TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;; + skeleton)TARGETS_TO_BUILD="Skeleton $TARGETS_TO_BUILD";; + *) AC_MSG_ERROR([Unrecognized target $a_target]) ;; + esac + done + ;; +esac +TARGETS_TO_BUILD="CBackend $TARGETS_TO_BUILD" +AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD) + dnl Allow a specific llvm-gcc/llvm-g++ pair to be used with this LLVM config. AC_ARG_WITH(llvmgccdir, AS_HELP_STRING([--with-llvmgccdir], @@ -244,6 +276,7 @@ case "$withval" in *) AC_MSG_ERROR([Invalid path for --with-llvmgccdir. Provide full path]) ;; esac + dnl===-----------------------------------------------------------------------=== dnl=== dnl=== SECTION 4: Check for programs we need and that they are the right version @@ -267,11 +300,22 @@ AC_PATH_PROG(FIND, [find], [find]) AC_PATH_PROG(GREP, [grep], [grep]) AC_PATH_PROG(MKDIR,[mkdir],[mkdir]) AC_PATH_PROG(MV, [mv], [mv]) -AC_PATH_PROG(PAX, [pax], [pax]) AC_PROG_RANLIB AC_PATH_PROG(RM, [rm], [rm]) AC_PATH_PROG(SED, [sed], [sed]) AC_PATH_PROG(TAR, [tar], [gtar]) +AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz]) +if test "$GRAPHVIZ" != "echo Graphviz" ; then + AC_DEFINE([HAVE_GRAPHVIZ],[1],[Define if the Graphviz program is available]) + AC_DEFINE_UNQUOTED([LLVM_PATH_GRAPHVIZ],"$GRAPHVIZ", + [Define to path to Graphviz program if found or 'echo Graphviz' otherwise]) +fi +AC_PATH_PROG(GV, [gv], [echo gv]) +if test "$GRAPHVIZ" != "echo gv" ; then + AC_DEFINE([HAVE_GV],[1],[Define if the gv program is available]) + AC_DEFINE_UNQUOTED([LLVM_PATH_GV],"$GV", + [Define to path to gv program if found or 'echo gv' otherwise]) +fi dnl Find the install program AC_PROG_INSTALL @@ -302,6 +346,11 @@ AC_LIBTOOL_DLOPEN AC_LIB_LTDL AC_PROG_LIBTOOL +if test "$lt_cv_dlopen_self" = "yes" ; then + AC_DEFINE([CAN_DLOPEN_SELF],[1], + [Define if dlopen(0) will open the symbols of the program]) +fi + dnl Check if we know how to tell etags we are using C++: etags_version=`$ETAGS --version 2>&1` case "$etags_version" in @@ -312,11 +361,13 @@ esac AC_SUBST(ETAGSFLAGS,$ETAGSFLAGS) if test "$WITH_LLVMGCCDIR" = "default" ; then - AC_PATH_PROG(LLVMGCC, [llvm-gcc], [llvm-gcc]) - AC_PATH_PROG(LLVMGXX, [llvm-g++], [llvm-g++]) + LLVMGCC="llvm-gcc${EXEEXT}" + LLVMGXX="llvm-g++${EXEEXT}" + AC_PATH_PROG(LLVMGCC, $LLVMGCC, []) + AC_PATH_PROG(LLVMGXX, $LLVMGXX, []) else - LLVMGCC=$WITH_LLVMGCCDIR/bin/llvm-gcc - LLVMGXX=$WITH_LLVMGCCDIR/bin/llvm-g++ + LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}" + LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}" AC_SUBST(LLVMGCC,$LLVMGCC) AC_SUBST(LLVMGXX,$LLVMGXX) fi @@ -353,7 +404,7 @@ fi dnl Verify that GCC is version 3.0 or higher if test "$GCC" = "yes" then - gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1` + gccmajor=`$CC --version | head -n 1 | sed 's/[[^0-9]]*\([[0-9.]]\).*/\1/'` if test "$gccmajor" -lt "3" then AC_MSG_ERROR([gcc 3.x required, but you have a lower version]) @@ -378,6 +429,7 @@ dnl===-----------------------------------------------------------------------=== dnl libelf is for sparc only; we can ignore it if we don't have it AC_CHECK_LIB(elf, elf_begin) + dnl lt_dlopen may be required for plugin support. AC_SEARCH_LIBS(lt_dlopen,ltdl,AC_DEFINE([HAVE_LT_DLOPEN],[1], [Define if lt_dlopen() is available on this platform]), @@ -395,6 +447,7 @@ AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1], dnl pthread locking functions are optional - but llvm will not be thread-safe dnl without locks. +AC_CHECK_LIB(pthread,pthread_mutex_init) AC_SEARCH_LIBS(pthread_mutex_lock,pthread, AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1], [Have pthread_mutex_lock])) @@ -417,8 +470,10 @@ AC_HEADER_SYS_WAIT AC_HEADER_TIME AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h]) -AC_CHECK_HEADERS([malloc.h signal.h stdint.h unistd.h utime.h windows.h]) +AC_CHECK_HEADERS([malloc.h pthread.h signal.h stdint.h unistd.h utime.h]) +AC_CHECK_HEADERS([windows.h]) AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h sys/types.h]) +AC_CHECK_HEADERS([rw/stdex/hash_map.h rw/stdex/hash_set.h]) dnl===-----------------------------------------------------------------------=== dnl=== @@ -441,10 +496,10 @@ dnl=== SECTION 8: Check for specific functions needed dnl=== dnl===-----------------------------------------------------------------------=== -AC_CHECK_FUNCS([backtrace getcwd getpagesize getrusage gettimeofday isatty ]) -AC_CHECK_FUNCS([mkdtemp mkstemp mktemp ]) -AC_CHECK_FUNCS([realpath setrlimit strdup strerror strerror_r strtoll strtoq ]) -AC_CHECK_FUNCS([sysconf]) +AC_CHECK_FUNCS([backtrace getcwd getpagesize getrusage gettimeofday ]) +AC_CHECK_FUNCS([isatty mkdtemp mkstemp mktemp ]) +AC_CHECK_FUNCS([realpath sbrk setrlimit strdup strerror strerror_r ]) +AC_CHECK_FUNCS([strtoll strtoq sysconf]) AC_C_PRINTF_A AC_FUNC_ALLOCA AC_FUNC_RAND48 @@ -470,7 +525,7 @@ AC_CHECK_FUNC(mprotect,, if test "$ac_cv_func_mmap_fixed_mapped" = "no" then - AC_MSG_WARN([mmap() required but not found]) + AC_MSG_WARN([mmap() of a fixed address required but not supported]) fi if test "$ac_cv_func_mmap_file" = "no" then @@ -563,24 +618,20 @@ dnl=== dnl===-----------------------------------------------------------------------=== dnl Configure header files -AC_CONFIG_HEADERS(include/llvm/Config/config.h) - +AC_CONFIG_HEADERS([include/llvm/Config/config.h]) AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h]) AC_CONFIG_HEADERS([include/llvm/ADT/hash_map]) AC_CONFIG_HEADERS([include/llvm/ADT/hash_set]) -AC_CONFIG_HEADERS([include/llvm/Support/ThreadSupport.h]) AC_CONFIG_HEADERS([include/llvm/ADT/iterator]) dnl Configure the makefile's configuration data AC_CONFIG_FILES([Makefile.config]) -dnl Configure llvmc's configuration files -AC_CONFIG_FILES([tools/llvmc/st tools/llvmc/cpp tools/llvmc/ll tools/llvmc/c]) - dnl Configure doxygen's configuration file AC_CONFIG_FILES([docs/doxygen.cfg]) dnl Do special configuration of Makefiles +AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"]) AC_CONFIG_MAKEFILE(Makefile) AC_CONFIG_MAKEFILE(Makefile.common) AC_CONFIG_MAKEFILE(examples/Makefile)