Updated some of the information for the new autoconf changes.
[oota-llvm.git] / autoconf / configure.ac
index 787c0d7d59c8df795a2b91828439c8f179cd6e7b..62e6740b5245f6ba29a95e33fbba690f0f63bcff 100644 (file)
@@ -21,11 +21,24 @@ dnl Place all of the extra autoconf files into the config subdirectory
 AC_CONFIG_AUX_DIR([autoconf])
 
 dnl Quit if the source directory has already been configured.
 AC_CONFIG_AUX_DIR([autoconf])
 
 dnl Quit if the source directory has already been configured.
-if test -f ${srcdir}/include/Config/config.h
+dnl NOTE: This relies upon undocumented autoconf behavior.
+if test ${srcdir} != "."
 then
 then
-       AC_MSG_ERROR([Already configured in ${srcdir}])
+       if test -f ${srcdir}/include/Config/config.h
+       then
+               AC_MSG_ERROR([Already configured in ${srcdir}])
+       fi
 fi
 
 fi
 
+if test -d ${srcdir}/projects/reopt
+then
+  AC_CONFIG_SUBDIRS(projects/reopt)
+fi
+
+if test -d ${srcdir}/projects/poolalloc
+then
+  AC_CONFIG_SUBDIRS(projects/poolalloc)
+fi
 
 dnl Configure a header file
 AC_CONFIG_HEADERS(include/Config/config.h)
 
 dnl Configure a header file
 AC_CONFIG_HEADERS(include/Config/config.h)
@@ -68,7 +81,6 @@ AC_CONFIG_MAKEFILE(runtime/GCCLibraries/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
-AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libexception/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
@@ -81,6 +93,8 @@ AC_CONFIG_MAKEFILE(runtime/libdummy/Makefile)
 AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile)
 AC_CONFIG_MAKEFILE(test/Makefile)
 AC_CONFIG_MAKEFILE(test/Makefile.tests)
 AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile)
 AC_CONFIG_MAKEFILE(test/Makefile)
 AC_CONFIG_MAKEFILE(test/Makefile.tests)
+AC_CONFIG_MAKEFILE(test/QMTest/llvm.py)
+AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py)
 AC_CONFIG_MAKEFILE(test/Programs/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
 AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
 AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
@@ -101,6 +115,7 @@ AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/177.mesa/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
@@ -111,6 +126,8 @@ AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/252.eon/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/253.perlbmk/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
@@ -155,12 +172,6 @@ AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/Moria-5.5.2/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/Povray31/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/NoSource/m4/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
@@ -172,27 +183,28 @@ AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
 AC_CONFIG_MAKEFILE(tools/Makefile)
 AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
 AC_CONFIG_MAKEFILE(tools/Makefile)
 AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
-AC_CONFIG_MAKEFILE(tools/as/Makefile)
 AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
 AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
-AC_CONFIG_MAKEFILE(tools/dis/Makefile)
 AC_CONFIG_MAKEFILE(tools/extract/Makefile)
 AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
 AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
 AC_CONFIG_MAKEFILE(tools/extract/Makefile)
 AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
 AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
-AC_CONFIG_MAKEFILE(tools/link/Makefile)
 AC_CONFIG_MAKEFILE(tools/llc/Makefile)
 AC_CONFIG_MAKEFILE(tools/llc/Makefile)
-AC_CONFIG_MAKEFILE(tools/lli/Makefile)
-AC_CONFIG_MAKEFILE(tools/opt/Makefile)
 AC_CONFIG_MAKEFILE(tools/llee/Makefile)
 AC_CONFIG_MAKEFILE(tools/llee/Makefile)
-AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
+AC_CONFIG_MAKEFILE(tools/lli/Makefile)
 AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
 AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
+AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
 AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
 AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
+AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
+AC_CONFIG_MAKEFILE(tools/opt/Makefile)
 AC_CONFIG_MAKEFILE(utils/Makefile)
 AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
 AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
 AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
 AC_CONFIG_MAKEFILE(utils/Makefile)
 AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
 AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
 AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
-AC_CONFIG_MAKEFILE(www/docs/Makefile)
 AC_CONFIG_MAKEFILE(projects/Makefile)
 AC_CONFIG_MAKEFILE(projects/sample/Makefile)
 AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
 AC_CONFIG_MAKEFILE(projects/Makefile)
 AC_CONFIG_MAKEFILE(projects/sample/Makefile)
 AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
@@ -298,19 +310,69 @@ dnl Check for libtool
 AC_PROG_LIBTOOL
 
 dnl Check for our special programs
 AC_PROG_LIBTOOL
 
 dnl Check for our special programs
-AC_PATH_PROG(RPWD,[pwd])
-AC_PATH_PROG(AR,[ar])
-AC_PATH_PROG(SED,[sed])
-AC_PATH_PROG(RM,[rm])
-AC_PATH_PROG(ECHO,[echo])
-AC_PATH_PROG(MKDIR,[mkdir])
-AC_PATH_PROG(DATE,[date])
-AC_PATH_PROG(MV,[mv])
-AC_PATH_PROG(DOT,[dot])
-AC_PATH_PROG(ETAGS,[etags])
-AC_PATH_PROG(PURIFY,[purify])
-AC_PATH_PROG(PYTHON,[python])
-AC_PATH_PROG(QMTEST,[qmtest])
+AC_PATH_PROG(RPWD,[pwd],[false])
+if test ${RPWD} = "false"
+then
+       AC_MSG_ERROR([pwd required but not found])
+fi
+
+AC_PATH_PROG(AR,[ar],[false])
+if test ${AR} = "false"
+then
+       AC_MSG_ERROR([ar required but not found])
+fi
+
+AC_PATH_PROG(SED,[sed],[false])
+if test ${SED} = "false"
+then
+       AC_MSG_ERROR([sed required but not found])
+fi
+
+AC_PATH_PROG(RM,[rm],[false])
+if test ${RM} = "false"
+then
+       AC_MSG_ERROR([rm required but not found])
+fi
+
+AC_PATH_PROG(ECHO,[echo],[false])
+if test ${ECHO} = "false"
+then
+       AC_MSG_ERROR([echo required but not found])
+fi
+
+AC_PATH_PROG(MKDIR,[mkdir],[false])
+if test ${MKDIR} = "false"
+then
+       AC_MSG_ERROR([mkdir required but not found])
+fi
+
+AC_PATH_PROG(DATE,[date],[false])
+if test ${DATE} = "false"
+then
+       AC_MSG_ERROR([date required but not found])
+fi
+
+AC_PATH_PROG(MV,[mv],[false])
+if test ${MV} = "false"
+then
+       AC_MSG_ERROR([mv required but not found])
+fi
+
+AC_PATH_PROG(DOT,[dot],[false])
+
+AC_PATH_PROG(ETAGS,[etags],[false])
+
+AC_PATH_PROG(PYTHON,[python],[false])
+if test ${PYTHON} = "false"
+then
+       AC_MSG_WARN([python required but not found])
+fi
+
+AC_PATH_PROG(QMTEST,[qmtest],[false])
+if test ${QMTEST} = "false"
+then
+       AC_MSG_WARN([qmtest required but not found])
+fi
 
 dnl Verify that the version of python available is high enough for qmtest
 pyversion=`$PYTHON -V 2>&1 | cut -d\  -f2`
 
 dnl Verify that the version of python available is high enough for qmtest
 pyversion=`$PYTHON -V 2>&1 | cut -d\  -f2`
@@ -340,11 +402,11 @@ dnl **************************************************************************
 dnl libelf is for sparc only; we can ignore it if we don't have it
 AC_CHECK_LIB(elf, elf_begin)
 
 dnl libelf is for sparc only; we can ignore it if we don't have it
 AC_CHECK_LIB(elf, elf_begin)
 
-dnl dlopen() is required.  If we don't find it, quit.
-AC_SEARCH_LIBS(dlopen,dl,,AC_MSG_ERROR([dlopen() required but not found]))
+dnl dlopen() is required for plugin support.
+AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],[Define if dlopen() is available on this platform.]),AC_MSG_WARN([dlopen() not found - disabling plugin support]))
 
 dnl mallinfo is optional; the code can compile (minus features) without it
 
 dnl mallinfo is optional; the code can compile (minus features) without it
-AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
+AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],[Define if mallinfo() is available on this platform.]))
 
 dnl
 dnl The math libraries are used by the test code, but not by the actual LLVM
 
 dnl
 dnl The math libraries are used by the test code, but not by the actual LLVM
@@ -383,7 +445,7 @@ AC_C_CONST
 AC_C_INLINE
 
 dnl Check for machine endian-ness
 AC_C_INLINE
 
 dnl Check for machine endian-ness
-AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
+AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG],[],[Define if the machine is Big-Endian]),AC_DEFINE([ENDIAN_LITTLE],[],[Define if the machine is Little-Endian]))
 
 dnl Check for types
 AC_TYPE_PID_T
 
 dnl Check for types
 AC_TYPE_PID_T
@@ -393,6 +455,9 @@ AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
 AC_HEADER_TIME
 AC_STRUCT_TM
 
 AC_HEADER_TIME
 AC_STRUCT_TM
 
+dnl Check for various C features
+AC_C_PRINTF_A
+
 dnl Check for C++ extensions
 AC_CXX_HAVE_EXT_HASH_MAP
 AC_CXX_HAVE_EXT_HASH_SET
 dnl Check for C++ extensions
 AC_CXX_HAVE_EXT_HASH_MAP
 AC_CXX_HAVE_EXT_HASH_SET
@@ -415,7 +480,7 @@ then
 fi
 AC_HEADER_MMAP_ANONYMOUS
 AC_TYPE_SIGNAL
 fi
 AC_HEADER_MMAP_ANONYMOUS
 AC_TYPE_SIGNAL
-AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol)
+AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
 
 dnl
 dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
 
 dnl
 dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
@@ -455,11 +520,24 @@ else
 fi
 
 dnl Spec Benchmarks
 fi
 
 dnl Spec Benchmarks
-AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
+AC_ARG_ENABLE(spec2000,AC_HELP_STRING([--enable-spec],[Compile SPEC 2000 benchmarks (default is NO)]),,enableval=no)
 if test ${enableval} = "no"
 then
 if test ${enableval} = "no"
 then
-       AC_SUBST(USE_SPEC,[[]])
+       if test -d /home/vadve/shared/benchmarks/speccpu2000/benchspec
+       then
+               AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
+               AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
+       else
+               AC_SUBST(USE_SPEC,[[]])
+               AC_SUBST(SPEC_ROOT,[])
+       fi
 else
 else
+       if test ${enableval} = ""
+       then
+               AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
+       else
+               AC_SUBST(SPEC_ROOT,[${enableval}])
+       fi
        AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
 fi
 
        AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
 fi
 
@@ -506,9 +584,6 @@ dnl **************************************************************************
 dnl * Set the location of various third-party software packages
 dnl **************************************************************************
 
 dnl * Set the location of various third-party software packages
 dnl **************************************************************************
 
-dnl Location of SPEC benchmarks
-AC_ARG_WITH(spec,AC_HELP_STRING([--with-spec],[Location of SPEC benchmarks]),AC_SUBST(SPEC_ROOT,[$withval]),AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec]))
-
 dnl Location of the LLVM C front end
 AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))
 
 dnl Location of the LLVM C front end
 AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))