configure.ac revision 2155d459a7de626bb77849e5956ef2363d7d4a87
1dnl === configure.ac --------------------------------------------------------=== 2dnl The LLVM Compiler Infrastructure 3dnl 4dnl This file is distributed under the University of Illinois Open Source 5dnl License. See LICENSE.TXT for details. 6dnl 7dnl===-----------------------------------------------------------------------=== 8dnl This is the LLVM configuration script. It is processed by the autoconf 9dnl program to produce a script named configure. This script contains the 10dnl configuration checks that LLVM needs in order to support multiple platforms. 11dnl This file is composed of 10 sections per the recommended organization of 12dnl autoconf input defined in the autoconf documentation. As this file evolves, 13dnl please keep the various types of checks within their sections. The sections 14dnl are as follows: 15dnl 16dnl SECTION 1: Initialization & Setup 17dnl SECTION 2: Architecture, target, and host checks 18dnl SECTION 3: Command line arguments for the configure script. 19dnl SECTION 4: Check for programs we need and that they are the right version 20dnl SECTION 5: Check for libraries 21dnl SECTION 6: Check for header files 22dnl SECTION 7: Check for types and structures 23dnl SECTION 8: Check for specific functions needed 24dnl SECTION 9: Additional checks, variables, etc. 25dnl SECTION 10: Specify the output files and generate it 26dnl 27dnl===-----------------------------------------------------------------------=== 28dnl=== 29dnl=== SECTION 1: Initialization & Setup 30dnl=== 31dnl===-----------------------------------------------------------------------=== 32dnl Initialize autoconf and define the package name, version number and 33dnl email address for reporting bugs. 34AC_INIT([[llvm]],[[2.7svn]],[llvmbugs@cs.uiuc.edu]) 35 36dnl Provide a copyright substitution and ensure the copyright notice is included 37dnl in the output of --version option of the generated configure script. 38AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign."]) 39AC_COPYRIGHT([Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign.]) 40 41dnl Indicate that we require autoconf 2.59 or later. Ths is needed because we 42dnl use some autoconf macros only available in 2.59. 43AC_PREREQ(2.59) 44 45dnl Verify that the source directory is valid. This makes sure that we are 46dnl configuring LLVM and not some other package (it validates --srcdir argument) 47AC_CONFIG_SRCDIR([lib/VMCore/Module.cpp]) 48 49dnl Place all of the extra autoconf files into the config subdirectory. Tell 50dnl various tools where the m4 autoconf macros are. 51AC_CONFIG_AUX_DIR([autoconf]) 52 53dnl Quit if the source directory has already been configured. 54dnl NOTE: This relies upon undocumented autoconf behavior. 55if test ${srcdir} != "." ; then 56 if test -f ${srcdir}/include/llvm/Config/config.h ; then 57 AC_MSG_ERROR([Already configured in ${srcdir}]) 58 fi 59fi 60 61dnl Configure all of the projects present in our source tree. While we could 62dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a 63dnl configure script, that usage of the AC_CONFIG_SUBDIRS macro is deprecated. 64dnl Instead we match on the known projects. 65for i in `ls ${srcdir}/projects` 66do 67 if test -d ${srcdir}/projects/${i} ; then 68 case ${i} in 69 CVS) ;; 70 sample) AC_CONFIG_SUBDIRS([projects/sample]) ;; 71 privbracket) AC_CONFIG_SUBDIRS([projects/privbracket]) ;; 72 llvm-stacker) AC_CONFIG_SUBDIRS([projects/llvm-stacker]) ;; 73 # llvm-test is the old name of the test-suite, kept here for backwards 74 # compatibility 75 llvm-test) AC_CONFIG_SUBDIRS([projects/llvm-test]) ;; 76 test-suite) AC_CONFIG_SUBDIRS([projects/test-suite]) ;; 77 llvm-reopt) AC_CONFIG_SUBDIRS([projects/llvm-reopt]);; 78 llvm-gcc) AC_CONFIG_SUBDIRS([projects/llvm-gcc]) ;; 79 llvm-java) AC_CONFIG_SUBDIRS([projects/llvm-java]) ;; 80 llvm-tv) AC_CONFIG_SUBDIRS([projects/llvm-tv]) ;; 81 llvm-poolalloc) AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) ;; 82 poolalloc) AC_CONFIG_SUBDIRS([projects/poolalloc]) ;; 83 llvm-kernel) AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;; 84 *) 85 AC_MSG_WARN([Unknown project (${i}) won't be configured automatically]) 86 ;; 87 esac 88 fi 89done 90 91dnl===-----------------------------------------------------------------------=== 92dnl=== 93dnl=== SECTION 2: Architecture, target, and host checks 94dnl=== 95dnl===-----------------------------------------------------------------------=== 96 97dnl Check the target for which we're compiling and the host that will do the 98dnl compilations. This will tell us which LLVM compiler will be used for 99dnl compiling SSA into object code. This needs to be done early because 100dnl following tests depend on it. 101AC_CANONICAL_TARGET 102 103dnl Determine the platform type and cache its value. This helps us configure 104dnl the System library to the correct build platform. 105AC_CACHE_CHECK([type of operating system we're going to host on], 106 [llvm_cv_os_type], 107[case $host in 108 *-*-aix*) 109 llvm_cv_link_all_option="-Wl,--whole-archive" 110 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 111 llvm_cv_os_type="AIX" 112 llvm_cv_platform_type="Unix" ;; 113 *-*-irix*) 114 llvm_cv_link_all_option="-Wl,--whole-archive" 115 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 116 llvm_cv_os_type="IRIX" 117 llvm_cv_platform_type="Unix" ;; 118 *-*-cygwin*) 119 llvm_cv_link_all_option="-Wl,--whole-archive" 120 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 121 llvm_cv_os_type="Cygwin" 122 llvm_cv_platform_type="Unix" ;; 123 *-*-darwin*) 124 llvm_cv_link_all_option="-Wl,-all_load" 125 llvm_cv_no_link_all_option="-Wl,-noall_load" 126 llvm_cv_os_type="Darwin" 127 llvm_cv_platform_type="Unix" ;; 128 *-*-freebsd*) 129 llvm_cv_link_all_option="-Wl,--whole-archive" 130 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 131 llvm_cv_os_type="FreeBSD" 132 llvm_cv_platform_type="Unix" ;; 133 *-*-openbsd*) 134 llvm_cv_link_all_option="-Wl,--whole-archive" 135 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 136 llvm_cv_os_type="OpenBSD" 137 llvm_cv_platform_type="Unix" ;; 138 *-*-netbsd*) 139 llvm_cv_link_all_option="-Wl,--whole-archive" 140 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 141 llvm_cv_os_type="NetBSD" 142 llvm_cv_platform_type="Unix" ;; 143 *-*-dragonfly*) 144 llvm_cv_link_all_option="-Wl,--whole-archive" 145 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 146 llvm_cv_os_type="DragonFly" 147 llvm_cv_platform_type="Unix" ;; 148 *-*-hpux*) 149 llvm_cv_link_all_option="-Wl,--whole-archive" 150 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 151 llvm_cv_os_type="HP-UX" 152 llvm_cv_platform_type="Unix" ;; 153 *-*-interix*) 154 llvm_cv_link_all_option="-Wl,--whole-archive" 155 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 156 llvm_cv_os_type="Interix" 157 llvm_cv_platform_type="Unix" ;; 158 *-*-linux*) 159 llvm_cv_link_all_option="-Wl,--whole-archive" 160 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 161 llvm_cv_os_type="Linux" 162 llvm_cv_platform_type="Unix" ;; 163 *-*-solaris*) 164 llvm_cv_link_all_option="-Wl,-z,allextract" 165 llvm_cv_no_link_all_option="-Wl,-z,defaultextract" 166 llvm_cv_os_type="SunOS" 167 llvm_cv_platform_type="Unix" ;; 168 *-*-auroraux*) 169 llvm_cv_link_all_option="-Wl,-z,allextract" 170 llvm_cv_link_all_option="-Wl,-z,defaultextract" 171 llvm_cv_os_type="AuroraUX" 172 llvm_cv_platform_type="Unix" ;; 173 *-*-win32*) 174 llvm_cv_link_all_option="-Wl,--whole-archive" 175 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 176 llvm_cv_os_type="Win32" 177 llvm_cv_platform_type="Win32" ;; 178 *-*-mingw*) 179 llvm_cv_link_all_option="-Wl,--whole-archive" 180 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 181 llvm_cv_os_type="MingW" 182 llvm_cv_platform_type="Win32" ;; 183 *-*-haiku*) 184 llvm_cv_link_all_option="-Wl,--whole-archive" 185 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 186 llvm_cv_os_type="Haiku" 187 llvm_cv_platform_type="Unix" ;; 188 *-unknown-eabi*) 189 llvm_cv_link_all_option="-Wl,--whole-archive" 190 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 191 llvm_cv_os_type="Freestanding" 192 llvm_cv_platform_type="Unix" ;; 193 *-unknown-elf*) 194 llvm_cv_link_all_option="-Wl,--whole-archive" 195 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 196 llvm_cv_os_type="Freestanding" 197 llvm_cv_platform_type="Unix" ;; 198 *) 199 llvm_cv_link_all_option="" 200 llvm_cv_no_link_all_option="" 201 llvm_cv_os_type="Unknown" 202 llvm_cv_platform_type="Unknown" ;; 203esac]) 204 205AC_CACHE_CHECK([type of operating system we're going to target], 206 [llvm_cv_target_os_type], 207[case $target in 208 *-*-aix*) 209 llvm_cv_target_os_type="AIX" ;; 210 *-*-irix*) 211 llvm_cv_target_os_type="IRIX" ;; 212 *-*-cygwin*) 213 llvm_cv_target_os_type="Cygwin" ;; 214 *-*-darwin*) 215 llvm_cv_target_os_type="Darwin" ;; 216 *-*-freebsd*) 217 llvm_cv_target_os_type="FreeBSD" ;; 218 *-*-openbsd*) 219 llvm_cv_target_os_type="OpenBSD" ;; 220 *-*-netbsd*) 221 llvm_cv_target_os_type="NetBSD" ;; 222 *-*-dragonfly*) 223 llvm_cv_target_os_type="DragonFly" ;; 224 *-*-hpux*) 225 llvm_cv_target_os_type="HP-UX" ;; 226 *-*-interix*) 227 llvm_cv_target_os_type="Interix" ;; 228 *-*-linux*) 229 llvm_cv_target_os_type="Linux" ;; 230 *-*-solaris*) 231 llvm_cv_target_os_type="SunOS" ;; 232 *-*-auroraux*) 233 llvm_cv_target_os_type="AuroraUX" ;; 234 *-*-win32*) 235 llvm_cv_target_os_type="Win32" ;; 236 *-*-mingw*) 237 llvm_cv_target_os_type="MingW" ;; 238 *-*-haiku*) 239 llvm_cv_target_os_type="Haiku" ;; 240 *-unknown-eabi*) 241 llvm_cv_target_os_type="Freestanding" ;; 242 *) 243 llvm_cv_target_os_type="Unknown" ;; 244esac]) 245 246dnl Make sure we aren't attempting to configure for an unknown system 247if test "$llvm_cv_os_type" = "Unknown" ; then 248 AC_MSG_ERROR([Operating system is unknown, configure can't continue]) 249fi 250 251dnl Set the "OS" Makefile variable based on the platform type so the 252dnl makefile can configure itself to specific build hosts 253AC_SUBST(OS,$llvm_cv_os_type) 254AC_SUBST(HOST_OS,$llvm_cv_os_type) 255AC_SUBST(TARGET_OS,$llvm_cv_target_os_type) 256 257dnl Set the LINKALL and NOLINKALL Makefile variables based on the platform 258AC_SUBST(LINKALL,$llvm_cv_link_all_option) 259AC_SUBST(NOLINKALL,$llvm_cv_no_link_all_option) 260 261dnl Set the "LLVM_ON_*" variables based on llvm_cvs_platform_type 262dnl This is used by lib/System to determine the basic kind of implementation 263dnl to use. 264case $llvm_cv_platform_type in 265 Unix) 266 AC_DEFINE([LLVM_ON_UNIX],[1],[Define if this is Unixish platform]) 267 AC_SUBST(LLVM_ON_UNIX,[1]) 268 AC_SUBST(LLVM_ON_WIN32,[0]) 269 ;; 270 Win32) 271 AC_DEFINE([LLVM_ON_WIN32],[1],[Define if this is Win32ish platform]) 272 AC_SUBST(LLVM_ON_UNIX,[0]) 273 AC_SUBST(LLVM_ON_WIN32,[1]) 274 ;; 275esac 276 277dnl Determine what our target architecture is and configure accordingly. 278dnl This will allow Makefiles to make a distinction between the hardware and 279dnl the OS. 280AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch], 281[case $target in 282 i?86-*) llvm_cv_target_arch="x86" ;; 283 amd64-* | x86_64-*) llvm_cv_target_arch="x86_64" ;; 284 sparc*-*) llvm_cv_target_arch="Sparc" ;; 285 powerpc*-*) llvm_cv_target_arch="PowerPC" ;; 286 alpha*-*) llvm_cv_target_arch="Alpha" ;; 287 arm*-*) llvm_cv_target_arch="ARM" ;; 288 mips-*) llvm_cv_target_arch="Mips" ;; 289 pic16-*) llvm_cv_target_arch="PIC16" ;; 290 xcore-*) llvm_cv_target_arch="XCore" ;; 291 msp430-*) llvm_cv_target_arch="MSP430" ;; 292 s390x-*) llvm_cv_target_arch="SystemZ" ;; 293 bfin-*) llvm_cv_target_arch="Blackfin" ;; 294 *) llvm_cv_target_arch="Unknown" ;; 295esac]) 296 297if test "$llvm_cv_target_arch" = "Unknown" ; then 298 AC_MSG_WARN([Configuring LLVM for an unknown target archicture]) 299fi 300 301# Determine the LLVM native architecture for the target 302case "$llvm_cv_target_arch" in 303 x86) LLVM_NATIVE_ARCH="X86" ;; 304 x86_64) LLVM_NATIVE_ARCH="X86" ;; 305 *) LLVM_NATIVE_ARCH="$llvm_cv_target_arch" ;; 306esac 307 308dnl Define a substitution, ARCH, for the target architecture 309AC_SUBST(ARCH,$llvm_cv_target_arch) 310 311dnl Check for the endianness of the target 312AC_C_BIGENDIAN(AC_SUBST([ENDIAN],[big]),AC_SUBST([ENDIAN],[little])) 313 314dnl Check for build platform executable suffix if we're crosscompiling 315if test "$cross_compiling" = yes; then 316 AC_SUBST(LLVM_CROSS_COMPILING, [1]) 317 AC_BUILD_EXEEXT 318 ac_build_prefix=${build_alias}- 319 AC_CHECK_PROG(BUILD_CXX, ${ac_build_prefix}g++, ${ac_build_prefix}g++) 320 if test -z "$BUILD_CXX"; then 321 AC_CHECK_PROG(BUILD_CXX, g++, g++) 322 if test -z "$BUILD_CXX"; then 323 AC_CHECK_PROG(BUILD_CXX, c++, c++, , , /usr/ucb/c++) 324 fi 325 fi 326else 327 AC_SUBST(LLVM_CROSS_COMPILING, [0]) 328fi 329 330dnl Check to see if there's a "CVS" (or .svn or .git) directory indicating 331dnl that this build is being done from a checkout. This sets up several 332dnl defaults for the command line switches. When we build with a CVS directory, 333dnl we get a debug with assertions turned on. Without, we assume a source 334dnl release and we get an optimized build without assertions. 335dnl See --enable-optimized and --enable-assertions below 336if test -d "CVS" -o -d "${srcdir}/CVS" -o -d ".svn" -o -d "${srcdir}/.svn" -o -d ".git" -o -d "${srcdir}/.git"; then 337 cvsbuild="yes" 338 optimize="no" 339 AC_SUBST(CVSBUILD,[[CVSBUILD=1]]) 340else 341 cvsbuild="no" 342 optimize="yes" 343fi 344 345dnl===-----------------------------------------------------------------------=== 346dnl=== 347dnl=== SECTION 3: Command line arguments for the configure script. 348dnl=== 349dnl===-----------------------------------------------------------------------=== 350 351dnl --enable-optimized : check whether they want to do an optimized build: 352AC_ARG_ENABLE(optimized, AS_HELP_STRING( 353 --enable-optimized,[Compile with optimizations enabled (default is NO)]),,enableval=$optimize) 354if test ${enableval} = "no" ; then 355 AC_SUBST(ENABLE_OPTIMIZED,[[]]) 356else 357 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]]) 358fi 359 360dnl --enable-profiling : check whether they want to do a profile build: 361AC_ARG_ENABLE(profiling, AS_HELP_STRING( 362 --enable-profiling,[Compile with profiling enabled (default is NO)]),,enableval="no") 363if test ${enableval} = "no" ; then 364 AC_SUBST(ENABLE_PROFILING,[[]]) 365else 366 AC_SUBST(ENABLE_PROFILING,[[ENABLE_PROFILING=1]]) 367fi 368 369dnl --enable-assertions : check whether they want to turn on assertions or not: 370AC_ARG_ENABLE(assertions,AS_HELP_STRING( 371 --enable-assertions,[Compile with assertion checks enabled (default is YES)]),, enableval="yes") 372if test ${enableval} = "yes" ; then 373 AC_SUBST(DISABLE_ASSERTIONS,[[]]) 374else 375 AC_SUBST(DISABLE_ASSERTIONS,[[DISABLE_ASSERTIONS=1]]) 376fi 377 378dnl --enable-expensive-checks : check whether they want to turn on expensive debug checks: 379AC_ARG_ENABLE(expensive-checks,AS_HELP_STRING( 380 --enable-expensive-checks,[Compile with expensive debug checks enabled (default is NO)]),, enableval="no") 381if test ${enableval} = "yes" ; then 382 AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[ENABLE_EXPENSIVE_CHECKS=1]]) 383 AC_SUBST(EXPENSIVE_CHECKS,[[yes]]) 384else 385 AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[]]) 386 AC_SUBST(EXPENSIVE_CHECKS,[[no]]) 387fi 388 389dnl --enable-debug-runtime : should runtime libraries have debug symbols? 390AC_ARG_ENABLE(debug-runtime, 391 AS_HELP_STRING(--enable-debug-runtime,[Build runtime libs with debug symbols (default is NO)]),,enableval=no) 392if test ${enableval} = "no" ; then 393 AC_SUBST(DEBUG_RUNTIME,[[]]) 394else 395 AC_SUBST(DEBUG_RUNTIME,[[DEBUG_RUNTIME=1]]) 396fi 397 398dnl --enable-debug-symbols : should even optimized compiler libraries 399dnl have debug symbols? 400AC_ARG_ENABLE(debug-symbols, 401 AS_HELP_STRING(--enable-debug-symbols,[Build compiler with debug symbols (default is NO if optimization is on and YES if it's off)]),,enableval=no) 402if test ${enableval} = "no" ; then 403 AC_SUBST(DEBUG_SYMBOLS,[[]]) 404else 405 AC_SUBST(DEBUG_SYMBOLS,[[DEBUG_SYMBOLS=1]]) 406fi 407 408dnl --enable-jit: check whether they want to enable the jit 409AC_ARG_ENABLE(jit, 410 AS_HELP_STRING(--enable-jit, 411 [Enable Just In Time Compiling (default is YES)]),, 412 enableval=default) 413if test ${enableval} = "no" 414then 415 AC_SUBST(JIT,[[]]) 416else 417 case "$llvm_cv_target_arch" in 418 x86) AC_SUBST(TARGET_HAS_JIT,1) ;; 419 Sparc) AC_SUBST(TARGET_HAS_JIT,0) ;; 420 PowerPC) AC_SUBST(TARGET_HAS_JIT,1) ;; 421 x86_64) AC_SUBST(TARGET_HAS_JIT,1) ;; 422 Alpha) AC_SUBST(TARGET_HAS_JIT,1) ;; 423 ARM) AC_SUBST(TARGET_HAS_JIT,1) ;; 424 Mips) AC_SUBST(TARGET_HAS_JIT,0) ;; 425 PIC16) AC_SUBST(TARGET_HAS_JIT,0) ;; 426 XCore) AC_SUBST(TARGET_HAS_JIT,0) ;; 427 MSP430) AC_SUBST(TARGET_HAS_JIT,0) ;; 428 SystemZ) AC_SUBST(TARGET_HAS_JIT,0) ;; 429 Blackfin) AC_SUBST(TARGET_HAS_JIT,0) ;; 430 *) AC_SUBST(TARGET_HAS_JIT,0) ;; 431 esac 432fi 433 434dnl Allow enablement of doxygen generated documentation 435AC_ARG_ENABLE(doxygen, 436 AS_HELP_STRING([--enable-doxygen], 437 [Build doxygen documentation (default is NO)]),, 438 enableval=default) 439case "$enableval" in 440 yes) AC_SUBST(ENABLE_DOXYGEN,[1]) ;; 441 no) AC_SUBST(ENABLE_DOXYGEN,[0]) ;; 442 default) AC_SUBST(ENABLE_DOXYGEN,[0]) ;; 443 *) AC_MSG_ERROR([Invalid setting for --enable-doxygen. Use "yes" or "no"]) ;; 444esac 445 446dnl Allow disablement of threads 447AC_ARG_ENABLE(threads, 448 AS_HELP_STRING([--enable-threads], 449 [Use threads if available (default is YES)]),, 450 enableval=default) 451case "$enableval" in 452 yes) AC_SUBST(ENABLE_THREADS,[1]) ;; 453 no) AC_SUBST(ENABLE_THREADS,[0]) ;; 454 default) AC_SUBST(ENABLE_THREADS,[1]) ;; 455 *) AC_MSG_ERROR([Invalid setting for --enable-threads. Use "yes" or "no"]) ;; 456esac 457AC_DEFINE_UNQUOTED([ENABLE_THREADS],$ENABLE_THREADS,[Define if threads enabled]) 458 459dnl Allow building without position independent code 460AC_ARG_ENABLE(pic, 461 AS_HELP_STRING([--enable-pic], 462 [Build LLVM with Position Independent Code (default is YES)]),, 463 enableval=default) 464case "$enableval" in 465 yes) AC_SUBST(ENABLE_PIC,[1]) ;; 466 no) AC_SUBST(ENABLE_PIC,[0]) ;; 467 default) AC_SUBST(ENABLE_PIC,[1]) ;; 468 *) AC_MSG_ERROR([Invalid setting for --enable-pic. Use "yes" or "no"]) ;; 469esac 470AC_DEFINE_UNQUOTED([ENABLE_PIC],$ENABLE_PIC, 471 [Define if position independent code is enabled]) 472 473dnl Allow specific targets to be specified for building (or not) 474TARGETS_TO_BUILD="" 475AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-targets], 476 [Build specific host targets: all or target1,target2,... Valid targets are: 477 host, x86, x86_64, sparc, powerpc, alpha, arm, mips, spu, pic16, 478 xcore, msp430, systemz, blackfin, cbe, msil, and cpp (default=all)]),, 479 enableval=all) 480if test "$enableval" = host-only ; then 481 enableval=host 482fi 483case "$enableval" in 484 all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha ARM Mips CellSPU PIC16 XCore MSP430 SystemZ Blackfin CBackend MSIL CppBackend" ;; 485 *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do 486 case "$a_target" in 487 x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 488 x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 489 sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; 490 powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; 491 alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; 492 arm) TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;; 493 mips) TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;; 494 spu) TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;; 495 pic16) TARGETS_TO_BUILD="PIC16 $TARGETS_TO_BUILD" ;; 496 xcore) TARGETS_TO_BUILD="XCore $TARGETS_TO_BUILD" ;; 497 msp430) TARGETS_TO_BUILD="MSP430 $TARGETS_TO_BUILD" ;; 498 systemz) TARGETS_TO_BUILD="SystemZ $TARGETS_TO_BUILD" ;; 499 blackfin) TARGETS_TO_BUILD="Blackfin $TARGETS_TO_BUILD" ;; 500 cbe) TARGETS_TO_BUILD="CBackend $TARGETS_TO_BUILD" ;; 501 msil) TARGETS_TO_BUILD="MSIL $TARGETS_TO_BUILD" ;; 502 cpp) TARGETS_TO_BUILD="CppBackend $TARGETS_TO_BUILD" ;; 503 host) case "$llvm_cv_target_arch" in 504 x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 505 x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 506 Sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; 507 PowerPC) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; 508 Alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; 509 ARM) TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;; 510 Mips) TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;; 511 CellSPU|SPU) TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;; 512 PIC16) TARGETS_TO_BUILD="PIC16 $TARGETS_TO_BUILD" ;; 513 XCore) TARGETS_TO_BUILD="XCore $TARGETS_TO_BUILD" ;; 514 MSP430) TARGETS_TO_BUILD="MSP430 $TARGETS_TO_BUILD" ;; 515 s390x) TARGETS_TO_BUILD="SystemZ $TARGETS_TO_BUILD" ;; 516 Blackfin) TARGETS_TO_BUILD="Blackfin $TARGETS_TO_BUILD" ;; 517 *) AC_MSG_ERROR([Can not set target to build]) ;; 518 esac ;; 519 *) AC_MSG_ERROR([Unrecognized target $a_target]) ;; 520 esac 521 done 522 ;; 523esac 524AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD) 525 526# Determine whether we are building LLVM support for the native architecture. 527# If so, define LLVM_NATIVE_ARCH to that LLVM target. 528for a_target in $TARGETS_TO_BUILD; do 529 if test "$a_target" = "$LLVM_NATIVE_ARCH"; then 530 LLVM_NATIVE_ARCHTARGET="${LLVM_NATIVE_ARCH}Target" 531 AC_DEFINE_UNQUOTED(LLVM_NATIVE_ARCH,$LLVM_NATIVE_ARCHTARGET, 532 [LLVM architecture name for the native architecture, if available]) 533 fi 534done 535 536# Build the LLVM_TARGET and LLVM_... macros for Targets.def and the individual 537# target feature def files. 538LLVM_ENUM_TARGETS="" 539LLVM_ENUM_ASM_PRINTERS="" 540LLVM_ENUM_ASM_PARSERS="" 541LLVM_ENUM_DISASSEMBLERS="" 542for target_to_build in $TARGETS_TO_BUILD; do 543 LLVM_ENUM_TARGETS="LLVM_TARGET($target_to_build) $LLVM_ENUM_TARGETS" 544 if test -f ${srcdir}/lib/Target/${target_to_build}/AsmPrinter/Makefile ; then 545 LLVM_ENUM_ASM_PRINTERS="LLVM_ASM_PRINTER($target_to_build) $LLVM_ENUM_ASM_PRINTERS"; 546 fi 547 if test -f ${srcdir}/lib/Target/${target_to_build}/AsmParser/Makefile ; then 548 LLVM_ENUM_ASM_PARSERS="LLVM_ASM_PARSER($target_to_build) $LLVM_ENUM_ASM_PARSERS"; 549 fi 550 if test -f ${srcdir}/lib/Target/${target_to_build}/Disassembler/Makefile ; then 551 LLVM_ENUM_DISASSEMBLERS="LLVM_DISASSEMBLER($target_to_build) $LLVM_ENUM_DISASSEMBLERS"; 552 fi 553done 554AC_SUBST(LLVM_ENUM_TARGETS) 555AC_SUBST(LLVM_ENUM_ASM_PRINTERS) 556AC_SUBST(LLVM_ENUM_ASM_PARSERS) 557AC_SUBST(LLVM_ENUM_DISASSEMBLERS) 558 559dnl Prevent the CBackend from using printf("%a") for floating point so older 560dnl C compilers that cannot deal with the 0x0p+0 hex floating point format 561dnl can still compile the CBE's output 562AC_ARG_ENABLE([cbe-printf-a],AS_HELP_STRING([--enable-cbe-printf-a], 563 [Enable C Backend output with hex floating point via %a (default is YES)]),, 564 enableval=default) 565case "$enableval" in 566 yes) AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;; 567 no) AC_SUBST(ENABLE_CBE_PRINTF_A,[0]) ;; 568 default) AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;; 569 *) AC_MSG_ERROR([Invalid setting for --enable-cbe-printf-a. Use "yes" or "no"]) ;; 570esac 571AC_DEFINE_UNQUOTED([ENABLE_CBE_PRINTF_A],$ENABLE_CBE_PRINTF_A, 572 [Define if CBE is enabled for printf %a output]) 573 574dnl Allow a specific llvm-gcc/llvm-g++ pair to be used with this LLVM config. 575AC_ARG_WITH(llvmgccdir, 576 AS_HELP_STRING([--with-llvmgccdir], 577 [Specify location of llvm-gcc install dir (default searches PATH)]),, 578 withval=default) 579case "$withval" in 580 default) WITH_LLVMGCCDIR=default ;; 581 /* | [[A-Za-z]]:[[\\/]]*) WITH_LLVMGCCDIR=$withval ;; 582 *) AC_MSG_ERROR([Invalid path for --with-llvmgccdir. Provide full path]) ;; 583esac 584 585dnl Allow a specific llvm-gcc compiler to be used with this LLVM config. 586AC_ARG_WITH(llvmgcc, 587 AS_HELP_STRING([--with-llvmgcc], 588 [Specify location of llvm-gcc driver (default searches PATH)]), 589 LLVMGCC=$with_llvmgcc 590 WITH_LLVMGCCDIR="",) 591 592dnl Allow a specific llvm-g++ compiler to be used with this LLVM config. 593AC_ARG_WITH(llvmgxx, 594 AS_HELP_STRING([--with-llvmgxx], 595 [Specify location of llvm-g++ driver (default searches PATH)]), 596 LLVMGXX=$with_llvmgxx 597 WITH_LLVMGCCDIR="",) 598 599if test -n "$LLVMGCC"; then 600 LLVMGCCCOMMAND="$LLVMGCC" 601fi 602 603if test -n "$LLVMGXX"; then 604 LLVMGXXCOMMAND="$LLVMGXX" 605fi 606 607if test -n "$LLVMGCC" && test -z "$LLVMGXX"; then 608 AC_MSG_ERROR([Invalid llvm-g++. Use --with-llvmgxx when --with-llvmgcc is used]); 609fi 610 611if test -n "$LLVMGXX" && test -z "$LLVMGCC"; then 612 AC_MSG_ERROR([Invalid llvm-gcc. Use --with-llvmgcc when --with-llvmgxx is used]); 613fi 614 615dnl Override the option to use for optimized builds. 616AC_ARG_WITH(optimize-option, 617 AS_HELP_STRING([--with-optimize-option], 618 [Select the compiler options to use for optimized builds]),, 619 withval=default) 620AC_MSG_CHECKING([optimization flags]) 621case "$withval" in 622 default) 623 case "$llvm_cv_os_type" in 624 MingW) optimize_option=-O3 ;; 625 *) optimize_option=-O2 ;; 626 esac ;; 627 *) optimize_option="$withval" ;; 628esac 629AC_SUBST(OPTIMIZE_OPTION,$optimize_option) 630AC_MSG_RESULT([$optimize_option]) 631 632dnl Specify extra build options 633AC_ARG_WITH(extra-options, 634 AS_HELP_STRING([--with-extra-options], 635 [Specify additional options to compile LLVM with]),, 636 withval=default) 637case "$withval" in 638 default) EXTRA_OPTIONS= ;; 639 *) EXTRA_OPTIONS=$withval ;; 640esac 641AC_SUBST(EXTRA_OPTIONS,$EXTRA_OPTIONS) 642 643dnl Allow specific bindings to be specified for building (or not) 644AC_ARG_ENABLE([bindings],AS_HELP_STRING([--enable-bindings], 645 [Build specific language bindings: all,auto,none,{binding-name} (default=auto)]),, 646 enableval=default) 647BINDINGS_TO_BUILD="" 648case "$enableval" in 649 yes | default | auto) BINDINGS_TO_BUILD="auto" ;; 650 all ) BINDINGS_TO_BUILD="ocaml" ;; 651 none | no) BINDINGS_TO_BUILD="" ;; 652 *)for a_binding in `echo $enableval|sed -e 's/,/ /g' ` ; do 653 case "$a_binding" in 654 ocaml) BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" ;; 655 *) AC_MSG_ERROR([Unrecognized binding $a_binding]) ;; 656 esac 657 done 658 ;; 659esac 660 661dnl Allow the ocaml libdir to be overridden. This could go in a configure 662dnl script for bindings/ocaml/configure, except that its auto value depends on 663dnl OCAMLC, which is found here to support tests. 664AC_ARG_WITH([ocaml-libdir], 665 [AS_HELP_STRING([--with-ocaml-libdir], 666 [Specify install location for ocaml bindings (default is stdlib)])], 667 [], 668 [withval=auto]) 669case "$withval" in 670 auto) with_ocaml_libdir="$withval" ;; 671 /* | [[A-Za-z]]:[[\\/]]*) with_ocaml_libdir="$withval" ;; 672 *) AC_MSG_ERROR([Invalid path for --with-ocaml-libdir. Provide full path]) ;; 673esac 674 675AC_ARG_WITH(c-include-dirs, 676 AS_HELP_STRING([--with-c-include-dirs], 677 [Colon separated list of directories clang will search for headers]),, 678 withval="") 679AC_DEFINE_UNQUOTED(C_INCLUDE_DIRS,"$withval", 680 [Directories clang will search for headers]) 681 682AC_ARG_WITH(cxx-include-root, 683 AS_HELP_STRING([--with-cxx-include-root], 684 [Directory with the libstdc++ headers.]),, 685 withval="") 686AC_DEFINE_UNQUOTED(CXX_INCLUDE_ROOT,"$withval", 687 [Directory with the libstdc++ headers.]) 688 689AC_ARG_WITH(cxx-include-arch, 690 AS_HELP_STRING([--with-cxx-include-arch], 691 [Architecture of the libstdc++ headers.]),, 692 withval="") 693AC_DEFINE_UNQUOTED(CXX_INCLUDE_ARCH,"$withval", 694 [Arch the libstdc++ headers.]) 695 696AC_ARG_WITH(cxx-include-32bit-dir, 697 AS_HELP_STRING([--with-cxx-include-32bit-dir], 698 [32 bit multilib dir.]),, 699 withval="") 700AC_DEFINE_UNQUOTED(CXX_INCLUDE_32BIT_DIR,"$withval", 701 [32 bit multilib directory.]) 702 703AC_ARG_WITH(cxx-include-64bit-dir, 704 AS_HELP_STRING([--with-cxx-include-64bit-dir], 705 [64 bit multilib directory.]),, 706 withval="") 707AC_DEFINE_UNQUOTED(CXX_INCLUDE_64BIT_DIR,"$withval", 708 [64 bit multilib directory.]) 709 710dnl Allow linking of LLVM with GPLv3 binutils code. 711AC_ARG_WITH(binutils-include, 712 AS_HELP_STRING([--with-binutils-include], 713 [Specify path to binutils/include/ containing plugin-api.h file for gold plugin.]),, 714 withval=default) 715case "$withval" in 716 default) WITH_BINUTILS_INCDIR=default ;; 717 /* | [[A-Za-z]]:[[\\/]]*) WITH_BINUTILS_INCDIR=$withval ;; 718 *) AC_MSG_ERROR([Invalid path for --with-binutils-include. Provide full path]) ;; 719esac 720if test "x$WITH_BINUTILS_INCDIR" != xdefault ; then 721 AC_SUBST(BINUTILS_INCDIR,$WITH_BINUTILS_INCDIR) 722 if test ! -f "$WITH_BINUTILS_INCDIR/plugin-api.h"; then 723 echo "$WITH_BINUTILS_INCDIR/plugin-api.h" 724 AC_MSG_ERROR([Invalid path to directory containing plugin-api.h.]); 725 fi 726fi 727 728dnl --enable-libffi : check whether the user wants to turn off libffi: 729AC_ARG_ENABLE(libffi,AS_HELP_STRING( 730 --enable-libffi,[Check for the presence of libffi (default is NO)]), 731 [case "$enableval" in 732 yes) llvm_cv_enable_libffi="yes" ;; 733 no) llvm_cv_enable_libffi="no" ;; 734 *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;; 735 esac], 736 llvm_cv_enable_libffi=no) 737 738dnl Only Windows needs dynamic libCompilerDriver to support plugins. 739if test "$llvm_cv_os_type" = "Win32" ; then 740 llvmc_dynamic="yes" 741else 742 llvmc_dynamic="no" 743fi 744 745dnl --enable-llvmc-dynamic : should LLVMC link libCompilerDriver dynamically? 746AC_ARG_ENABLE(llvmc-dynamic,AS_HELP_STRING( 747--enable-llvmc-dynamic, 748[Link LLVMC dynamically (default is NO, unless on Win32)]),, 749enableval=$llvmc_dynamic) 750if test ${enableval} = "yes" && test "$ENABLE_PIC" -eq 1 ; then 751 AC_SUBST(ENABLE_LLVMC_DYNAMIC,[[ENABLE_LLVMC_DYNAMIC=1]]) 752else 753 AC_SUBST(ENABLE_LLVMC_DYNAMIC,[[]]) 754fi 755 756dnl --enable-llvmc-dynamic-plugins : should LLVMC support dynamic plugins? 757AC_ARG_ENABLE(llvmc-dynamic-plugins,AS_HELP_STRING( 758--enable-llvmc-dynamic-plugins, 759[Enable dynamic LLVMC plugins (default is YES)]),, 760enableval=yes) 761if test ${enableval} = "yes" ; then 762 AC_SUBST(ENABLE_LLVMC_DYNAMIC_PLUGINS,[[ENABLE_LLVMC_DYNAMIC_PLUGINS=1]]) 763else 764 AC_SUBST(ENABLE_LLVMC_DYNAMIC_PLUGINS,[[]]) 765fi 766 767dnl===-----------------------------------------------------------------------=== 768dnl=== 769dnl=== SECTION 4: Check for programs we need and that they are the right version 770dnl=== 771dnl===-----------------------------------------------------------------------=== 772 773dnl Check for compilation tools 774AC_PROG_CPP 775AC_PROG_CC(gcc) 776AC_PROG_CXX(g++) 777 778AC_PROG_NM 779AC_SUBST(NM) 780 781dnl Check for the tools that the makefiles require 782AC_CHECK_GNU_MAKE 783AC_PROG_LN_S 784AC_PATH_PROG(CMP, [cmp], [cmp]) 785AC_PATH_PROG(CP, [cp], [cp]) 786AC_PATH_PROG(DATE, [date], [date]) 787AC_PATH_PROG(FIND, [find], [find]) 788AC_PATH_PROG(GREP, [grep], [grep]) 789AC_PATH_PROG(MKDIR,[mkdir],[mkdir]) 790AC_PATH_PROG(MV, [mv], [mv]) 791AC_PROG_RANLIB 792AC_CHECK_TOOL(AR, ar, false) 793AC_PATH_PROG(RM, [rm], [rm]) 794AC_PATH_PROG(SED, [sed], [sed]) 795AC_PATH_PROG(TAR, [tar], [gtar]) 796AC_PATH_PROG(BINPWD,[pwd], [pwd]) 797 798dnl Looking for misc. graph plotting software 799AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz]) 800if test "$GRAPHVIZ" != "echo Graphviz" ; then 801 AC_DEFINE([HAVE_GRAPHVIZ],[1],[Define if the Graphviz program is available]) 802 dnl If we're targeting for mingw we should emit windows paths, not msys 803 if test "$llvm_cv_os_type" = "MingW" ; then 804 GRAPHVIZ=`echo $GRAPHVIZ | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 805 fi 806 AC_DEFINE_UNQUOTED([LLVM_PATH_GRAPHVIZ],"$GRAPHVIZ${EXEEXT}", 807 [Define to path to Graphviz program if found or 'echo Graphviz' otherwise]) 808fi 809AC_PATH_PROG(DOT, [dot], [echo dot]) 810if test "$DOT" != "echo dot" ; then 811 AC_DEFINE([HAVE_DOT],[1],[Define if the dot program is available]) 812 dnl If we're targeting for mingw we should emit windows paths, not msys 813 if test "$llvm_cv_os_type" = "MingW" ; then 814 DOT=`echo $DOT | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 815 fi 816 AC_DEFINE_UNQUOTED([LLVM_PATH_DOT],"$DOT${EXEEXT}", 817 [Define to path to dot program if found or 'echo dot' otherwise]) 818fi 819AC_PATH_PROG(FDP, [fdp], [echo fdp]) 820if test "$FDP" != "echo fdp" ; then 821 AC_DEFINE([HAVE_FDP],[1],[Define if the neat program is available]) 822 dnl If we're targeting for mingw we should emit windows paths, not msys 823 if test "$llvm_cv_os_type" = "MingW" ; then 824 FDP=`echo $FDP | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 825 fi 826 AC_DEFINE_UNQUOTED([LLVM_PATH_FDP],"$FDP${EXEEXT}", 827 [Define to path to fdp program if found or 'echo fdp' otherwise]) 828fi 829AC_PATH_PROG(NEATO, [neato], [echo neato]) 830if test "$NEATO" != "echo neato" ; then 831 AC_DEFINE([HAVE_NEATO],[1],[Define if the neat program is available]) 832 dnl If we're targeting for mingw we should emit windows paths, not msys 833 if test "$llvm_cv_os_type" = "MingW" ; then 834 NEATO=`echo $NEATO | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 835 fi 836 AC_DEFINE_UNQUOTED([LLVM_PATH_NEATO],"$NEATO${EXEEXT}", 837 [Define to path to neato program if found or 'echo neato' otherwise]) 838fi 839AC_PATH_PROG(TWOPI, [twopi], [echo twopi]) 840if test "$TWOPI" != "echo twopi" ; then 841 AC_DEFINE([HAVE_TWOPI],[1],[Define if the neat program is available]) 842 dnl If we're targeting for mingw we should emit windows paths, not msys 843 if test "$llvm_cv_os_type" = "MingW" ; then 844 TWOPI=`echo $TWOPI | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 845 fi 846 AC_DEFINE_UNQUOTED([LLVM_PATH_TWOPI],"$TWOPI${EXEEXT}", 847 [Define to path to twopi program if found or 'echo twopi' otherwise]) 848fi 849AC_PATH_PROG(CIRCO, [circo], [echo circo]) 850if test "$CIRCO" != "echo circo" ; then 851 AC_DEFINE([HAVE_CIRCO],[1],[Define if the neat program is available]) 852 dnl If we're targeting for mingw we should emit windows paths, not msys 853 if test "$llvm_cv_os_type" = "MingW" ; then 854 CIRCO=`echo $CIRCO | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 855 fi 856 AC_DEFINE_UNQUOTED([LLVM_PATH_CIRCO],"$CIRCO${EXEEXT}", 857 [Define to path to circo program if found or 'echo circo' otherwise]) 858fi 859AC_PATH_PROGS(GV, [gv gsview32], [echo gv]) 860if test "$GV" != "echo gv" ; then 861 AC_DEFINE([HAVE_GV],[1],[Define if the gv program is available]) 862 dnl If we're targeting for mingw we should emit windows paths, not msys 863 if test "$llvm_cv_os_type" = "MingW" ; then 864 GV=`echo $GV | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 865 fi 866 AC_DEFINE_UNQUOTED([LLVM_PATH_GV],"$GV${EXEEXT}", 867 [Define to path to gv program if found or 'echo gv' otherwise]) 868fi 869AC_PATH_PROG(DOTTY, [dotty], [echo dotty]) 870if test "$DOTTY" != "echo dotty" ; then 871 AC_DEFINE([HAVE_DOTTY],[1],[Define if the dotty program is available]) 872 dnl If we're targeting for mingw we should emit windows paths, not msys 873 if test "$llvm_cv_os_type" = "MingW" ; then 874 DOTTY=`echo $DOTTY | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 875 fi 876 AC_DEFINE_UNQUOTED([LLVM_PATH_DOTTY],"$DOTTY${EXEEXT}", 877 [Define to path to dotty program if found or 'echo dotty' otherwise]) 878fi 879 880dnl Look for a sufficiently recent version of Perl. 881LLVM_PROG_PERL([5.006]) 882AC_SUBST(PERL) 883if test x"$PERL" = xnone; then 884 AC_SUBST(HAVE_PERL,0) 885 AC_MSG_ERROR([perl is required but was not found, please install it]) 886else 887 AC_SUBST(HAVE_PERL,1) 888fi 889 890dnl Find the install program 891AC_PROG_INSTALL 892 893dnl Checks for documentation and testing tools that we can do without. If these 894dnl are not found then they are set to "true" which always succeeds but does 895dnl nothing. This just lets the build output show that we could have done 896dnl something if the tool was available. 897AC_PATH_PROG(BZIP2, [bzip2]) 898AC_PATH_PROG(DOXYGEN, [doxygen]) 899AC_PATH_PROG(GROFF, [groff]) 900AC_PATH_PROG(GZIP, [gzip]) 901AC_PATH_PROG(POD2HTML, [pod2html]) 902AC_PATH_PROG(POD2MAN, [pod2man]) 903AC_PATH_PROG(RUNTEST, [runtest]) 904DJ_AC_PATH_TCLSH 905AC_PATH_PROG(ZIP, [zip]) 906AC_PATH_PROGS(OCAMLC, [ocamlc]) 907AC_PATH_PROGS(OCAMLOPT, [ocamlopt]) 908AC_PATH_PROGS(OCAMLDEP, [ocamldep]) 909AC_PATH_PROGS(OCAMLDOC, [ocamldoc]) 910AC_PATH_PROGS(GAS, [gas as]) 911 912dnl Determine whether the linker supports the -R option. 913AC_LINK_USE_R 914 915dnl Determine whether the linker supports the -export-dynamic option. 916AC_LINK_EXPORT_DYNAMIC 917 918dnl Check for libtool and the library that has dlopen function (which must come 919dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with 920dnl libtool). 921AC_LIBTOOL_DLOPEN 922AC_LIB_LTDL 923 924if test "$WITH_LLVMGCCDIR" = "default" ; then 925 LLVMGCC="llvm-gcc${EXEEXT}" 926 LLVMGXX="llvm-g++${EXEEXT}" 927 LLVMGCCCOMMAND="$LLVMGCC" 928 LLVMGXXCOMMAND="$LLVMGXX" 929 AC_SUBST(LLVMGCCCOMMAND,$LLVMGCCCOMMAND) 930 AC_SUBST(LLVMGXXCOMMAND,$LLVMGXXCOMMAND) 931 AC_PATH_PROG(LLVMGCC, $LLVMGCC, []) 932 AC_PATH_PROG(LLVMGXX, $LLVMGXX, []) 933else 934 if test -z "$LLVMGCC"; then 935 LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}" 936 LLVMGCCCOMMAND="$LLVMGCC" 937 fi 938 if test -z "$LLVMGXX"; then 939 LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}" 940 LLVMGXXCOMMAND="$LLVMGXX" 941 fi 942 943 AC_SUBST(LLVMGCC,$LLVMGCC) 944 AC_SUBST(LLVMGXX,$LLVMGXX) 945 AC_SUBST(LLVMGCCCOMMAND,$LLVMGCCCOMMAND) 946 AC_SUBST(LLVMGXXCOMMAND,$LLVMGXXCOMMAND) 947fi 948 949 950AC_MSG_CHECKING([tool compatibility]) 951 952dnl Ensure that compilation tools are GCC or a GNU compatible compiler such as 953dnl ICC; we use GCC specific options in the makefiles so the compiler needs 954dnl to support those options. 955dnl "icc" emits gcc signatures 956dnl "icc -no-gcc" emits no gcc signature BUT is still compatible 957ICC=no 958IXX=no 959case $CC in 960 icc*|icpc*) 961 ICC=yes 962 IXX=yes 963 ;; 964 *) 965 ;; 966esac 967 968if test "$GCC" != "yes" && test "$ICC" != "yes" 969then 970 AC_MSG_ERROR([gcc|icc required but not found]) 971fi 972 973dnl Ensure that compilation tools are GCC; we use GCC specific extensions 974if test "$GXX" != "yes" && test "$IXX" != "yes" 975then 976 AC_MSG_ERROR([g++|icc required but not found]) 977fi 978 979dnl Verify that GCC is version 3.0 or higher 980if test "$GCC" = "yes" 981then 982 AC_COMPILE_IFELSE([[#if !defined(__GNUC__) || __GNUC__ < 3 983#error Unsupported GCC version 984#endif 985]], [], [AC_MSG_ERROR([gcc 3.x required, but you have a lower version])]) 986fi 987 988dnl Check for GNU Make. We use its extensions, so don't build without it 989if test -z "$llvm_cv_gnu_make_command" 990then 991 AC_MSG_ERROR([GNU Make required but not found]) 992fi 993 994dnl Tool compatibility is okay if we make it here. 995AC_MSG_RESULT([ok]) 996 997dnl Check optional compiler flags. 998AC_MSG_CHECKING([optional compiler flags]) 999CXX_FLAG_CHECK(NO_VARIADIC_MACROS, [-Wno-variadic-macros]) 1000CXX_FLAG_CHECK(NO_MISSING_FIELD_INITIALIZERS, [-Wno-missing-field-initializers]) 1001AC_MSG_RESULT([$NO_VARIADIC_MACROS $NO_MISSING_FIELD_INITIALIZERS]) 1002 1003dnl===-----------------------------------------------------------------------=== 1004dnl=== 1005dnl=== SECTION 5: Check for libraries 1006dnl=== 1007dnl===-----------------------------------------------------------------------=== 1008 1009AC_CHECK_LIB(m,sin) 1010if test "$llvm_cv_os_type" = "MingW" ; then 1011 AC_CHECK_LIB(imagehlp, main) 1012 AC_CHECK_LIB(psapi, main) 1013fi 1014 1015dnl dlopen() is required for plugin support. 1016AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1], 1017 [Define if dlopen() is available on this platform.]), 1018 AC_MSG_WARN([dlopen() not found - disabling plugin support])) 1019 1020dnl libffi is optional; used to call external functions from the interpreter 1021if test "$llvm_cv_enable_libffi" = "yes" ; then 1022 AC_SEARCH_LIBS(ffi_call,ffi,AC_DEFINE([HAVE_FFI_CALL],[1], 1023 [Define if libffi is available on this platform.]), 1024 AC_MSG_ERROR([libffi not found - configure without --enable-libffi to compile without it])) 1025fi 1026 1027dnl mallinfo is optional; the code can compile (minus features) without it 1028AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1], 1029 [Define if mallinfo() is available on this platform.])) 1030 1031dnl pthread locking functions are optional - but llvm will not be thread-safe 1032dnl without locks. 1033if test "$ENABLE_THREADS" -eq 1 ; then 1034 AC_CHECK_LIB(pthread, pthread_mutex_init) 1035 AC_SEARCH_LIBS(pthread_mutex_lock,pthread, 1036 AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1], 1037 [Have pthread_mutex_lock])) 1038 AC_SEARCH_LIBS(pthread_rwlock_init,pthread, 1039 AC_DEFINE([HAVE_PTHREAD_RWLOCK_INIT],[1], 1040 [Have pthread_rwlock_init])) 1041 AC_SEARCH_LIBS(pthread_getspecific,pthread, 1042 AC_DEFINE([HAVE_PTHREAD_GETSPECIFIC],[1], 1043 [Have pthread_getspecific])) 1044fi 1045 1046dnl Allow extra x86-disassembler library 1047AC_ARG_WITH(udis86, 1048 AS_HELP_STRING([--with-udis86=<path>], 1049 [Use udis86 external x86 disassembler library]), 1050 [ 1051 AC_SUBST(USE_UDIS86, [1]) 1052 case "$withval" in 1053 /usr/lib|yes) ;; 1054 *) LDFLAGS="$LDFLAGS -L${withval}" ;; 1055 esac 1056 AC_CHECK_LIB(udis86, ud_init, [], [ 1057 echo "Error! You need to have libudis86 around." 1058 exit -1 1059 ]) 1060 ], 1061 AC_SUBST(USE_UDIS86, [0])) 1062AC_DEFINE_UNQUOTED([USE_UDIS86],$USE_UDIS86, 1063 [Define if use udis86 library]) 1064 1065dnl Allow OProfile support for JIT output. 1066AC_ARG_WITH(oprofile, 1067 AS_HELP_STRING([--with-oprofile=<prefix>], 1068 [Tell OProfile >= 0.9.4 how to symbolize JIT output]), 1069 [ 1070 AC_SUBST(USE_OPROFILE, [1]) 1071 case "$withval" in 1072 /usr|yes) llvm_cv_oppath=/usr/lib/oprofile ;; 1073 no) llvm_cv_oppath= 1074 AC_SUBST(USE_OPROFILE, [0]) ;; 1075 *) llvm_cv_oppath="${withval}/lib/oprofile" 1076 CPPFLAGS="-I${withval}/include";; 1077 esac 1078 if test -n "$llvm_cv_oppath" ; then 1079 LIBS="$LIBS -L${llvm_cv_oppath} -Wl,-rpath,${llvm_cv_oppath}" 1080 dnl Work around http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=537744: 1081 dnl libbfd is not included properly in libopagent in some Debian 1082 dnl versions. If libbfd isn't found at all, we assume opagent works 1083 dnl anyway. 1084 AC_SEARCH_LIBS(bfd_init, bfd, [], []) 1085 AC_SEARCH_LIBS(op_open_agent, opagent, [], [ 1086 echo "Error! You need to have libopagent around." 1087 exit -1 1088 ]) 1089 AC_CHECK_HEADER([opagent.h], [], [ 1090 echo "Error! You need to have opagent.h around." 1091 exit -1 1092 ]) 1093 fi 1094 ], 1095 [ 1096 AC_SUBST(USE_OPROFILE, [0]) 1097 ]) 1098AC_DEFINE_UNQUOTED([USE_OPROFILE],$USE_OPROFILE, 1099 [Define if we have the oprofile JIT-support library]) 1100 1101dnl===-----------------------------------------------------------------------=== 1102dnl=== 1103dnl=== SECTION 6: Check for header files 1104dnl=== 1105dnl===-----------------------------------------------------------------------=== 1106 1107dnl First, use autoconf provided macros for specific headers that we need 1108dnl We don't check for ancient stuff or things that are guaranteed to be there 1109dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers. 1110dnl Generally we're looking for POSIX headers. 1111AC_HEADER_DIRENT 1112AC_HEADER_MMAP_ANONYMOUS 1113AC_HEADER_STAT 1114AC_HEADER_STDC 1115AC_HEADER_SYS_WAIT 1116AC_HEADER_TIME 1117 1118AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h]) 1119AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h termios.h unistd.h]) 1120AC_CHECK_HEADERS([utime.h windows.h]) 1121AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h]) 1122AC_CHECK_HEADERS([sys/types.h sys/ioctl.h malloc/malloc.h mach/mach.h]) 1123if test "$ENABLE_THREADS" -eq 1 ; then 1124 AC_CHECK_HEADERS(pthread.h, 1125 AC_SUBST(HAVE_PTHREAD, 1), 1126 AC_SUBST(HAVE_PTHREAD, 0)) 1127else 1128 AC_SUBST(HAVE_PTHREAD, 0) 1129fi 1130 1131dnl Try to find ffi.h. 1132if test "$llvm_cv_enable_libffi" = "yes" ; then 1133 AC_CHECK_HEADERS([ffi.h ffi/ffi.h]) 1134fi 1135 1136dnl===-----------------------------------------------------------------------=== 1137dnl=== 1138dnl=== SECTION 7: Check for types and structures 1139dnl=== 1140dnl===-----------------------------------------------------------------------=== 1141 1142AC_HUGE_VAL_CHECK 1143AC_TYPE_PID_T 1144AC_TYPE_SIZE_T 1145AC_DEFINE_UNQUOTED([RETSIGTYPE],[void],[Define as the return type of signal handlers (`int' or `void').]) 1146AC_STRUCT_TM 1147AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found])) 1148AC_CHECK_TYPES([uint64_t],, 1149 AC_CHECK_TYPES([u_int64_t],, 1150 AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found]))) 1151 1152dnl===-----------------------------------------------------------------------=== 1153dnl=== 1154dnl=== SECTION 8: Check for specific functions needed 1155dnl=== 1156dnl===-----------------------------------------------------------------------=== 1157 1158AC_CHECK_FUNCS([backtrace ceilf floorf roundf rintf nearbyintf getcwd ]) 1159AC_CHECK_FUNCS([powf fmodf strtof round ]) 1160AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ]) 1161AC_CHECK_FUNCS([isatty mkdtemp mkstemp ]) 1162AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup ]) 1163AC_CHECK_FUNCS([strerror strerror_r strerror_s setenv ]) 1164AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ]) 1165AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp]) 1166AC_C_PRINTF_A 1167AC_FUNC_RAND48 1168 1169dnl Check for variations in the Standard C++ library and STL. These macros are 1170dnl provided by LLVM in the autoconf/m4 directory. 1171AC_FUNC_ISNAN 1172AC_FUNC_ISINF 1173 1174dnl Check for mmap support.We also need to know if /dev/zero is required to 1175dnl be opened for allocating RWX memory. 1176dnl Make sure we aren't attempting to configure for an unknown system 1177if test "$llvm_cv_platform_type" = "Unix" ; then 1178 AC_FUNC_MMAP 1179 AC_FUNC_MMAP_FILE 1180 AC_NEED_DEV_ZERO_FOR_MMAP 1181 1182 if test "$ac_cv_func_mmap_fixed_mapped" = "no" 1183 then 1184 AC_MSG_WARN([mmap() of a fixed address required but not supported]) 1185 fi 1186 if test "$ac_cv_func_mmap_file" = "no" 1187 then 1188 AC_MSG_WARN([mmap() of files required but not found]) 1189 fi 1190fi 1191 1192dnl atomic builtins are required for threading support. 1193AC_MSG_CHECKING(for GCC atomic builtins) 1194AC_LINK_IFELSE( 1195 AC_LANG_SOURCE( 1196 [[int main() { 1197 volatile unsigned long val = 1; 1198 __sync_synchronize(); 1199 __sync_val_compare_and_swap(&val, 1, 0); 1200 __sync_add_and_fetch(&val, 1); 1201 __sync_sub_and_fetch(&val, 1); 1202 return 0; 1203 } 1204 ]]), 1205 AC_MSG_RESULT(yes) 1206 AC_DEFINE(LLVM_MULTITHREADED, 1, Build multithreading support into LLVM), 1207 AC_MSG_RESULT(no) 1208 AC_DEFINE(LLVM_MULTITHREADED, 0, Build multithreading support into LLVM) 1209 AC_MSG_WARN([LLVM will be built thread-unsafe because atomic builtins are missing])) 1210 1211 1212dnl===-----------------------------------------------------------------------=== 1213dnl=== 1214dnl=== SECTION 9: Additional checks, variables, etc. 1215dnl=== 1216dnl===-----------------------------------------------------------------------=== 1217 1218dnl Handle 32-bit linux systems running a 64-bit kernel. 1219dnl This has to come after section 4 because it invokes the compiler. 1220if test "$llvm_cv_os_type" = "Linux" -a "$llvm_cv_target_arch" = "x86_64" ; then 1221 AC_IS_LINUX_MIXED 1222 if test "$llvm_cv_linux_mixed" = "yes"; then 1223 llvm_cv_target_arch="x86" 1224 ARCH="x86" 1225 fi 1226fi 1227 1228dnl Check, whether __dso_handle is present 1229AC_CHECK_FUNCS([__dso_handle]) 1230 1231dnl See if the llvm-gcc executable can compile to LLVM assembly 1232AC_CACHE_CHECK([whether llvm-gcc is sane],[llvm_cv_llvmgcc_sanity], 1233[llvm_cv_llvmgcc_sanity="no" 1234if test -x "$LLVMGCC" ; then 1235 cp /dev/null conftest.c 1236 "$LLVMGCC" -emit-llvm -S -o - conftest.c | \ 1237 grep 'target datalayout =' > /dev/null 2>&1 1238 if test $? -eq 0 ; then 1239 llvm_cv_llvmgcc_sanity="yes" 1240 fi 1241 rm conftest.c 1242fi]) 1243 1244dnl Since we have a sane llvm-gcc, identify it and its sub-tools 1245if test "$llvm_cv_llvmgcc_sanity" = "yes" ; then 1246 AC_MSG_CHECKING([llvm-gcc component support]) 1247 llvmcc1path=`"$LLVMGCC" --print-prog-name=cc1` 1248 AC_SUBST(LLVMCC1,$llvmcc1path) 1249 llvmcc1pluspath=`"$LLVMGCC" --print-prog-name=cc1plus` 1250 AC_SUBST(LLVMCC1PLUS,$llvmcc1pluspath) 1251 llvmgccdir=`echo "$llvmcc1path" | sed 's,/libexec/.*,,'` 1252 AC_SUBST(LLVMGCCDIR,$llvmgccdir) 1253 llvmgcclibexec=`echo "$llvmcc1path" | sed 's,/cc1,,'` 1254 AC_SUBST(LLVMGCCLIBEXEC,$llvmgcclibexec) 1255 llvmgccversion=[`"$LLVMGCC" -dumpversion 2>&1 | sed 's/^\([0-9.]*\).*/\1/'`] 1256 llvmgccmajvers=[`echo $llvmgccversion | sed 's/^\([0-9]\).*/\1/'`] 1257 AC_SUBST(LLVMGCC_VERSION,$llvmgccversion) 1258 AC_SUBST(LLVMGCC_MAJVERS,$llvmgccmajvers) 1259 llvmgcclangs=[`"$LLVMGCC" -v --help 2>&1 | grep '^Configured with:' | sed 's/^.*--enable-languages=\([^ ]*\).*/\1/'`] 1260 AC_SUBST(LLVMGCC_LANGS,$llvmgcclangs) 1261 AC_MSG_RESULT([ok]) 1262fi 1263 1264dnl Propagate the shared library extension that the libltdl checks did to 1265dnl the Makefiles so we can use it there too 1266AC_SUBST(SHLIBEXT,$libltdl_cv_shlibext) 1267 1268# Translate the various configuration directories and other basic 1269# information into substitutions that will end up in Makefile.config.in 1270# that these configured values can be used by the makefiles 1271if test "${prefix}" = "NONE" ; then 1272 prefix="/usr/local" 1273fi 1274eval LLVM_PREFIX="${prefix}"; 1275eval LLVM_BINDIR="${prefix}/bin"; 1276eval LLVM_LIBDIR="${prefix}/lib"; 1277eval LLVM_DATADIR="${prefix}/share/llvm"; 1278eval LLVM_DOCSDIR="${prefix}/docs/llvm"; 1279eval LLVM_ETCDIR="${prefix}/etc/llvm"; 1280eval LLVM_INCLUDEDIR="${prefix}/include"; 1281eval LLVM_INFODIR="${prefix}/info"; 1282eval LLVM_MANDIR="${prefix}/man"; 1283LLVM_CONFIGTIME=`date` 1284AC_SUBST(LLVM_PREFIX) 1285AC_SUBST(LLVM_BINDIR) 1286AC_SUBST(LLVM_LIBDIR) 1287AC_SUBST(LLVM_DATADIR) 1288AC_SUBST(LLVM_DOCSDIR) 1289AC_SUBST(LLVM_ETCDIR) 1290AC_SUBST(LLVM_INCLUDEDIR) 1291AC_SUBST(LLVM_INFODIR) 1292AC_SUBST(LLVM_MANDIR) 1293AC_SUBST(LLVM_CONFIGTIME) 1294 1295# Place the various directores into the config.h file as #defines so that we 1296# can know about the installation paths within LLVM. 1297AC_DEFINE_UNQUOTED(LLVM_PREFIX,"$LLVM_PREFIX", 1298 [Installation prefix directory]) 1299AC_DEFINE_UNQUOTED(LLVM_BINDIR, "$LLVM_BINDIR", 1300 [Installation directory for binary executables]) 1301AC_DEFINE_UNQUOTED(LLVM_LIBDIR, "$LLVM_LIBDIR", 1302 [Installation directory for libraries]) 1303AC_DEFINE_UNQUOTED(LLVM_DATADIR, "$LLVM_DATADIR", 1304 [Installation directory for data files]) 1305AC_DEFINE_UNQUOTED(LLVM_DOCSDIR, "$LLVM_DOCSDIR", 1306 [Installation directory for documentation]) 1307AC_DEFINE_UNQUOTED(LLVM_ETCDIR, "$LLVM_ETCDIR", 1308 [Installation directory for config files]) 1309AC_DEFINE_UNQUOTED(LLVM_INCLUDEDIR, "$LLVM_INCLUDEDIR", 1310 [Installation directory for include files]) 1311AC_DEFINE_UNQUOTED(LLVM_INFODIR, "$LLVM_INFODIR", 1312 [Installation directory for .info files]) 1313AC_DEFINE_UNQUOTED(LLVM_MANDIR, "$LLVM_MANDIR", 1314 [Installation directory for man pages]) 1315AC_DEFINE_UNQUOTED(LLVM_CONFIGTIME, "$LLVM_CONFIGTIME", 1316 [Time at which LLVM was configured]) 1317AC_DEFINE_UNQUOTED(LLVM_HOSTTRIPLE, "$host", 1318 [Host triple we were built on]) 1319 1320# Determine which bindings to build. 1321if test "$BINDINGS_TO_BUILD" = auto ; then 1322 BINDINGS_TO_BUILD="" 1323 if test "x$OCAMLC" != x -a "x$OCAMLDEP" != x ; then 1324 BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" 1325 fi 1326fi 1327AC_SUBST(BINDINGS_TO_BUILD,$BINDINGS_TO_BUILD) 1328 1329# This isn't really configurey, but it avoids having to repeat the list in 1330# other files. 1331AC_SUBST(ALL_BINDINGS,ocaml) 1332 1333# Do any work necessary to ensure that bindings have what they need. 1334binding_prereqs_failed=0 1335for a_binding in $BINDINGS_TO_BUILD ; do 1336 case "$a_binding" in 1337 ocaml) 1338 if test "x$OCAMLC" = x ; then 1339 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlc not found. Try configure OCAMLC=/path/to/ocamlc]) 1340 binding_prereqs_failed=1 1341 fi 1342 if test "x$OCAMLDEP" = x ; then 1343 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamldep not found. Try configure OCAMLDEP=/path/to/ocamldep]) 1344 binding_prereqs_failed=1 1345 fi 1346 if test "x$OCAMLOPT" = x ; then 1347 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlopt not found. Try configure OCAMLOPT=/path/to/ocamlopt]) 1348 dnl ocamlopt is optional! 1349 fi 1350 if test "x$with_ocaml_libdir" != xauto ; then 1351 AC_SUBST(OCAML_LIBDIR,$with_ocaml_libdir) 1352 else 1353 ocaml_stdlib="`"$OCAMLC" -where`" 1354 if test "$LLVM_PREFIX" '<' "$ocaml_stdlib" -a "$ocaml_stdlib" '<' "$LLVM_PREFIX~" 1355 then 1356 # ocaml stdlib is beneath our prefix; use stdlib 1357 AC_SUBST(OCAML_LIBDIR,$ocaml_stdlib) 1358 else 1359 # ocaml stdlib is outside our prefix; use libdir/ocaml 1360 AC_SUBST(OCAML_LIBDIR,$LLVM_LIBDIR/ocaml) 1361 fi 1362 fi 1363 ;; 1364 esac 1365done 1366if test "$binding_prereqs_failed" = 1 ; then 1367 AC_MSG_ERROR([Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.]) 1368fi 1369 1370dnl Determine whether the compiler supports -fvisibility-inlines-hidden. 1371AC_CXX_USE_VISIBILITY_INLINES_HIDDEN 1372 1373dnl Determine linker rpath flag 1374if test "$llvm_cv_link_use_r" = "yes" ; then 1375 RPATH="-Wl,-R" 1376else 1377 RPATH="-Wl,-rpath" 1378fi 1379AC_SUBST(RPATH) 1380 1381dnl Determine linker rdynamic flag 1382if test "$llvm_cv_link_use_export_dynamic" = "yes" ; then 1383 RDYNAMIC="-Wl,-export-dynamic" 1384else 1385 RDYNAMIC="" 1386fi 1387AC_SUBST(RDYNAMIC) 1388 1389dnl===-----------------------------------------------------------------------=== 1390dnl=== 1391dnl=== SECTION 10: Specify the output files and generate it 1392dnl=== 1393dnl===-----------------------------------------------------------------------=== 1394 1395dnl Configure header files 1396dnl WARNING: dnl If you add or remove any of the following config headers, then 1397dnl you MUST also update Makefile.rules so that the variable FilesToConfig 1398dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the 1399dnl files can be updated automatically when their *.in sources change. 1400AC_CONFIG_HEADERS([include/llvm/Config/config.h]) 1401AC_CONFIG_FILES([include/llvm/Config/Targets.def]) 1402AC_CONFIG_FILES([include/llvm/Config/AsmPrinters.def]) 1403AC_CONFIG_FILES([include/llvm/Config/AsmParsers.def]) 1404AC_CONFIG_FILES([include/llvm/Config/Disassemblers.def]) 1405AC_CONFIG_HEADERS([include/llvm/System/DataTypes.h]) 1406 1407dnl Configure the makefile's configuration data 1408AC_CONFIG_FILES([Makefile.config]) 1409 1410dnl Configure the RPM spec file for LLVM 1411AC_CONFIG_FILES([llvm.spec]) 1412 1413dnl Configure doxygen's configuration file 1414AC_CONFIG_FILES([docs/doxygen.cfg]) 1415 1416dnl Configure llvmc's Base plugin 1417AC_CONFIG_FILES([tools/llvmc/plugins/Base/Base.td]) 1418 1419dnl Do the first stage of configuration for llvm-config.in. 1420AC_CONFIG_FILES([tools/llvm-config/llvm-config.in]) 1421 1422dnl Do special configuration of Makefiles 1423AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"]) 1424AC_CONFIG_MAKEFILE(Makefile) 1425AC_CONFIG_MAKEFILE(Makefile.common) 1426AC_CONFIG_MAKEFILE(examples/Makefile) 1427AC_CONFIG_MAKEFILE(lib/Makefile) 1428AC_CONFIG_MAKEFILE(runtime/Makefile) 1429AC_CONFIG_MAKEFILE(test/Makefile) 1430AC_CONFIG_MAKEFILE(test/Makefile.tests) 1431AC_CONFIG_MAKEFILE(unittests/Makefile) 1432AC_CONFIG_MAKEFILE(tools/Makefile) 1433AC_CONFIG_MAKEFILE(utils/Makefile) 1434AC_CONFIG_MAKEFILE(projects/Makefile) 1435AC_CONFIG_MAKEFILE(bindings/Makefile) 1436AC_CONFIG_MAKEFILE(bindings/ocaml/Makefile.ocaml) 1437 1438dnl Finally, crank out the output 1439AC_OUTPUT 1440