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