Renamed -use-spec to -use-spec2000.
[oota-llvm.git] / autoconf / configure.ac
index c970387ed1fcaa53f00a100487cd23fe52547f51..3df9b9b4a7566a3ead9663b14c78cdd56b662fd5 100644 (file)
@@ -20,6 +20,26 @@ AC_INIT([[[LLVM]]],[[[1.0]]],[llvmbugs@cs.uiuc.edu])
 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.
+dnl NOTE: This relies upon undocumented autoconf behavior.
+if test ${srcdir} != "."
+then
+       if test -f ${srcdir}/include/Config/config.h
+       then
+               AC_MSG_ERROR([Already configured in ${srcdir}])
+       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)
 AC_CONFIG_MAKEFILE(Makefile)
@@ -60,15 +80,21 @@ AC_CONFIG_MAKEFILE(runtime/Makefile)
 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/libg/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libmalloc/Makefile)
+AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
 AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
+AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
+AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
 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(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)
@@ -87,6 +113,7 @@ AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
 AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
 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/CFP2000/179.art/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
@@ -105,41 +132,43 @@ AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Burg/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Fhourstones/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/01-qbsort/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/03-testtrie/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/04-bisect/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/05-eks/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/08-main/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/09-vor/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/12-IOtest/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/15-trie/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/17-bintr/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/18-imp/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/bh/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/bisort/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/em3d/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/health/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/mst/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/perimeter/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/power/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/treeadd/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/tsp/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/voronoi/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/OptimizerEval/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/anagram/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/bc/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/ft/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/ks/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/yacr2/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/aha/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/llubenchmark/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/sgefa/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/sim/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile)
+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/NoSource/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
@@ -148,25 +177,33 @@ 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/Benchmarks/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
 AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Shootout/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Stanford/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/as/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/link/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/lli/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-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)
@@ -277,19 +314,69 @@ dnl Check for libtool
 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`
@@ -319,8 +406,8 @@ dnl **************************************************************************
 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]),AC_MSG_WARN([dlopen() not found - disabling plugin support]))
 
 dnl mallinfo is optional; the code can compile (minus features) without it
 AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
@@ -394,7 +481,7 @@ then
 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
@@ -434,11 +521,24 @@ else
 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
-       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
+       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
 
@@ -485,9 +585,6 @@ 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]))