configure.ac revision 0ed86fe04323c7b207c1892b5162c58b74739a73
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.3svn]],[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-2008 University of Illinois at Urbana-Champaign."]) 39AC_COPYRIGHT([Copyright (c) 2003-2008 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) AC_CONFIG_SUBDIRS([projects/llvm-test]) ;; 74 llvm-reopt) AC_CONFIG_SUBDIRS([projects/llvm-reopt]);; 75 llvm-gcc) AC_CONFIG_SUBDIRS([projects/llvm-gcc]) ;; 76 llvm-java) AC_CONFIG_SUBDIRS([projects/llvm-java]) ;; 77 llvm-tv) AC_CONFIG_SUBDIRS([projects/llvm-tv]) ;; 78 llvm-poolalloc) AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) ;; 79 poolalloc) AC_CONFIG_SUBDIRS([projects/poolalloc]) ;; 80 llvm-kernel) AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;; 81 *) 82 AC_MSG_WARN([Unknown project (${i}) won't be configured automatically]) 83 ;; 84 esac 85 fi 86done 87 88dnl===-----------------------------------------------------------------------=== 89dnl=== 90dnl=== SECTION 2: Architecture, target, and host checks 91dnl=== 92dnl===-----------------------------------------------------------------------=== 93 94dnl Check the target for which we're compiling and the host that will do the 95dnl compilations. This will tell us which LLVM compiler will be used for 96dnl compiling SSA into object code. This needs to be done early because 97dnl following tests depend on it. 98AC_CANONICAL_TARGET 99 100dnl Determine the platform type and cache its value. This helps us configure 101dnl the System library to the correct build platform. 102AC_CACHE_CHECK([type of operating system we're going to host on], 103 [llvm_cv_os_type], 104[case $host in 105 *-*-aix*) 106 llvm_cv_link_all_option="-Wl,--whole-archive" 107 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 108 llvm_cv_os_type="AIX" 109 llvm_cv_platform_type="Unix" ;; 110 *-*-irix*) 111 llvm_cv_link_all_option="-Wl,--whole-archive" 112 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 113 llvm_cv_os_type="IRIX" 114 llvm_cv_platform_type="Unix" ;; 115 *-*-cygwin*) 116 llvm_cv_link_all_option="-Wl,--whole-archive" 117 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 118 llvm_cv_os_type="Cygwin" 119 llvm_cv_platform_type="Unix" ;; 120 *-*-darwin*) 121 llvm_cv_link_all_option="-Wl,-all_load" 122 llvm_cv_no_link_all_option="-Wl,-noall_load" 123 llvm_cv_os_type="Darwin" 124 llvm_cv_platform_type="Unix" ;; 125 *-*-freebsd*) 126 llvm_cv_link_all_option="-Wl,--whole-archive" 127 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 128 llvm_cv_os_type="FreeBSD" 129 llvm_cv_platform_type="Unix" ;; 130 *-*-openbsd*) 131 llvm_cv_link_all_option="-Wl,--whole-archive" 132 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 133 llvm_cv_os_type="OpenBSD" 134 llvm_cv_platform_type="Unix" ;; 135 *-*-netbsd*) 136 llvm_cv_link_all_option="-Wl,--whole-archive" 137 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 138 llvm_cv_os_type="NetBSD" 139 llvm_cv_platform_type="Unix" ;; 140 *-*-hpux*) 141 llvm_cv_link_all_option="-Wl,--whole-archive" 142 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 143 llvm_cv_os_type="HP-UX" 144 llvm_cv_platform_type="Unix" ;; 145 *-*-interix*) 146 llvm_cv_link_all_option="-Wl,--whole-archive" 147 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 148 llvm_cv_os_type="Interix" 149 llvm_cv_platform_type="Unix" ;; 150 *-*-linux*) 151 llvm_cv_link_all_option="-Wl,--whole-archive" 152 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 153 llvm_cv_os_type="Linux" 154 llvm_cv_platform_type="Unix" ;; 155 *-*-solaris*) 156 llvm_cv_link_all_option="-Wl,-z,allextract" 157 llvm_cv_no_link_all_option="-Wl,-z,defaultextract" 158 llvm_cv_os_type="SunOS" 159 llvm_cv_platform_type="Unix" ;; 160 *-*-win32*) 161 llvm_cv_link_all_option="-Wl,--whole-archive" 162 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 163 llvm_cv_os_type="Win32" 164 llvm_cv_platform_type="Win32" ;; 165 *-*-mingw*) 166 llvm_cv_link_all_option="-Wl,--whole-archive" 167 llvm_cv_no_link_all_option="-Wl,--no-whole-archive" 168 llvm_cv_os_type="MingW" 169 llvm_cv_platform_type="Win32" ;; 170 *) 171 llvm_cv_link_all_option="" 172 llvm_cv_no_link_all_option="" 173 llvm_cv_os_type="Unknown" 174 llvm_cv_platform_type="Unknown" ;; 175esac]) 176 177dnl Make sure we aren't attempting to configure for an unknown system 178if test "$llvm_cv_os_type" = "Unknown" ; then 179 AC_MSG_ERROR([Operating system is unknown, configure can't continue]) 180fi 181 182dnl Set the "OS" Makefile variable based on the platform type so the 183dnl makefile can configure itself to specific build hosts 184AC_SUBST(OS,$llvm_cv_os_type) 185 186dnl Set the LINKALL and NOLINKALL Makefile variables based on the platform 187AC_SUBST(LINKALL,$llvm_cv_link_all_option) 188AC_SUBST(NOLINKALL,$llvm_cv_no_link_all_option) 189 190dnl Set the "LLVM_ON_*" variables based on llvm_cvs_platform_type 191dnl This is used by lib/System to determine the basic kind of implementation 192dnl to use. 193case $llvm_cv_platform_type in 194 Unix) 195 AC_DEFINE([LLVM_ON_UNIX],[1],[Define if this is Unixish platform]) 196 AC_SUBST(LLVM_ON_UNIX,[1]) 197 AC_SUBST(LLVM_ON_WIN32,[0]) 198 ;; 199 Win32) 200 AC_DEFINE([LLVM_ON_WIN32],[1],[Define if this is Win32ish platform]) 201 AC_SUBST(LLVM_ON_UNIX,[0]) 202 AC_SUBST(LLVM_ON_WIN32,[1]) 203 ;; 204esac 205 206dnl Determine what our target architecture is and configure accordingly. 207dnl This will allow Makefiles to make a distinction between the hardware and 208dnl the OS. 209AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch], 210[case $target in 211 i?86-*) llvm_cv_target_arch="x86" ;; 212 amd64-* | x86_64-*) llvm_cv_target_arch="x86_64" ;; 213 sparc*-*) llvm_cv_target_arch="Sparc" ;; 214 powerpc*-*) llvm_cv_target_arch="PowerPC" ;; 215 alpha*-*) llvm_cv_target_arch="Alpha" ;; 216 ia64-*) llvm_cv_target_arch="IA64" ;; 217 arm-*) llvm_cv_target_arch="ARM" ;; 218 mips-*) llvm_cv_target_arch="Mips" ;; 219 *) llvm_cv_target_arch="Unknown" ;; 220esac]) 221 222if test "$llvm_cv_target_arch" = "Unknown" ; then 223 AC_MSG_WARN([Configuring LLVM for an unknown target archicture]) 224fi 225 226dnl Define a substitution, ARCH, for the target architecture 227AC_SUBST(ARCH,$llvm_cv_target_arch) 228 229dnl Check for the endianness of the target 230AC_C_BIGENDIAN(AC_SUBST([ENDIAN],[big]),AC_SUBST([ENDIAN],[little])) 231 232dnl Check for build platform executable suffix if we're crosscompiling 233if test "$cross_compiling" = yes; then 234 AC_SUBST(LLVM_CROSS_COMPILING, [1]) 235 AC_BUILD_EXEEXT 236else 237 AC_SUBST(LLVM_CROSS_COMPILING, [0]) 238fi 239 240dnl Check to see if there's a "CVS" (or .svn) directory indicating that this 241dnl build is being done from a checkout. This sets up several defaults for the 242dnl command line switches. When we build with a CVS directory, we get a 243dnl debug with assertions turned on. Without, we assume a source release and we 244dnl get an optimized build without assertions. See --enable-optimized and 245dnl --enable-assertions below 246if test -d "CVS" -o -d "${srcdir}/CVS" -o -d ".svn" -o -d "${srcdir}/.svn"; then 247 cvsbuild="yes" 248 optimize="no" 249 AC_SUBST(CVSBUILD,[[CVSBUILD=1]]) 250else 251 cvsbuild="no" 252 optimize="yes" 253fi 254 255dnl===-----------------------------------------------------------------------=== 256dnl=== 257dnl=== SECTION 3: Command line arguments for the configure script. 258dnl=== 259dnl===-----------------------------------------------------------------------=== 260 261dnl --enable-optimized : check whether they want to do an optimized build: 262AC_ARG_ENABLE(optimized, AS_HELP_STRING( 263 [--enable-optimized,Compile with optimizations enabled (default is NO)]),,enableval=$optimize) 264if test ${enableval} = "no" ; then 265 AC_SUBST(ENABLE_OPTIMIZED,[[]]) 266else 267 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]]) 268fi 269 270dnl --enable-assertions : check whether they want to turn on assertions or not: 271AC_ARG_ENABLE(assertions,AS_HELP_STRING( 272 [--enable-assertions,Compile with assertion checks enabled (default is YES)]),, enableval="yes") 273if test ${enableval} = "yes" ; then 274 AC_SUBST(DISABLE_ASSERTIONS,[[]]) 275else 276 AC_SUBST(DISABLE_ASSERTIONS,[[DISABLE_ASSERTIONS=1]]) 277fi 278 279dnl --enable-expensive-checks : check whether they want to turn on expensive debug checks: 280AC_ARG_ENABLE(expensive-checks,AS_HELP_STRING( 281 [--enable-expensive-checks,Compile with expensive debug checks enabled (default is NO)]),, enableval="no") 282if test ${enableval} = "yes" ; then 283 AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[ENABLE_EXPENSIVE_CHECKS=1]]) 284 AC_SUBST(EXPENSIVE_CHECKS,[[yes]]) 285else 286 AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[]]) 287 AC_SUBST(EXPENSIVE_CHECKS,[[no]]) 288fi 289 290dnl --enable-debug-runtime : should runtime libraries have debug symbols? 291AC_ARG_ENABLE(debug-runtime, 292 AS_HELP_STRING([--enable-debug-runtime,Build runtime libs with debug symbols (default is NO)]),,enableval=no) 293if test ${enableval} = "no" ; then 294 AC_SUBST(DEBUG_RUNTIME,[[]]) 295else 296 AC_SUBST(DEBUG_RUNTIME,[[DEBUG_RUNTIME=1]]) 297fi 298 299dnl --enable-jit: check whether they want to enable the jit 300AC_ARG_ENABLE(jit, 301 AS_HELP_STRING(--enable-jit, 302 [Enable Just In Time Compiling (default is YES)]),, 303 enableval=default) 304if test ${enableval} = "no" 305then 306 AC_SUBST(JIT,[[]]) 307else 308 case "$llvm_cv_target_arch" in 309 x86) AC_SUBST(TARGET_HAS_JIT,1) ;; 310 Sparc) AC_SUBST(TARGET_HAS_JIT,0) ;; 311 PowerPC) AC_SUBST(TARGET_HAS_JIT,1) ;; 312 x86_64) AC_SUBST(TARGET_HAS_JIT,1) ;; 313 Alpha) AC_SUBST(TARGET_HAS_JIT,1) ;; 314 IA64) AC_SUBST(TARGET_HAS_JIT,0) ;; 315 ARM) AC_SUBST(TARGET_HAS_JIT,0) ;; 316 Mips) AC_SUBST(TARGET_HAS_JIT,0) ;; 317 *) AC_SUBST(TARGET_HAS_JIT,0) ;; 318 esac 319fi 320 321dnl Allow enablement of doxygen generated documentation 322AC_ARG_ENABLE(doxygen, 323 AS_HELP_STRING([--enable-doxygen], 324 [Build doxygen documentation (default is NO)]),, 325 enableval=default) 326case "$enableval" in 327 yes) AC_SUBST(ENABLE_DOXYGEN,[1]) ;; 328 no) AC_SUBST(ENABLE_DOXYGEN,[0]) ;; 329 default) AC_SUBST(ENABLE_DOXYGEN,[0]) ;; 330 *) AC_MSG_ERROR([Invalid setting for --enable-doxygen. Use "yes" or "no"]) ;; 331esac 332 333dnl Allow disablement of threads 334AC_ARG_ENABLE(threads, 335 AS_HELP_STRING([--enable-threads], 336 [Use threads if available (default is YES)]),, 337 enableval=default) 338case "$enableval" in 339 yes) AC_SUBST(ENABLE_THREADS,[1]) ;; 340 no) AC_SUBST(ENABLE_THREADS,[0]) ;; 341 default) AC_SUBST(ENABLE_THREADS,[1]) ;; 342 *) AC_MSG_ERROR([Invalid setting for --enable-threads. Use "yes" or "no"]) ;; 343esac 344AC_DEFINE_UNQUOTED([ENABLE_THREADS],$ENABLE_THREADS,[Define if threads enabled]) 345 346dnl Allow building with position independent code 347AC_ARG_ENABLE(pic, 348 AS_HELP_STRING([--enable-pic], 349 [Build LLVM with Position Independent Code (default is NO)]),, 350 enableval=default) 351case "$enableval" in 352 yes) AC_SUBST(ENABLE_PIC,[1]) ;; 353 no) AC_SUBST(ENABLE_PIC,[0]) ;; 354 default) AC_SUBST(ENABLE_PIC,[0]) ;; 355 *) AC_MSG_ERROR([Invalid setting for --enable-pic. Use "yes" or "no"]) ;; 356esac 357AC_DEFINE_UNQUOTED([ENABLE_PIC],$ENABLE_PIC, 358 [Define if position independent code is enabled]) 359 360dnl Allow specific targets to be specified for building (or not) 361TARGETS_TO_BUILD="" 362AC_ARG_ENABLE([targets],AS_HELP_STRING([--enable-targets], 363 [Build specific host targets: all,host-only,{target-name} (default=all)]),, 364 enableval=all) 365case "$enableval" in 366 all) TARGETS_TO_BUILD="X86 Sparc PowerPC Alpha IA64 ARM Mips CellSPU CBackend MSIL" ;; 367 host-only) 368 case "$llvm_cv_target_arch" in 369 x86) TARGETS_TO_BUILD="X86" ;; 370 x86_64) TARGETS_TO_BUILD="X86" ;; 371 Sparc) TARGETS_TO_BUILD="Sparc" ;; 372 PowerPC) TARGETS_TO_BUILD="PowerPC" ;; 373 Alpha) TARGETS_TO_BUILD="Alpha" ;; 374 IA64) TARGETS_TO_BUILD="IA64" ;; 375 ARM) TARGETS_TO_BUILD="ARM" ;; 376 Mips) TARGETS_TO_BUILD="Mips" ;; 377 CellSPU|SPU) TARGETS_TO_BUILD="CellSPU" ;; 378 *) AC_MSG_ERROR([Can not set target to build]) ;; 379 esac 380 ;; 381 *)for a_target in `echo $enableval|sed -e 's/,/ /g' ` ; do 382 case "$a_target" in 383 x86) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 384 x86_64) TARGETS_TO_BUILD="X86 $TARGETS_TO_BUILD" ;; 385 sparc) TARGETS_TO_BUILD="Sparc $TARGETS_TO_BUILD" ;; 386 powerpc) TARGETS_TO_BUILD="PowerPC $TARGETS_TO_BUILD" ;; 387 alpha) TARGETS_TO_BUILD="Alpha $TARGETS_TO_BUILD" ;; 388 ia64) TARGETS_TO_BUILD="IA64 $TARGETS_TO_BUILD" ;; 389 arm) TARGETS_TO_BUILD="ARM $TARGETS_TO_BUILD" ;; 390 mips) TARGETS_TO_BUILD="Mips $TARGETS_TO_BUILD" ;; 391 spu) TARGETS_TO_BUILD="CellSPU $TARGETS_TO_BUILD" ;; 392 cbe) TARGETS_TO_BUILD="CBackend $TARGETS_TO_BUILD" ;; 393 msil) TARGETS_TO_BUILD="MSIL $TARGETS_TO_BUILD" ;; 394 *) AC_MSG_ERROR([Unrecognized target $a_target]) ;; 395 esac 396 done 397 ;; 398esac 399AC_SUBST(TARGETS_TO_BUILD,$TARGETS_TO_BUILD) 400 401dnl Prevent the CBackend from using printf("%a") for floating point so older 402dnl C compilers that cannot deal with the 0x0p+0 hex floating point format 403dnl can still compile the CBE's output 404AC_ARG_ENABLE([cbe-printf-a],AS_HELP_STRING([--enable-cbe-printf-a], 405 [Enable C Backend output with hex floating point via %a (default is YES)]),, 406 enableval=default) 407case "$enableval" in 408 yes) AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;; 409 no) AC_SUBST(ENABLE_CBE_PRINTF_A,[0]) ;; 410 default) AC_SUBST(ENABLE_CBE_PRINTF_A,[1]) ;; 411 *) AC_MSG_ERROR([Invalid setting for --enable-cbe-printf-a. Use "yes" or "no"]) ;; 412esac 413AC_DEFINE_UNQUOTED([ENABLE_CBE_PRINTF_A],$ENABLE_CBE_PRINTF_A, 414 [Define if CBE is enabled for printf %a output]) 415 416dnl Allow a specific llvm-gcc/llvm-g++ pair to be used with this LLVM config. 417AC_ARG_WITH(llvmgccdir, 418 AS_HELP_STRING([--with-llvmgccdir], 419 [Specify location of llvm-gcc install dir (default searches PATH)]),, 420 withval=default) 421case "$withval" in 422 default) WITH_LLVMGCCDIR=default ;; 423 /* | [[A-Za-z]]:[[\\/]]*) WITH_LLVMGCCDIR=$withval ;; 424 *) AC_MSG_ERROR([Invalid path for --with-llvmgccdir. Provide full path]) ;; 425esac 426 427dnl Allow a specific llvm-gcc compiler to be used with this LLVM config. 428AC_ARG_WITH(llvmgcc, 429 AS_HELP_STRING([--with-llvmgcc], 430 [Specify location of llvm-gcc driver (default searches PATH)]), 431 LLVMGCC=$with_llvmgcc 432 WITH_LLVMGCCDIR="",) 433 434dnl Allow a specific llvm-g++ compiler to be used with this LLVM config. 435AC_ARG_WITH(llvmgxx, 436 AS_HELP_STRING([--with-llvmgxx], 437 [Specify location of llvm-g++ driver (default searches PATH)]), 438 LLVMGXX=$with_llvmgxx 439 WITH_LLVMGCCDIR="",) 440 441if test -n "$LLVMGCC" && test -z "$LLVMGXX"; then 442 AC_MSG_ERROR([Invalid llvm-g++. Use --with-llvmgxx when --with-llvmgcc is used]); 443fi 444 445if test -n "$LLVMGXX" && test -z "$LLVMGCC"; then 446 AC_MSG_ERROR([Invalid llvm-gcc. Use --with-llvmgcc when --with-llvmgxx is used]); 447fi 448 449dnl Specify extra build options 450AC_ARG_WITH(extra-options, 451 AS_HELP_STRING([--with-extra-options], 452 [Specify addtional options to compile LLVM with]),, 453 withval=default) 454case "$withval" in 455 default) EXTRA_OPTIONS= ;; 456 *) EXTRA_OPTIONS=$withval ;; 457esac 458AC_SUBST(EXTRA_OPTIONS,$EXTRA_OPTIONS) 459 460dnl Allow specific bindings to be specified for building (or not) 461AC_ARG_ENABLE([bindings],AS_HELP_STRING([--enable-bindings], 462 [Build specific language bindings: all,auto,none,{binding-name} (default=auto)]),, 463 enableval=default) 464BINDINGS_TO_BUILD="" 465case "$enableval" in 466 yes | default | auto) BINDINGS_TO_BUILD="auto" ;; 467 all ) BINDINGS_TO_BUILD="ocaml" ;; 468 none | no) BINDINGS_TO_BUILD="" ;; 469 *)for a_binding in `echo $enableval|sed -e 's/,/ /g' ` ; do 470 case "$a_binding" in 471 ocaml) BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" ;; 472 *) AC_MSG_ERROR([Unrecognized binding $a_binding]) ;; 473 esac 474 done 475 ;; 476esac 477 478dnl Allow the ocaml libdir to be overridden. This could go in a configure 479dnl script for bindings/ocaml/configure, except that its auto value depends on 480dnl OCAMLC, which is found here to support tests. 481AC_ARG_WITH([ocaml-libdir], 482 [AS_HELP_STRING([--with-ocaml-libdir], 483 [Specify install location for ocaml bindings (default is stdlib)])], 484 [], 485 [withval=auto]) 486case "$withval" in 487 auto) with_ocaml_libdir="$withval" ;; 488 /* | [[A-Za-z]]:[[\\/]]*) with_ocaml_libdir="$withval" ;; 489 *) AC_MSG_ERROR([Invalid path for --with-ocaml-libdir. Provide full path]) ;; 490esac 491 492dnl===-----------------------------------------------------------------------=== 493dnl=== 494dnl=== SECTION 4: Check for programs we need and that they are the right version 495dnl=== 496dnl===-----------------------------------------------------------------------=== 497 498dnl Check for compilation tools 499AC_PROG_CPP 500AC_PROG_CC(gcc) 501AC_PROG_CXX(g++) 502AC_PROG_FLEX 503AC_PROG_BISON 504 505AC_PROG_NM 506AC_SUBST(NM) 507 508dnl Check for the tools that the makefiles require 509AC_CHECK_GNU_MAKE 510AC_PROG_LN_S 511AC_PATH_PROG(CMP, [cmp], [cmp]) 512AC_PATH_PROG(CP, [cp], [cp]) 513AC_PATH_PROG(DATE, [date], [date]) 514AC_PATH_PROG(FIND, [find], [find]) 515AC_PATH_PROG(GREP, [grep], [grep]) 516AC_PATH_PROG(MKDIR,[mkdir],[mkdir]) 517AC_PATH_PROG(MV, [mv], [mv]) 518AC_PROG_RANLIB 519AC_PATH_PROG(RM, [rm], [rm]) 520AC_PATH_PROG(SED, [sed], [sed]) 521AC_PATH_PROG(TAR, [tar], [gtar]) 522AC_PATH_PROG(BINPWD,[pwd], [pwd]) 523 524dnl Looking for misc. graph plotting software 525AC_PATH_PROG(GRAPHVIZ, [Graphviz], [echo Graphviz]) 526if test "$GRAPHVIZ" != "echo Graphviz" ; then 527 AC_DEFINE([HAVE_GRAPHVIZ],[1],[Define if the Graphviz program is available]) 528 dnl If we're targeting for mingw we should emit windows paths, not msys 529 if test "$llvm_cv_os_type" = "MingW" ; then 530 GRAPHVIZ=`echo $GRAPHVIZ | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 531 fi 532 AC_DEFINE_UNQUOTED([LLVM_PATH_GRAPHVIZ],"$GRAPHVIZ${EXEEXT}", 533 [Define to path to Graphviz program if found or 'echo Graphviz' otherwise]) 534fi 535AC_PATH_PROG(DOT, [dot], [echo dot]) 536if test "$DOT" != "echo dot" ; then 537 AC_DEFINE([HAVE_DOT],[1],[Define if the dot program is available]) 538 dnl If we're targeting for mingw we should emit windows paths, not msys 539 if test "$llvm_cv_os_type" = "MingW" ; then 540 DOT=`echo $DOT | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 541 fi 542 AC_DEFINE_UNQUOTED([LLVM_PATH_DOT],"$DOT${EXEEXT}", 543 [Define to path to dot program if found or 'echo dot' otherwise]) 544fi 545AC_PATH_PROGS(GV, [gv gsview32], [echo gv]) 546if test "$GV" != "echo gv" ; then 547 AC_DEFINE([HAVE_GV],[1],[Define if the gv program is available]) 548 dnl If we're targeting for mingw we should emit windows paths, not msys 549 if test "$llvm_cv_os_type" = "MingW" ; then 550 GV=`echo $GV | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 551 fi 552 AC_DEFINE_UNQUOTED([LLVM_PATH_GV],"$GV${EXEEXT}", 553 [Define to path to gv program if found or 'echo gv' otherwise]) 554fi 555AC_PATH_PROG(DOTTY, [dotty], [echo dotty]) 556if test "$DOTTY" != "echo dotty" ; then 557 AC_DEFINE([HAVE_DOTTY],[1],[Define if the dotty program is available]) 558 dnl If we're targeting for mingw we should emit windows paths, not msys 559 if test "$llvm_cv_os_type" = "MingW" ; then 560 DOTTY=`echo $DOTTY | sed 's/^\/\([[A-Za-z]]\)\//\1:\//' ` 561 fi 562 AC_DEFINE_UNQUOTED([LLVM_PATH_DOTTY],"$DOTTY${EXEEXT}", 563 [Define to path to dotty program if found or 'echo dotty' otherwise]) 564fi 565 566dnl Look for a sufficiently recent version of Perl. 567LLVM_PROG_PERL([5.006]) 568AC_SUBST(PERL) 569if test x"$PERL" = xnone; then 570 AC_SUBST(HAVE_PERL,0) 571 AC_MSG_ERROR([perl is required but was not found, please install it]) 572else 573 AC_SUBST(HAVE_PERL,1) 574fi 575 576dnl Find the install program 577AC_PROG_INSTALL 578 579dnl Checks for documentation and testing tools that we can do without. If these 580dnl are not found then they are set to "true" which always succeeds but does 581dnl nothing. This just lets the build output show that we could have done 582dnl something if the tool was available. 583AC_PATH_PROG(BZIP2, [bzip2]) 584AC_PATH_PROG(DOXYGEN, [doxygen]) 585AC_PATH_PROG(GROFF, [groff]) 586AC_PATH_PROG(GZIP, [gzip]) 587AC_PATH_PROG(POD2HTML, [pod2html]) 588AC_PATH_PROG(POD2MAN, [pod2man]) 589AC_PATH_PROG(RUNTEST, [runtest]) 590DJ_AC_PATH_TCLSH 591AC_PATH_PROG(ZIP, [zip]) 592AC_PATH_PROGS(OCAMLC, [ocamlc.opt ocamlc]) 593AC_PATH_PROGS(OCAMLOPT, [ocamlopt.opt ocamlopt]) 594AC_PATH_PROGS(OCAMLDEP, [ocamldep.opt ocamldep]) 595 596dnl Determine if the linker supports the -R option. 597AC_LINK_USE_R 598 599dnl Check for libtool and the library that has dlopen function (which must come 600dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with 601dnl libtool). 602AC_LIBTOOL_DLOPEN 603AC_LIB_LTDL 604AC_PROG_LIBTOOL 605 606if test "$lt_cv_dlopen_self" = "yes" ; then 607 AC_DEFINE([CAN_DLOPEN_SELF],[1], 608 [Define if dlopen(0) will open the symbols of the program]) 609fi 610 611if test "$WITH_LLVMGCCDIR" = "default" ; then 612 LLVMGCC="llvm-gcc${EXEEXT}" 613 LLVMGXX="llvm-g++${EXEEXT}" 614 AC_PATH_PROG(LLVMGCC, $LLVMGCC, []) 615 AC_PATH_PROG(LLVMGXX, $LLVMGXX, []) 616else 617 if test -z "$LLVMGCC"; then 618 LLVMGCC="$WITH_LLVMGCCDIR/bin/llvm-gcc${EXEEXT}" 619 fi 620 if test -z "$LLVMGXX"; then 621 LLVMGXX="$WITH_LLVMGCCDIR/bin/llvm-g++${EXEEXT}" 622 fi 623 AC_SUBST(LLVMGCC,$LLVMGCC) 624 AC_SUBST(LLVMGXX,$LLVMGXX) 625fi 626 627AC_MSG_CHECKING([tool compatibility]) 628 629dnl Ensure that compilation tools are GCC or a GNU compatible compiler such as 630dnl ICC; we use GCC specific options in the makefiles so the compiler needs 631dnl to support those options. 632dnl "icc" emits gcc signatures 633dnl "icc -no-gcc" emits no gcc signature BUT is still compatible 634ICC=no 635IXX=no 636case $CC in 637 icc*|icpc*) 638 ICC=yes 639 IXX=yes 640 ;; 641 *) 642 ;; 643esac 644 645if test "$GCC" != "yes" && test "$ICC" != "yes" 646then 647 AC_MSG_ERROR([gcc|icc required but not found]) 648fi 649 650dnl Ensure that compilation tools are GCC; we use GCC specific extensions 651if test "$GXX" != "yes" && test "$IXX" != "yes" 652then 653 AC_MSG_ERROR([g++|icc required but not found]) 654fi 655 656dnl Verify that GCC is version 3.0 or higher 657if test "$GCC" = "yes" 658then 659 AC_COMPILE_IFELSE([[#if !defined(__GNUC__) || __GNUC__ < 3 660#error Unsupported GCC version 661#endif 662]], [], [AC_MSG_ERROR([gcc 3.x required, but you have a lower version])]) 663fi 664 665dnl Check for GNU Make. We use its extensions, so don't build without it 666if test -z "$llvm_cv_gnu_make_command" 667then 668 AC_MSG_ERROR([GNU Make required but not found]) 669fi 670 671dnl Tool compatibility is okay if we make it here. 672AC_MSG_RESULT([ok]) 673 674dnl===-----------------------------------------------------------------------=== 675dnl=== 676dnl=== SECTION 5: Check for libraries 677dnl=== 678dnl===-----------------------------------------------------------------------=== 679 680dnl libelf is for sparc only; we can ignore it if we don't have it 681AC_CHECK_LIB(elf, elf_begin) 682AC_CHECK_LIB(m,sin) 683if test "$llvm_cv_os_type" = "MingW" ; then 684 AC_CHECK_LIB(imagehlp, main) 685 AC_CHECK_LIB(psapi, main) 686fi 687 688dnl dlopen() is required for plugin support. 689AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1], 690 [Define if dlopen() is available on this platform.]), 691 AC_MSG_WARN([dlopen() not found - disabling plugin support])) 692 693dnl mallinfo is optional; the code can compile (minus features) without it 694AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1], 695 [Define if mallinfo() is available on this platform.])) 696 697dnl pthread locking functions are optional - but llvm will not be thread-safe 698dnl without locks. 699if test "$ENABLE_THREADS" -eq 1 ; then 700 AC_CHECK_LIB(pthread,pthread_mutex_init) 701 AC_SEARCH_LIBS(pthread_mutex_lock,pthread, 702 AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1], 703 [Have pthread_mutex_lock])) 704fi 705 706dnl Allow extra x86-disassembler library 707AC_ARG_WITH(udis86, 708 AS_HELP_STRING([--with-udis86=<path>], 709 [Use udis86 external x86 disassembler library]), 710 [ 711 AC_SUBST(USE_UDIS86, [1]) 712 case "$withval" in 713 /usr/lib|yes) ;; 714 *) LDFLAGS="$LDFLAGS -L${withval}" ;; 715 esac 716 AC_CHECK_LIB(udis86, ud_init, [], [ 717 echo "Error! You need to have libudis86 around." 718 exit -1 719 ]) 720 ], 721 AC_SUBST(USE_UDIS86, [0])) 722AC_DEFINE_UNQUOTED([USE_UDIS86],$USE_UDIS86, 723 [Define if use udis86 library]) 724 725dnl===-----------------------------------------------------------------------=== 726dnl=== 727dnl=== SECTION 6: Check for header files 728dnl=== 729dnl===-----------------------------------------------------------------------=== 730 731dnl First, use autoconf provided macros for specific headers that we need 732dnl We don't check for ancient stuff or things that are guaranteed to be there 733dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers. 734dnl Generally we're looking for POSIX headers. 735AC_HEADER_DIRENT 736AC_HEADER_MMAP_ANONYMOUS 737AC_HEADER_STAT 738AC_HEADER_STDC 739AC_HEADER_SYS_WAIT 740AC_HEADER_TIME 741 742AC_CHECK_HEADERS([dlfcn.h execinfo.h fcntl.h inttypes.h limits.h link.h]) 743AC_CHECK_HEADERS([malloc.h setjmp.h signal.h stdint.h unistd.h utime.h]) 744AC_CHECK_HEADERS([windows.h]) 745AC_CHECK_HEADERS([sys/mman.h sys/param.h sys/resource.h sys/time.h]) 746AC_CHECK_HEADERS([sys/types.h malloc/malloc.h mach/mach.h]) 747if test "$ENABLE_THREADS" -eq 1 ; then 748 AC_CHECK_HEADERS(pthread.h, 749 AC_SUBST(HAVE_PTHREAD, 1), 750 AC_SUBST(HAVE_PTHREAD, 0)) 751else 752 AC_SUBST(HAVE_PTHREAD, 0) 753fi 754 755dnl===-----------------------------------------------------------------------=== 756dnl=== 757dnl=== SECTION 7: Check for types and structures 758dnl=== 759dnl===-----------------------------------------------------------------------=== 760 761AC_HUGE_VAL_CHECK 762AC_TYPE_PID_T 763AC_TYPE_SIZE_T 764AC_TYPE_SIGNAL 765AC_STRUCT_TM 766AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found])) 767AC_CHECK_TYPES([uint64_t],, 768 AC_CHECK_TYPES([u_int64_t],, 769 AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found]))) 770 771dnl===-----------------------------------------------------------------------=== 772dnl=== 773dnl=== SECTION 8: Check for specific functions needed 774dnl=== 775dnl===-----------------------------------------------------------------------=== 776 777AC_CHECK_FUNCS([backtrace ceilf floorf roundf rintf nearbyintf getcwd ]) 778AC_CHECK_FUNCS([powf fmodf strtof round ]) 779AC_CHECK_FUNCS([getpagesize getrusage getrlimit setrlimit gettimeofday ]) 780AC_CHECK_FUNCS([isatty mkdtemp mkstemp ]) 781AC_CHECK_FUNCS([mktemp realpath sbrk setrlimit strdup strerror strerror_r ]) 782AC_CHECK_FUNCS([strtoll strtoq sysconf malloc_zone_statistics ]) 783AC_CHECK_FUNCS([setjmp longjmp sigsetjmp siglongjmp]) 784AC_C_PRINTF_A 785AC_FUNC_ALLOCA 786AC_FUNC_RAND48 787 788dnl Check for variations in the Standard C++ library and STL. These macros are 789dnl provided by LLVM in the autoconf/m4 directory. 790AC_CXX_HAVE_HASH_MAP 791AC_CXX_HAVE_HASH_SET 792AC_CXX_HAVE_STD_ITERATOR 793AC_CXX_HAVE_BI_ITERATOR 794AC_CXX_HAVE_FWD_ITERATOR 795AC_FUNC_ISNAN 796AC_FUNC_ISINF 797 798dnl Check for mmap support.We also need to know if /dev/zero is required to 799dnl be opened for allocating RWX memory. 800dnl Make sure we aren't attempting to configure for an unknown system 801if test "$llvm_cv_platform_type" = "Unix" ; then 802 AC_FUNC_MMAP 803 AC_FUNC_MMAP_FILE 804 AC_NEED_DEV_ZERO_FOR_MMAP 805 806 if test "$ac_cv_func_mmap_fixed_mapped" = "no" 807 then 808 AC_MSG_WARN([mmap() of a fixed address required but not supported]) 809 fi 810 if test "$ac_cv_func_mmap_file" = "no" 811 then 812 AC_MSG_WARN([mmap() of files required but not found]) 813 fi 814fi 815 816dnl===-----------------------------------------------------------------------=== 817dnl=== 818dnl=== SECTION 9: Additional checks, variables, etc. 819dnl=== 820dnl===-----------------------------------------------------------------------=== 821 822dnl Check, whether __dso_handle is present 823AC_CHECK_FUNCS([__dso_handle]) 824 825dnl See if the llvm-gcc executable can compile to LLVM assembly 826AC_CACHE_CHECK([whether llvm-gcc is sane],[llvm_cv_llvmgcc_sanity], 827[llvm_cv_llvmgcc_sanity="no" 828if test -x "$LLVMGCC" ; then 829 cp /dev/null conftest.c 830 "$LLVMGCC" -emit-llvm -S -o - conftest.c | \ 831 grep 'target datalayout =' > /dev/null 2>&1 832 if test $? -eq 0 ; then 833 llvm_cv_llvmgcc_sanity="yes" 834 fi 835 rm conftest.c 836fi]) 837 838dnl Since we have a sane llvm-gcc, identify it and its sub-tools 839if test "$llvm_cv_llvmgcc_sanity" = "yes" ; then 840 AC_MSG_CHECKING([llvm-gcc component support]) 841 llvmcc1path=`"$LLVMGCC" --print-prog-name=cc1` 842 AC_SUBST(LLVMCC1,$llvmcc1path) 843 llvmcc1pluspath=`"$LLVMGCC" --print-prog-name=cc1plus` 844 AC_SUBST(LLVMCC1PLUS,$llvmcc1pluspath) 845 llvmgccdir=`echo "$llvmcc1path" | sed 's,/libexec/.*,,'` 846 AC_SUBST(LLVMGCCDIR,$llvmgccdir) 847 llvmgcclibexec=`echo "$llvmcc1path" | sed 's,/cc1,,'` 848 AC_SUBST(LLVMGCCLIBEXEC,$llvmgcclibexec) 849 llvmgccversion=[`"$LLVMGCC" -dumpversion 2>&1 | sed 's/^\([0-9.]*\).*/\1/'`] 850 llvmgccmajvers=[`echo $llvmgccversion | sed 's/^\([0-9]\).*/\1/'`] 851 AC_SUBST(LLVMGCC_VERSION,$llvmgccversion) 852 AC_SUBST(LLVMGCC_MAJVERS,$llvmgccmajvers) 853 llvmgcclangs=[`"$LLVMGCC" -v --help 2>&1 | grep '^Configured with:' | sed 's/^.*--enable-languages=\([^ -]*\).*/\1/'`] 854 AC_SUBST(LLVMGCC_LANGS,$llvmgcclangs) 855 AC_MSG_RESULT([ok]) 856fi 857 858dnl Propagate the shared library extension that the libltdl checks did to 859dnl the Makefiles so we can use it there too 860AC_SUBST(SHLIBEXT,$libltdl_cv_shlibext) 861 862# Translate the various configuration directories and other basic 863# information into substitutions that will end up in Makefile.config.in 864# that these configured values can be used by the makefiles 865if test "${prefix}" = "NONE" ; then 866 prefix="/usr/local" 867fi 868eval LLVM_PREFIX="${prefix}"; 869eval LLVM_BINDIR="${prefix}/bin"; 870eval LLVM_LIBDIR="${prefix}/lib"; 871eval LLVM_DATADIR="${prefix}/share/llvm"; 872eval LLVM_DOCSDIR="${prefix}/docs/llvm"; 873eval LLVM_ETCDIR="${prefix}/etc/llvm"; 874eval LLVM_INCLUDEDIR="${prefix}/include"; 875eval LLVM_INFODIR="${prefix}/info"; 876eval LLVM_MANDIR="${prefix}/man"; 877LLVM_CONFIGTIME=`date` 878AC_SUBST(LLVM_PREFIX) 879AC_SUBST(LLVM_BINDIR) 880AC_SUBST(LLVM_LIBDIR) 881AC_SUBST(LLVM_DATADIR) 882AC_SUBST(LLVM_DOCSDIR) 883AC_SUBST(LLVM_ETCDIR) 884AC_SUBST(LLVM_INCLUDEDIR) 885AC_SUBST(LLVM_INFODIR) 886AC_SUBST(LLVM_MANDIR) 887AC_SUBST(LLVM_CONFIGTIME) 888 889# Place the various directores into the config.h file as #defines so that we 890# can know about the installation paths within LLVM. 891AC_DEFINE_UNQUOTED(LLVM_PREFIX,"$LLVM_PREFIX", 892 [Installation prefix directory]) 893AC_DEFINE_UNQUOTED(LLVM_BINDIR, "$LLVM_BINDIR", 894 [Installation directory for binary executables]) 895AC_DEFINE_UNQUOTED(LLVM_LIBDIR, "$LLVM_LIBDIR", 896 [Installation directory for libraries]) 897AC_DEFINE_UNQUOTED(LLVM_DATADIR, "$LLVM_DATADIR", 898 [Installation directory for data files]) 899AC_DEFINE_UNQUOTED(LLVM_DOCSDIR, "$LLVM_DOCSDIR", 900 [Installation directory for documentation]) 901AC_DEFINE_UNQUOTED(LLVM_ETCDIR, "$LLVM_ETCDIR", 902 [Installation directory for config files]) 903AC_DEFINE_UNQUOTED(LLVM_INCLUDEDIR, "$LLVM_INCLUDEDIR", 904 [Installation directory for include files]) 905AC_DEFINE_UNQUOTED(LLVM_INFODIR, "$LLVM_INFODIR", 906 [Installation directory for .info files]) 907AC_DEFINE_UNQUOTED(LLVM_MANDIR, "$LLVM_MANDIR", 908 [Installation directory for man pages]) 909AC_DEFINE_UNQUOTED(LLVM_CONFIGTIME, "$LLVM_CONFIGTIME", 910 [Time at which LLVM was configured]) 911AC_DEFINE_UNQUOTED(LLVM_HOSTTRIPLE, "$host", 912 [Host triple we were built on]) 913 914# Determine which bindings to build. 915if test "$BINDINGS_TO_BUILD" = auto ; then 916 BINDINGS_TO_BUILD="" 917 if test "x$OCAMLC" != x -a "x$OCAMLDEP" != x ; then 918 BINDINGS_TO_BUILD="ocaml $BINDINGS_TO_BUILD" 919 fi 920fi 921AC_SUBST(BINDINGS_TO_BUILD,$BINDINGS_TO_BUILD) 922 923# This isn't really configurey, but it avoids having to repeat the list in 924# other files. 925AC_SUBST(ALL_BINDINGS,ocaml) 926 927# Do any work necessary to ensure that bindings have what they need. 928binding_prereqs_failed=0 929for a_binding in $BINDINGS_TO_BUILD ; do 930 case "$a_binding" in 931 ocaml) 932 if test "x$OCAMLC" = x ; then 933 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlc not found. Try configure OCAMLC=/path/to/ocamlc]) 934 binding_prereqs_failed=1 935 fi 936 if test "x$OCAMLDEP" = x ; then 937 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamldep not found. Try configure OCAMLDEP=/path/to/ocamldep]) 938 binding_prereqs_failed=1 939 fi 940 if test "x$OCAMLOPT" = x ; then 941 AC_MSG_WARN([--enable-bindings=ocaml specified, but ocamlopt not found. Try configure OCAMLOPT=/path/to/ocamlopt]) 942 dnl ocamlopt is optional! 943 fi 944 if test "x$with_ocaml_libdir" != xauto ; then 945 AC_SUBST(OCAML_LIBDIR,$with_ocaml_libdir) 946 else 947 ocaml_stdlib="`"$OCAMLC" -where`" 948 if test "$LLVM_PREFIX" '<' "$ocaml_stdlib" -a "$ocaml_stdlib" '<' "$LLVM_PREFIX~" 949 then 950 # ocaml stdlib is beneath our prefix; use stdlib 951 AC_SUBST(OCAML_LIBDIR,$ocaml_stdlib) 952 else 953 # ocaml stdlib is outside our prefix; use libdir/ocaml 954 AC_SUBST(OCAML_LIBDIR,$LLVM_LIBDIR/ocaml) 955 fi 956 fi 957 ;; 958 esac 959done 960if test "$binding_prereqs_failed" = 1 ; then 961 AC_MSG_ERROR([Prequisites for bindings not satisfied. Fix them or use configure --disable-bindings.]) 962fi 963 964 965dnl===-----------------------------------------------------------------------=== 966dnl=== 967dnl=== SECTION 10: Specify the output files and generate it 968dnl=== 969dnl===-----------------------------------------------------------------------=== 970 971dnl Configure header files 972dnl WARNING: dnl If you add or remove any of the following config headers, then 973dnl you MUST also update Makefile.rules so that the variable FilesToConfig 974dnl contains the same list of files as AC_CONFIG_HEADERS below. This ensures the 975dnl files can be updated automatically when their *.in sources change. 976AC_CONFIG_HEADERS([include/llvm/Config/config.h]) 977AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h]) 978AC_CONFIG_HEADERS([include/llvm/ADT/hash_map]) 979AC_CONFIG_HEADERS([include/llvm/ADT/hash_set]) 980AC_CONFIG_HEADERS([include/llvm/ADT/iterator]) 981 982dnl Configure the makefile's configuration data 983AC_CONFIG_FILES([Makefile.config]) 984 985dnl Configure the RPM spec file for LLVM 986AC_CONFIG_FILES([llvm.spec]) 987 988dnl Configure doxygen's configuration file 989AC_CONFIG_FILES([docs/doxygen.cfg]) 990 991dnl Do the first stage of configuration for llvm-config.in. 992AC_CONFIG_FILES([tools/llvm-config/llvm-config.in]) 993 994dnl Do special configuration of Makefiles 995AC_CONFIG_COMMANDS([setup],,[llvm_src="${srcdir}"]) 996AC_CONFIG_MAKEFILE(Makefile) 997AC_CONFIG_MAKEFILE(Makefile.common) 998AC_CONFIG_MAKEFILE(examples/Makefile) 999AC_CONFIG_MAKEFILE(lib/Makefile) 1000AC_CONFIG_MAKEFILE(runtime/Makefile) 1001AC_CONFIG_MAKEFILE(test/Makefile) 1002AC_CONFIG_MAKEFILE(test/Makefile.tests) 1003AC_CONFIG_MAKEFILE(tools/Makefile) 1004AC_CONFIG_MAKEFILE(utils/Makefile) 1005AC_CONFIG_MAKEFILE(projects/Makefile) 1006AC_CONFIG_MAKEFILE(bindings/Makefile) 1007AC_CONFIG_MAKEFILE(bindings/ocaml/Makefile.ocaml) 1008 1009dnl Finally, crank out the output 1010AC_OUTPUT 1011