PAPI check has been moved to projects/reopt.
[oota-llvm.git] / autoconf / configure.ac
index 172be4c49241409b1f2f076d727dbb482cd9b6a4..4ca4296cc6e2ed53fd9c1c3c2a21961ce0309d97 100644 (file)
@@ -8,7 +8,7 @@ dnl Quit if the source directory has already been configured.
 dnl NOTE: This relies upon undocumented autoconf behavior.
 if test ${srcdir} != "."
 then
 dnl NOTE: This relies upon undocumented autoconf behavior.
 if test ${srcdir} != "."
 then
-       if test -f ${srcdir}/include/Config/config.h
+       if test -f ${srcdir}/include/llvm/Config/config.h
        then
                AC_MSG_ERROR([Already configured in ${srcdir}])
        fi
        then
                AC_MSG_ERROR([Already configured in ${srcdir}])
        fi
@@ -17,25 +17,32 @@ fi
 dnl Configure all of the projects present in our source tree.
 for i in `ls ${srcdir}/projects`
 do
 dnl Configure all of the projects present in our source tree.
 for i in `ls ${srcdir}/projects`
 do
-  if test ${i} != "CVS"
-  then
-    if test -f ${srcdir}/projects/${i}/configure
-    then
-      AC_CONFIG_SUBDIRS(projects/${i})
-    fi
+  if test -d ${srcdir}/projects/${i} ; then
+    case ${i} in
+      "CVS") ;;
+      "sample")       AC_CONFIG_SUBDIRS([projects/sample])    ;;
+      "Stacker")      AC_CONFIG_SUBDIRS([projects/Stacker])   ;;
+      "llvm-test")    AC_CONFIG_SUBDIRS([projects/llvm-test]) ;;
+      "llvm-reopt")   AC_CONFIG_SUBDIRS([projects/llvm-reopt]);;
+      "llvm-gcc")     AC_CONFIG_SUBDIRS([projects/llvm-gcc])  ;;
+      "llvm-java")    AC_CONFIG_SUBDIRS([projects/llvm-java]) ;;
+      "llvm-tv")      AC_CONFIG_SUBDIRS([projects/llvm-tv])   ;;
+      "llvm-fefw")    AC_CONFIG_SUBDIRS([projects/llvm-fefw]) ;;
+      *)              AC_CONFIG_SUBDIRS(${i}) ;;
+    esac
   fi
 done
 
 dnl Configure header files
   fi
 done
 
 dnl Configure header files
-AC_CONFIG_HEADERS(include/Config/config.h)
+AC_CONFIG_HEADERS(include/llvm/Config/config.h)
 
 dnl Configure other output file
 AC_CONFIG_FILES(Makefile.config
 
 dnl Configure other output file
 AC_CONFIG_FILES(Makefile.config
- include/Support/DataTypes.h
- include/Support/ThreadSupport.h
- include/Support/hash_map
- include/Support/hash_set
- include/Support/iterator)
+ include/llvm/Support/DataTypes.h
+ include/llvm/Support/ThreadSupport.h
+ include/llvm/ADT/hash_map
+ include/llvm/ADT/hash_set
+ include/llvm/ADT/iterator)
 
 dnl Do special configuration of Makefiles
 AC_CONFIG_MAKEFILE(Makefile)
 
 dnl Do special configuration of Makefiles
 AC_CONFIG_MAKEFILE(Makefile)
@@ -47,45 +54,6 @@ 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/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/Makefile.tests)
-AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.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.vtl.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/Makefile.spec2000)
-AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec95)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/analyzer/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/distray/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/distray/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/fourinarow/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/fourinarow/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/mason/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/mason/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/neural/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/neural/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pcompress2/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pcompress2/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pifft/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pifft/test.in)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
-AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
 AC_CONFIG_MAKEFILE(tools/Makefile)
 AC_CONFIG_MAKEFILE(utils/Makefile)
 AC_CONFIG_MAKEFILE(projects/Makefile)
 AC_CONFIG_MAKEFILE(tools/Makefile)
 AC_CONFIG_MAKEFILE(utils/Makefile)
 AC_CONFIG_MAKEFILE(projects/Makefile)
@@ -99,34 +67,68 @@ AC_CANONICAL_TARGET
 
 dnl Set the "OS" Makefile variable based on the system we are building on.
 dnl We will use the build machine information to set some variables.
 
 dnl Set the "OS" Makefile variable based on the system we are building on.
 dnl We will use the build machine information to set some variables.
+
+AC_MSG_CHECKING([support for generic build operating system])
 case $build in
 case $build in
-       *-*-linux*)
-             AC_SUBST(OS,[Linux])
-                        if test -d /home/vadve/lattner/local/x86/llvm-gcc
-                        then
-                          AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
-                        fi
-                ;;
-       *-*-solaris*)
-             AC_SUBST(OS,[SunOS])
-                        if test -d /home/vadve/lattner/local/sparc/llvm-gcc
-                        then
-                  AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
-                        fi
-                ;;
+       *-*-aix*)
+             AC_SUBST(OS,[AIX])
+             platform_type="AIX"
+             ;;
        *-*-cygwin*)
              AC_SUBST(OS,[Cygwin])
        *-*-cygwin*)
              AC_SUBST(OS,[Cygwin])
-                ;;
+             platform_type="Cygwin"
+             ;;
        *-*-darwin*)
              AC_SUBST(OS,[Darwin])
        *-*-darwin*)
              AC_SUBST(OS,[Darwin])
-                ;;
-       *-*-aix*)
-             AC_SUBST(OS,[AIX])
-                ;;
-       *)       AC_SUBST(OS,[Unknown])
-                ;;
+             platform_type="Darwin"
+             ;;
+        *-*-freebsd*)
+             AC_SUBST(OS,[Linux])
+             platform_type="FreeBSD"
+             ;;
+        *-*-interix*)
+             AC_SUBST(OS,[SunOS])
+             platform_type="Interix"
+             ;;
+       *-*-linux*)
+             AC_SUBST(OS,[Linux])
+             platform_type="Linux"
+             if test -d /home/vadve/lattner/local/x86/llvm-gcc
+            then
+              AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
+             fi
+             ;;
+       *-*-solaris*)
+             AC_SUBST(OS,[SunOS])
+             platform_type="SunOS"
+             if test -d /home/vadve/lattner/local/sparc/llvm-gcc
+             then
+               AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
+             fi
+             ;;
+        *-*-win32*)
+             AC_SUBST(OS,[Win32])
+             platform_type="Win32"
+            ;;
+       *)   
+             AC_SUBST(OS,[Unknown])
+             platform_type="Unknown"
+            ;;
 esac
 
 esac
 
+dnl Make sure we aren't attempting to configure for an unknown system
+if test "$platform_type" = "Unknown" ; then
+  AC_MSG_ERROR([Platform is unknown, configure can't continue])
+fi
+
+dnl Make a link from lib/System/platform to lib/System/$platform_type
+dnl This helps the #inclusion of the system specific include files
+dnl for the operating system abstraction library
+AC_CONFIG_LINKS(lib/System/platform:lib/System/$platform_type)
+
+AC_MSG_RESULT($platform_type)
+
+AC_MSG_CHECKING(target architecture)
 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.
 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.
@@ -139,16 +141,26 @@ 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.
 case $target in
 dnl This will allow Makefiles to make a distinction between the hardware and
 dnl the OS.
 case $target in
-       i*86-*)           AC_SUBST(ARCH,[x86])
-                         ;;
-       sparc*-*)         AC_SUBST(ARCH,[Sparc])
-                         ;;
-       powerpc*-*)       AC_SUBST(ARCH,[PowerPC])
-                         ;;
-       *)                AC_SUBST(ARCH,[Unknown])
-                         ;;
+       i*86-*)       
+          ARCH="x86"
+          AC_SUBST(ARCH,[x86])
+         ;;
+       sparc*-*)         
+          ARCH="Sparc"
+          AC_SUBST(ARCH,[Sparc])
+         ;;
+       powerpc*-*)       
+          ARCH="PowerPC"
+          AC_SUBST(ARCH,[PowerPC])
+         ;;
+       *)                
+          ARCH="Unknown"
+          AC_SUBST(ARCH,[Unknown])
+         ;;
 esac
 
 esac
 
+AC_MSG_RESULT($ARCH)
+
 dnl Check for compilation tools
 AC_PROG_CXX
 AC_PROG_CC(gcc)
 dnl Check for compilation tools
 AC_PROG_CXX
 AC_PROG_CC(gcc)
@@ -172,7 +184,7 @@ then
 fi
 
 dnl Check for GNU Make.  We use its extensions too, so don't build without it
 fi
 
 dnl Check for GNU Make.  We use its extensions too, so don't build without it
-CHECK_GNU_MAKE
+AC_CHECK_GNU_MAKE
 if test -z "$_cv_gnu_make_command"
 then
        AC_MSG_ERROR([GNU Make required but not found])
 if test -z "$_cv_gnu_make_command"
 then
        AC_MSG_ERROR([GNU Make required but not found])
@@ -271,7 +283,9 @@ dnl Check for types
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
-AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
+AC_CHECK_TYPES([uint64_t],,
+               AC_CHECK_TYPES([u_int64_t],,
+                              AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found])))
 AC_HEADER_TIME
 AC_STRUCT_TM
 
 AC_HEADER_TIME
 AC_STRUCT_TM
 
@@ -321,69 +335,6 @@ else
        AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
 fi
 
        AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
 fi
 
-AC_DEFUN(EXTERNAL_BENCHMARK,
-[m4_define([allcapsname],translit($1,a-z,A-Z))
- AC_ARG_ENABLE($1,
- AC_HELP_STRING([--enable-$1=ARG], 
-                [Use $1 as a benchmark (srcs in DIR)]),
- checkresult=$enableval,
- checkresult=auto)
-AC_MSG_CHECKING([for $1 benchmark sources])
-case "$checkresult" in
-auto|yes)
-    defaultdir=$2
-       if test -d "$defaultdir"
-       then
-               AC_SUBST(allcapsname()[_ROOT],[$defaultdir])
-               AC_SUBST([USE_]allcapsname(),[USE_]allcapsname()=1)
-        checkresult="yes, found in $defaultdir"
-    else
-        checkresult=no
-    fi
-    ;;
-no)
-    AC_SUBST(allcapsname()[_ROOT],[])
-    AC_SUBST([USE_]allcapsname(),[])
-    checkresult=no
-    ;;
-*)  if test -d "$checkresult"
-    then
-        AC_SUBST(allcapsname()[_ROOT],"$checkresult")
-        AC_SUBST([USE_]allcapsname(),[USE_]allcapsname()=1)
-        checkresult="yes, in $checkresult"
-    else
-        AC_SUBST(allcapsname()[_ROOT],[])
-        AC_SUBST([USE_]allcapsname(),[])
-        checkresult="no, not found in $checkresult"
-    fi
-    ;;
-esac
-AC_MSG_RESULT($checkresult)
-m4_undefine([allcapsname])
-])
-
-EXTERNAL_BENCHMARK(spec95,/home/vadve/shared/benchmarks/spec95/benchspec)
-EXTERNAL_BENCHMARK(spec2000,/home/vadve/shared/benchmarks/speccpu2000/benchspec)
-EXTERNAL_BENCHMARK(povray,/home/vadve/shared/benchmarks/povray31)
-
-dnl Precompiled Bytecode Option
-AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
-if test ${enableval} = "no"
-then
-       AC_SUBST(UPB,[[]])
-else
-       AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
-fi
-
-dnl LLC Diff Option
-AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
-if test ${enableval} = "no"
-then
-       AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
-else
-       AC_SUBST(DISABLE_LLC_DIFFS,[[]])
-fi
-
 dnl JIT Option
 AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
 if test ${enableval} = "no"
 dnl JIT Option
 AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
 if test ${enableval} = "no"
@@ -442,12 +393,6 @@ then
        llvmgccwarn=yes
 fi
 
        llvmgccwarn=yes
 fi
 
-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/Sparc/papi-2.3.4.1]))
-
 dnl Get libtool's idea of what the shared library suffix is.
 dnl (This is a hack; it relies on undocumented behavior.)
 AC_MSG_CHECKING([for shared library suffix])
 dnl Get libtool's idea of what the shared library suffix is.
 dnl (This is a hack; it relies on undocumented behavior.)
 AC_MSG_CHECKING([for shared library suffix])