Moved llvm/lib/Support to llvm/support/lib/Support.
[oota-llvm.git] / autoconf / configure.ac
index 19e18b2c1bf2d748ceee17f36a2be829644a3199..e7b70c0fa9857a5a957004fd64a7252797a2c3e4 100644 (file)
@@ -20,8 +20,198 @@ 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
+
 dnl Configure a header file
 AC_CONFIG_HEADERS(include/Config/config.h)
+AC_CONFIG_MAKEFILE(Makefile)
+AC_CONFIG_MAKEFILE(Makefile.common)
+AC_CONFIG_MAKEFILE(Makefile.rules)
+AC_CONFIG_MAKEFILE(lib/Makefile)
+AC_CONFIG_MAKEFILE(lib/Analysis/Makefile)
+AC_CONFIG_MAKEFILE(lib/Analysis/DataStructure/Makefile)
+AC_CONFIG_MAKEFILE(lib/Analysis/IPA/Makefile)
+AC_CONFIG_MAKEFILE(lib/Analysis/LiveVar/Makefile)
+AC_CONFIG_MAKEFILE(lib/AsmParser/Makefile)
+AC_CONFIG_MAKEFILE(lib/Bytecode/Makefile)
+AC_CONFIG_MAKEFILE(lib/Bytecode/Reader/Makefile)
+AC_CONFIG_MAKEFILE(lib/Bytecode/Writer/Makefile)
+AC_CONFIG_MAKEFILE(lib/CWriter/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSched/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSelection/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/ModuloScheduling/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/RegAlloc/Makefile)
+AC_CONFIG_MAKEFILE(lib/CodeGen/SelectionDAG/Makefile)
+AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Makefile)
+AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Interpreter/Makefile)
+AC_CONFIG_MAKEFILE(lib/ExecutionEngine/JIT/Makefile)
+AC_CONFIG_MAKEFILE(lib/Target/Makefile)
+AC_CONFIG_MAKEFILE(lib/Target/Sparc/Makefile)
+AC_CONFIG_MAKEFILE(lib/Target/X86/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Hello/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/IPO/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/ProfilePaths/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Scalar/Makefile)
+AC_CONFIG_MAKEFILE(lib/Transforms/Utils/Makefile)
+AC_CONFIG_MAKEFILE(lib/VMCore/Makefile)
+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/QMTestDB/QMTest/llvm.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/TEST.dsgraph.report)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
+AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
+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)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
+AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
+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/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/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/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)
+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/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/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(tools/Makefile)
+AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
+AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
+AC_CONFIG_MAKEFILE(tools/extract/Makefile)
+AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
+AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
+AC_CONFIG_MAKEFILE(tools/llc/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(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/sample/Makefile.config)
+AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
+AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
+AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
+AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
+AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
+AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
+AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
+AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
+AC_CONFIG_MAKEFILE(support/Makefile)
+AC_CONFIG_MAKEFILE(support/lib/Makefile)
+AC_CONFIG_MAKEFILE(support/lib/Support/Makefile)
+AC_CONFIG_MAKEFILE(support/tools/Makefile)
+AC_CONFIG_MAKEFILE(support/tools/Burg/Makefile)
+AC_CONFIG_MAKEFILE(support/tools/Burg/Doc/Makefile)
+AC_CONFIG_MAKEFILE(support/tools/TableGen/Makefile)
 
 dnl **************************************************************************
 dnl * Determine which system we are building on
@@ -93,6 +283,13 @@ then
        AC_MSG_ERROR([g++ required but not found])
 fi
 
+dnl Verify that GCC is version 3.0 or higher
+gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
+if test "$gccmajor" -lt "3"
+then
+       AC_MSG_ERROR([gcc 3.x required])
+fi
+
 dnl Check for GNU Make.  We use its extensions to, so don't build without it
 CHECK_GNU_MAKE
 if test -z "$_cv_gnu_make_command"
@@ -108,16 +305,89 @@ dnl Check for libtool
 AC_PROG_LIBTOOL
 
 dnl Check for our special programs
-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(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(PURIFY,[purify],[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`
+pymajor=`echo $pyversion | cut -d. -f1`
+pyminor=`echo $pyversion | cut -d. -f2`
+
+if test "$pymajor" -ge "2"
+then
+       if test "$pymajor" -eq "2"
+       then
+               if test "$pyminor" -lt "2"
+               then
+                       AC_MSG_ERROR([Python 2.2 or greater required])
+               fi
+       fi
+else
+       AC_MSG_ERROR([Python 2.2 or greater required])
+fi
 
 dnl Verify that the source directory is valid
 AC_CONFIG_SRCDIR(["Makefile.config.in"])
@@ -305,20 +575,14 @@ dnl Location of the bytecode repository
 AC_ARG_WITH(bcrepos,AC_HELP_STRING([--with-bcrepos],[Location of Bytecode Repository]),AC_SUBST(BCR,[$withval]),AC_SUBST(BCR,[/home/vadve/lattner/LLVMPrograms]))
 
 dnl Location of PAPI
-AC_ARG_WITH(papi,AC_HELP_STRING([--with-papi],[Location of PAPI]),AC_SUBST(PAPIDIR,[$withval]),AC_SUBST(PAPIDIR,[/home/vadve/shared/papi-2.3.4.1]))
+AC_ARG_WITH(papi,AC_HELP_STRING([--with-papi],[Location of PAPI]),AC_SUBST(PAPIDIR,[$withval]),AC_SUBST(PAPIDIR,[/home/vadve/shared/Sparc/papi-2.3.4.1]))
 
 dnl Location of the purify program
 AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
 
-dnl Location for placing object files and built programs, libraries, etc
-if test -d /localhome
-then
-       AC_SUBST(OBJROOT,[/localhome/$USER])
-else
-       AC_SUBST(OBJROOT,[.])
-fi
-
-AC_ARG_WITH(objroot,AC_HELP_STRING([--with-objroot],[Location where object files should be placed (default is .)]),AC_SUBST(OBJROOT,[$withval]))
+dnl **************************************************************************
+dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
+dnl **************************************************************************
 
 dnl **************************************************************************
 dnl * Create the output files