configure.ac revision 4d08d2bdd857c9ca4390d8a79c12a4e5934478bd
1dnl Autoconf requirements 2dnl AC_INIT(package, version, bug-report-address) 3dnl information on the package 4dnl checks for programs 5dnl checks for libraries 6dnl checks for header files 7dnl checks for types 8dnl checks for structures 9dnl checks for compiler characteristics 10dnl checks for library functions 11dnl checks for system services 12dnl AC_CONFIG_FILES([file...]) 13dnl AC_OUTPUT 14 15dnl ************************************************************************** 16dnl * Initialize 17dnl ************************************************************************** 18AC_INIT([[[LLVM]]],[[[1.0]]],[llvmbugs@cs.uiuc.edu]) 19 20dnl Place all of the extra autoconf files into the config subdirectory 21AC_CONFIG_AUX_DIR([autoconf]) 22 23dnl Quit if the source directory has already been configured. 24dnl NOTE: This relies upon undocumented autoconf behavior. 25if test ${srcdir} != "." 26then 27 if test -f ${srcdir}/include/Config/config.h 28 then 29 AC_MSG_ERROR([Already configured in ${srcdir}]) 30 fi 31fi 32 33if test -d ${srcdir}/projects/sample 34then 35 AC_CONFIG_SUBDIRS(projects/sample) 36fi 37 38if test -d ${srcdir}/projects/reopt 39then 40 AC_CONFIG_SUBDIRS(projects/reopt) 41fi 42 43if test -d ${srcdir}/projects/poolalloc 44then 45 AC_CONFIG_SUBDIRS(projects/poolalloc) 46fi 47 48dnl Configure a header file 49AC_CONFIG_HEADERS(include/Config/config.h) 50AC_CONFIG_MAKEFILE(Makefile) 51AC_CONFIG_MAKEFILE(Makefile.common) 52AC_CONFIG_MAKEFILE(Makefile.rules) 53AC_CONFIG_MAKEFILE(lib/Makefile) 54AC_CONFIG_MAKEFILE(lib/Analysis/Makefile) 55AC_CONFIG_MAKEFILE(lib/Analysis/DataStructure/Makefile) 56AC_CONFIG_MAKEFILE(lib/Analysis/IPA/Makefile) 57AC_CONFIG_MAKEFILE(lib/Analysis/LiveVar/Makefile) 58AC_CONFIG_MAKEFILE(lib/AsmParser/Makefile) 59AC_CONFIG_MAKEFILE(lib/Bytecode/Makefile) 60AC_CONFIG_MAKEFILE(lib/Bytecode/Reader/Makefile) 61AC_CONFIG_MAKEFILE(lib/Bytecode/Writer/Makefile) 62AC_CONFIG_MAKEFILE(lib/CWriter/Makefile) 63AC_CONFIG_MAKEFILE(lib/CodeGen/Makefile) 64AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSched/Makefile) 65AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSelection/Makefile) 66AC_CONFIG_MAKEFILE(lib/CodeGen/ModuloScheduling/Makefile) 67AC_CONFIG_MAKEFILE(lib/CodeGen/RegAlloc/Makefile) 68AC_CONFIG_MAKEFILE(lib/CodeGen/SelectionDAG/Makefile) 69AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Makefile) 70AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Interpreter/Makefile) 71AC_CONFIG_MAKEFILE(lib/ExecutionEngine/JIT/Makefile) 72AC_CONFIG_MAKEFILE(lib/Support/Makefile) 73AC_CONFIG_MAKEFILE(lib/Target/Makefile) 74AC_CONFIG_MAKEFILE(lib/Target/Sparc/Makefile) 75AC_CONFIG_MAKEFILE(lib/Target/X86/Makefile) 76AC_CONFIG_MAKEFILE(lib/Transforms/Makefile) 77AC_CONFIG_MAKEFILE(lib/Transforms/Hello/Makefile) 78AC_CONFIG_MAKEFILE(lib/Transforms/IPO/Makefile) 79AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/Makefile) 80AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/ProfilePaths/Makefile) 81AC_CONFIG_MAKEFILE(lib/Transforms/Scalar/Makefile) 82AC_CONFIG_MAKEFILE(lib/Transforms/Utils/Makefile) 83AC_CONFIG_MAKEFILE(lib/VMCore/Makefile) 84AC_CONFIG_MAKEFILE(runtime/Makefile) 85AC_CONFIG_MAKEFILE(runtime/GCCLibraries/Makefile) 86AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile) 87AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile) 88AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile) 89AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile) 90AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile) 91AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile) 92AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libmalloc/Makefile) 93AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile) 94AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile) 95AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile) 96AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile) 97AC_CONFIG_MAKEFILE(runtime/libdummy/Makefile) 98AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile) 99AC_CONFIG_MAKEFILE(test/Makefile) 100AC_CONFIG_MAKEFILE(test/Makefile.tests) 101AC_CONFIG_MAKEFILE(test/QMTest/llvm.py) 102AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py) 103AC_CONFIG_MAKEFILE(test/Programs/Makefile) 104AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs) 105AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile) 106AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report) 107AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report) 108AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report) 109AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile) 110AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile) 111AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile) 112AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile) 113AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report) 114AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile) 115AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report) 116AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile) 117AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot) 118AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile) 119AC_CONFIG_MAKEFILE(test/Programs/External/Makefile) 120AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile) 121AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec) 122AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile) 123AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/177.mesa/Makefile) 124AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile) 125AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile) 126AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile) 127AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile) 128AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile) 129AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile) 130AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile) 131AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile) 132AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile) 133AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile) 134AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/252.eon/Makefile) 135AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/253.perlbmk/Makefile) 136AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile) 137AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile) 138AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile) 139AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile) 140AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile) 141AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile) 142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc) 143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile) 144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile) 145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile) 146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile) 147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile) 148AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile) 149AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile) 150AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile) 151AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile) 152AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile) 153AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile) 154AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile) 155AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile) 156AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile) 157AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile) 158AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile) 159AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile) 160AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile) 161AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile) 162AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile) 163AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile) 164AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile) 165AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile) 166AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile) 167AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile) 168AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile) 169AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile) 170AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile) 171AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile) 172AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile) 173AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile) 174AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile) 175AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile) 176AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile) 177AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile) 178AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile) 179AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile) 180AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile) 181AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc) 182AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile) 183AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile) 184AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile) 185AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile) 186AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile) 187AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile) 188AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile) 189AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile) 190AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile) 191AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile) 192AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile) 193AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile) 194AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile) 195AC_CONFIG_MAKEFILE(tools/Makefile) 196AC_CONFIG_MAKEFILE(tools/analyze/Makefile) 197AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile) 198AC_CONFIG_MAKEFILE(tools/extract/Makefile) 199AC_CONFIG_MAKEFILE(tools/gccas/Makefile) 200AC_CONFIG_MAKEFILE(tools/gccld/Makefile) 201AC_CONFIG_MAKEFILE(tools/llc/Makefile) 202AC_CONFIG_MAKEFILE(tools/llee/Makefile) 203AC_CONFIG_MAKEFILE(tools/lli/Makefile) 204AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile) 205AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile) 206AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile) 207AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile) 208AC_CONFIG_MAKEFILE(tools/llvm-nm/Makefile) 209AC_CONFIG_MAKEFILE(tools/opt/Makefile) 210AC_CONFIG_MAKEFILE(utils/Makefile) 211AC_CONFIG_MAKEFILE(utils/Burg/Makefile) 212AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile) 213AC_CONFIG_MAKEFILE(utils/TableGen/Makefile) 214AC_CONFIG_MAKEFILE(projects/Makefile) 215AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile) 216AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common) 217AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile) 218AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile) 219 220dnl ************************************************************************** 221dnl * Determine which system we are building on 222dnl ************************************************************************** 223 224dnl Check the install program (needs to be done before canonical stuff) 225AC_PROG_INSTALL 226 227dnl Check which host for which we're compiling. This will tell us which LLVM 228dnl compiler will be used for compiling SSA into object code. 229AC_CANONICAL_TARGET 230 231dnl 232dnl Now, for some of our own magic: 233dnl We will use the build machine information to set some variables. 234dnl 235case $build in 236 *i*86*) AC_SUBST(OS,[Linux]) 237 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/]) 238 ;; 239 240 *sparc*) AC_SUBST(OS,[SunOS]) 241 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/]) 242 ;; 243 244 *) AC_SUBST(OS,[Unknown]) 245 ;; 246esac 247 248dnl 249dnl If we are targetting a Sparc machine running Solaris, pretend that it is 250dnl V9, since that is all that we support at the moment, and autoconf will only 251dnl tell us we're a sparc. 252dnl 253case $target in 254 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]]) 255 ;; 256esac 257 258dnl 259dnl Determine what our target architecture is and configure accordingly. 260dnl This will allow Makefiles to make a distinction between the hardware and 261dnl the OS. 262dnl 263case $target in 264 *i*86*) AC_SUBST(ARCH,[x86]) 265 ;; 266 *sparc*solaris*) AC_SUBST(ARCH,[Sparc]) 267 ;; 268esac 269 270dnl ************************************************************************** 271dnl * Check for programs. 272dnl ************************************************************************** 273 274dnl Check for compilation tools 275AC_PROG_CXX 276AC_PROG_CC(gcc) 277AC_PROG_CPP 278 279dnl Ensure that compilation tools are GCC; we use GCC specific extensions 280if test "$GCC" != "yes" 281then 282 AC_MSG_ERROR([gcc required but not found]) 283fi 284 285if test "$GXX" != "yes" 286then 287 AC_MSG_ERROR([g++ required but not found]) 288fi 289 290dnl Verify that GCC is version 3.0 or higher 291gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1` 292if test "$gccmajor" -lt "3" 293then 294 AC_MSG_ERROR([gcc 3.x required]) 295fi 296 297dnl Check for GNU Make. We use its extensions to, so don't build without it 298CHECK_GNU_MAKE 299if test -z "$_cv_gnu_make_command" 300then 301 AC_MSG_ERROR([GNU Make required but not found]) 302fi 303 304dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza) 305AC_PROG_FLEX 306AC_PROG_BISON 307 308dnl Check for libtool 309AC_PROG_LIBTOOL 310 311dnl Check for our special programs 312AC_PATH_PROG(RPWD,[pwd],[false]) 313if test ${RPWD} = "false" 314then 315 AC_MSG_ERROR([pwd required but not found]) 316fi 317 318AC_PATH_PROG(AR,[ar],[false]) 319if test ${AR} = "false" 320then 321 AC_MSG_ERROR([ar required but not found]) 322fi 323 324AC_PATH_PROG(SED,[sed],[false]) 325if test ${SED} = "false" 326then 327 AC_MSG_ERROR([sed required but not found]) 328fi 329 330AC_PATH_PROG(RM,[rm],[false]) 331if test ${RM} = "false" 332then 333 AC_MSG_ERROR([rm required but not found]) 334fi 335 336AC_PATH_PROG(ECHO,[echo],[false]) 337if test ${ECHO} = "false" 338then 339 AC_MSG_ERROR([echo required but not found]) 340fi 341 342AC_PATH_PROG(MKDIR,[mkdir],[false]) 343if test ${MKDIR} = "false" 344then 345 AC_MSG_ERROR([mkdir required but not found]) 346fi 347 348AC_PATH_PROG(DATE,[date],[false]) 349if test ${DATE} = "false" 350then 351 AC_MSG_ERROR([date required but not found]) 352fi 353 354AC_PATH_PROG(MV,[mv],[false]) 355if test ${MV} = "false" 356then 357 AC_MSG_ERROR([mv required but not found]) 358fi 359 360AC_PATH_PROG(DOT,[dot],[false]) 361 362AC_PATH_PROG(ETAGS,[etags],[false]) 363 364AC_PATH_PROG(PYTHON,[python],[false]) 365if test ${PYTHON} = "false" 366then 367 AC_MSG_WARN([python required but not found]) 368fi 369 370AC_PATH_PROG(QMTEST,[qmtest],[false]) 371if test ${QMTEST} = "false" 372then 373 AC_MSG_WARN([qmtest required but not found]) 374fi 375 376dnl Verify that the version of python available is high enough for qmtest 377pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2` 378pymajor=`echo $pyversion | cut -d. -f1` 379pyminor=`echo $pyversion | cut -d. -f2` 380 381if test "$pymajor" -ge "2" 382then 383 if test "$pymajor" -eq "2" 384 then 385 if test "$pyminor" -lt "2" 386 then 387 AC_MSG_ERROR([Python 2.2 or greater required]) 388 fi 389 fi 390else 391 AC_MSG_ERROR([Python 2.2 or greater required]) 392fi 393 394dnl Verify that the source directory is valid 395AC_CONFIG_SRCDIR(["Makefile.config.in"]) 396 397dnl ************************************************************************** 398dnl * Check for libraries. 399dnl ************************************************************************** 400 401dnl libelf is for sparc only; we can ignore it if we don't have it 402AC_CHECK_LIB(elf, elf_begin) 403 404dnl dlopen() is required for plugin support. 405AC_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])) 406 407dnl mallinfo is optional; the code can compile (minus features) without it 408AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],[Define if mallinfo() is available on this platform.])) 409 410dnl 411dnl The math libraries are used by the test code, but not by the actual LLVM 412dnl code. 413dnl 414dnl AC_CHECK_LIB(m, cos) 415 416dnl ************************************************************************** 417dnl * Checks for header files. 418dnl * Chances are, if the standard C or POSIX type header files are missing, 419dnl * then LLVM just isn't going to compile. However, it is possible that 420dnl * the necessary functions/macros will be included from other 421dnl * (non-standard and non-obvious) header files. 422dnl * 423dnl * So, we'll be gracious, give it a chance, and try to go on without 424dnl * them. 425dnl ************************************************************************** 426AC_HEADER_STDC 427AC_HEADER_SYS_WAIT 428 429dnl Check for ANSI C/POSIX header files 430AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h) 431 432dnl Check for system specific header files 433AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h) 434 435dnl Check for header files associated with dlopen and friends 436AC_CHECK_HEADERS(dlfcn.h link.h) 437 438dnl ************************************************************************** 439dnl * Checks for typedefs, structures, and compiler characteristics. 440dnl ************************************************************************** 441 442dnl Check for const and inline keywords 443AC_C_CONST 444AC_C_INLINE 445 446dnl Check for machine endian-ness 447AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG],[],[Define if the machine is Big-Endian]),AC_DEFINE([ENDIAN_LITTLE],[],[Define if the machine is Little-Endian])) 448 449dnl Check for types 450AC_TYPE_PID_T 451AC_TYPE_SIZE_T 452AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found])) 453AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found])) 454AC_HEADER_TIME 455AC_STRUCT_TM 456 457dnl Check for various C features 458AC_C_PRINTF_A 459 460dnl Check for C++ extensions 461AC_CXX_HAVE_EXT_HASH_MAP 462AC_CXX_HAVE_EXT_HASH_SET 463AC_CXX_HAVE_EXT_SLIST 464AC_CXX_HAVE_STD_ITERATOR 465AC_CXX_HAVE_BI_ITERATOR 466AC_CXX_HAVE_FWD_ITERATOR 467 468dnl ************************************************************************** 469dnl * Checks for library functions. 470dnl ************************************************************************** 471AC_FUNC_ALLOCA 472AC_PROG_GCC_TRADITIONAL 473AC_FUNC_MEMCMP 474AC_FUNC_MMAP 475AC_FUNC_MMAP_FILE 476if test ${ac_cv_func_mmap_file} = "no" 477then 478 AC_MSG_ERROR([mmap() of files required but not found]) 479fi 480AC_HEADER_MMAP_ANONYMOUS 481AC_TYPE_SIGNAL 482AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll) 483 484dnl 485dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED 486dnl MAP_FIXED is only needed for Sparc 487dnl MAP_ANON is used for Sparc and BSD 488dnl Everyone should have MAP_PRIVATE 489dnl 490 491dnl Check for certain functions (even if we've already found them) so that we 492dnl can quit with an error if they are unavailable. 493dnl 494dnl As the code is made more portable (i.e. less reliant on these functions, 495dnl these checks should go away. 496AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found])) 497AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found])) 498 499dnl ************************************************************************** 500dnl * Enable various compile-time options 501dnl ************************************************************************** 502 503dnl Purify Option 504AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no") 505if test ${enableval} = "no" 506then 507 AC_SUBST(ENABLE_PURIFY,[[]]) 508else 509 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]]) 510fi 511 512dnl Optimized Option 513AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no) 514if test ${enableval} = "no" 515then 516 AC_SUBST(ENABLE_OPTIMIZED,[[]]) 517else 518 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]]) 519fi 520 521dnl Spec Benchmarks 522AC_ARG_ENABLE(spec2000,AC_HELP_STRING([--enable-spec],[Compile SPEC 2000 benchmarks (default is NO)]),,enableval=no) 523if test ${enableval} = "no" 524then 525 if test -d /home/vadve/shared/benchmarks/speccpu2000/benchspec 526 then 527 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec]) 528 AC_SUBST(USE_SPEC,[[USE_SPEC=1]]) 529 else 530 AC_SUBST(USE_SPEC,[[]]) 531 AC_SUBST(SPEC_ROOT,[]) 532 fi 533else 534 if test ${enableval} = "" 535 then 536 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec]) 537 else 538 AC_SUBST(SPEC_ROOT,[${enableval}]) 539 fi 540 AC_SUBST(USE_SPEC,[[USE_SPEC=1]]) 541fi 542 543dnl Precompiled Bytecode Option 544AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no) 545if test ${enableval} = "no" 546then 547 AC_SUBST(UPB,[[]]) 548else 549 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]]) 550fi 551 552 553dnl LLC Diff Option 554AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes) 555if test ${enableval} = "no" 556then 557 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1]) 558else 559 AC_SUBST(DISABLE_LLC_DIFFS,[[]]) 560fi 561 562dnl JIT Option 563AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default) 564 565if test ${enableval} = "no" 566then 567 AC_SUBST(JIT,[[]]) 568else 569 case $target in 570 *i*86*) 571 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) 572 ;; 573 *sparc*) 574 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) 575 ;; 576 *) 577 AC_SUBST(JIT,[[]]) 578 ;; 579 esac 580fi 581 582dnl ************************************************************************** 583dnl * Set the location of various third-party software packages 584dnl ************************************************************************** 585 586dnl Location of the LLVM C front end 587AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval])) 588 589dnl Location of the bytecode repository 590AC_ARG_WITH(bcrepos,AC_HELP_STRING([--with-bcrepos],[Location of Bytecode Repository]),AC_SUBST(BCR,[$withval]),AC_SUBST(BCR,[/home/vadve/lattner/LLVMPrograms])) 591 592dnl Location of PAPI 593AC_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])) 594 595dnl Location of the purify program 596AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval])) 597 598dnl ************************************************************************** 599dnl * Configure other software packages (via AC_CONFIG_SUBDIRS) 600dnl ************************************************************************** 601 602dnl ************************************************************************** 603dnl * Create the output files 604dnl ************************************************************************** 605AC_OUTPUT(Makefile.config) 606