Gack. Actually use the correct variable name in setting the JIT support.
[oota-llvm.git] / autoconf / configure.ac
1 dnl === configure.ac --------------------------------------------------------===
2 dnl                     The LLVM Compiler Infrastructure
3 dnl
4 dnl This file was developed by the LLVM research group and is distributed under
5 dnl the University of Illinois Open Source 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]],[[1.4]],[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-2005 U University of Illinois at Urbana-Champaign."])
39 AC_COPYRIGHT($LLVM_COPYRIGHT)
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       "Stacker")      AC_CONFIG_SUBDIRS([projects/Stacker])   ;;
72       "llvm-test")    AC_CONFIG_SUBDIRS([projects/llvm-test]) ;;
73       "llvm-reopt")   AC_CONFIG_SUBDIRS([projects/llvm-reopt]);;
74       "llvm-gcc")     AC_CONFIG_SUBDIRS([projects/llvm-gcc])  ;;
75       "Java")         AC_CONFIG_SUBDIRS([projects/Java])      ;;
76       "llvm-tv")      AC_CONFIG_SUBDIRS([projects/llvm-tv])   ;;
77       "llvm-fefw")    AC_CONFIG_SUBDIRS([projects/llvm-fefw]) ;;
78       "poolalloc")    AC_CONFIG_SUBDIRS([projects/poolalloc]) ;;
79       *)              
80         AC_MSG_WARN([Unknown project (${i}) won't be configured automatically])
81         ;;
82     esac
83   fi
84 done
85
86 dnl===-----------------------------------------------------------------------===
87 dnl===
88 dnl=== SECTION 2: Architecture, target, and host checks
89 dnl===
90 dnl===-----------------------------------------------------------------------===
91
92 dnl Check the target for which we're compiling and the host that will do the
93 dnl compilations. This will tell us which LLVM compiler will be used for 
94 dnl compiling SSA into object code. This needs to be done early because 
95 dnl following tests depend on it.
96 AC_CANONICAL_TARGET
97
98 dnl Determine the platform type and cache its value. This helps us configure
99 dnl the System library to the correct build platform.
100 AC_CACHE_CHECK([support for generic build operating system],
101                [llvm_cv_platform_type],
102 [case $build in
103   *-*-aix*) llvm_cv_platform_type="AIX" ;;
104   *-*-cygwin*) llvm_cv_platform_type="Cygwin" ;;
105   *-*-darwin*) llvm_cv_platform_type="Darwin" ;;
106   *-*-freebsd*) llvm_cv_platform_type="FreeBSD" ;;
107   *-*-interix*) llvm_cv_platform_type="Interix" ;;
108   *-*-linux*) llvm_cv_platform_type="Linux" ;;
109   *-*-solaris*) llvm_cv_platform_type="SunOS" ;;
110   *-*-win32*) llvm_cv_platform_type="Win32" ;;
111   *-*-mingw*) llvm_cv_platform_type="Win32" ;;
112   *) llvm_cv_platform_type="Unknown" ;;
113 esac])
114
115 dnl Make sure we aren't attempting to configure for an unknown system
116 if test "$llvm_cv_platform_type" = "Unknown" ; then
117   AC_MSG_ERROR([Operating system platform is unknown, configure can't continue])
118 fi
119
120 dnl Set the "OS" Makefile variable based on the platform type so the
121 dnl makefile can configure itself to specific build hosts
122 AC_SUBST(OS,$llvm_cv_platform_type)
123
124 dnl Make a link from lib/System/platform to lib/System/$llvm_cv_platform_type
125 dnl This helps the #inclusion of the system specific include files
126 dnl for the operating system abstraction library, lib/System.
127 AC_CONFIG_LINKS(lib/System/platform:lib/System/$llvm_cv_platform_type)
128
129 dnl If we are targetting a Sparc machine running Solaris, pretend that it is
130 dnl V9, since that is all that we support at the moment, and autoconf will only
131 dnl tell us we're a sparc.
132 case $target in
133   sparc*-*-solaris*)  AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
134   ;;
135 esac
136
137 dnl Determine what our target architecture is and configure accordingly.
138 dnl This will allow Makefiles to make a distinction between the hardware and
139 dnl the OS.
140 AC_CACHE_CHECK([target architecture],[llvm_cv_target_arch],
141 [case $target in
142   i*86-*)      llvm_cv_target_arch="x86" ;;
143   sparc*-*)    llvm_cv_target_arch="Sparc" ;;
144   powerpc*-*)  llvm_cv_target_arch="PowerPC" ;;
145   *)           llvm_cv_target_arch="Unknown" ;;
146 esac])
147
148 if test "$llvm_cv_target_arch" = "Unknown" ; then
149   AC_MSG_WARN([Configuring LLVM for an unknown target archicture])
150 fi
151
152 dnl Define a substitution, ARCH, for the target architecture
153 AC_SUBST(ARCH,$llvm_cv_target_arch)
154
155 dnl Check for the endianness of the target
156 AC_C_BIGENDIAN(AC_SUBST([ENDIAN],[big]),AC_SUBST([ENDIAN],[little]))
157
158 dnl===-----------------------------------------------------------------------===
159 dnl===
160 dnl=== SECTION 3: Command line arguments for the configure script.
161 dnl===
162 dnl===-----------------------------------------------------------------------===
163
164 dnl --enable-optimized : check whether they want to do an optimized build:
165 AC_ARG_ENABLE(optimized,
166               AS_HELP_STRING([--enable-optimized,Compile with optimizations enabled (default is NO)]),,enableval=no)
167 if test ${enableval} = "no" ; then
168   AC_SUBST(ENABLE_OPTIMIZED,[[]])
169 else
170   AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
171 fi
172
173 dnl --enable-jit: check whether they want to enable the jit
174 AC_ARG_ENABLE(jit,
175   AS_HELP_STRING(--enable-jit,
176                  [Enable Just In Time Compiling (default is YES)]),,
177   enableval=default)
178 if test ${enableval} = "no"
179 then
180   AC_SUBST(JIT,[[]])
181 else
182   case "$llvm_cv_target_arch" in
183     x86)     AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;;
184     Sparc)   AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;;
185     PowerPC) AC_SUBST(JIT,[[TARGET_HAS_JIT=1]]) ;;
186     *)       AC_SUBST(JIT,[[]]) ;;
187   esac
188 fi
189
190 dnl Find the LLVM GCC-based C/C++ front end
191 AC_ARG_WITH(llvmgccdir,
192   AS_HELP_STRING(--with-llvmgccdir,[Location of LLVM GCC front-end]),
193   AC_SUBST(LLVMGCCDIR,[$withval]))
194
195 dnl Provide some defaults for LLVMGCC for UIUC environments.
196 if test "x$LLVMGCCDIR" = x ; then
197   case "$llvm_cv_platform_type" in
198     Linux)
199       if test -d /home/vadve/lattner/local/x86/llvm-gcc ; then
200         AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
201       fi
202       ;;
203     SunOS)
204       if test -d /home/vadve/lattner/local/sparc/llvm-gcc ; then
205         AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
206       fi
207       ;;
208   esac
209 fi
210
211 dnl===-----------------------------------------------------------------------===
212 dnl===
213 dnl=== SECTION 4: Check for programs we need and that they are the right version
214 dnl===
215 dnl===-----------------------------------------------------------------------===
216
217 dnl Check for compilation tools
218 AC_PROG_CPP
219 AC_PROG_CC(gcc)
220 AC_PROG_CXX(g++)
221 AC_PROG_FLEX
222 AC_PROG_BISON
223
224 dnl Check for libtool and the library that has dlopen function (which must come
225 dnl before the AC_PROG_LIBTOOL check in order to enable dlopening libraries with
226 dnl libtool).
227 AC_LIBTOOL_DLOPEN
228 AC_PROG_LIBTOOL
229
230 dnl Check for the tools that the makefiles require
231 AC_CHECK_GNU_MAKE
232 AC_PROG_LN_S
233 AC_PATH_PROG(FIND, [find], [find])
234 AC_PATH_PROG(GREP, [grep], [grep])
235 AC_PATH_PROG(MKDIR,[mkdir],[mkdir])
236 AC_PATH_PROG(MV,   [mv], [mv])
237 AC_PROG_RANLIB
238 AC_PATH_PROG(RM,   [rm], [rm])
239 AC_PATH_PROG(SED,  [sed], [sed])
240 AC_PATH_PROG(TAR,  [tar],[gtar])
241
242 dnl Find the install program
243 AC_PROG_INSTALL
244
245 dnl Checks for tools we can get away with not having:
246 AC_PATH_PROG(DOT,[dot],[true dot])
247 AC_PATH_PROG(ETAGS,[etags],[true etags])
248
249 dnl Check for optional testing tools
250 AC_PATH_PROG(PYTHON,[python],[true python])
251 AC_PATH_PROG(QMTEST,[qmtest],[true qmtest])
252 AC_PATH_PROG(RUNTEST,[runtest],[true runtest])
253
254 dnl Determine if the linker supports the -R option.
255 AC_LINK_USE_R
256
257 dnl Check if we know how to tell etags we are using C++:
258 etags_version=`$ETAGS --version 2>&1`
259 case "$etags_version" in
260         *[Ee]xuberant*) ETAGSFLAGS="--language-force=c++" ;;
261         *GNU\ Emacs*) ETAGSFLAGS="-l c++" ;;
262         *) ETAGSFLAGS="" ;;
263 esac
264 AC_SUBST(ETAGSFLAGS,$ETAGSFLAGS)
265
266 AC_MSG_CHECKING([tool compatibility])
267
268 dnl Ensure that compilation tools are GCC; we use GCC specific extensions
269 if test "$GCC" != "yes"
270 then
271   AC_MSG_ERROR([gcc required but not found])
272 fi
273 dnl Ensure that compilation tools are GCC; we use GCC specific extensions
274 if test "$GXX" != "yes"
275 then
276   AC_MSG_ERROR([g++ required but not found])
277 fi
278
279 dnl Verify that GCC is version 3.0 or higher
280 gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
281 if test "$gccmajor" -lt "3"
282 then
283   AC_MSG_ERROR([gcc 3.x required, but you have a lower version])
284 fi
285
286 dnl Check for GNU Make.  We use its extensions, so don't build without it
287 if test -z "$llvm_cv_gnu_make_command"
288 then
289   AC_MSG_ERROR([GNU Make required but not found])
290 fi
291
292 dnl Tool compatibility is okay if we make it here.
293 AC_MSG_RESULT([ok])
294
295 dnl Generate warnings for things not found but not strictly needed
296 if test "$PYTHON" = "false" ; then
297   AC_MSG_WARN([Python is required for the test suite, but it was not found])
298 fi
299 if test "$QMTEST" = "false" ; then
300   AC_MSG_WARN([QMTest is required for the test suite, but it was not found])
301 fi
302 if test "$RUNTEST" = "false" ; then
303   AC_MSG_WARN([runtest (Deja-Gnu) is required for the test sute, but it was not found])
304 fi
305 pyversion=`$PYTHON -V 2>&1 | cut -d\  -f2`
306 pymajor=`echo $pyversion | cut -d. -f1`
307 pyminor=`echo $pyversion | cut -d. -f2`
308 if test "$pymajor" -ge "2" ; then
309   if test "$pymajor" -eq "2" ; then
310     if test "$pyminor" -lt "2" ; then
311       AC_MSG_WARN([QMTest requires Python 2.2 or later])
312     fi
313   fi
314 else
315   AC_MSG_WARN([QMTest requires Python 2.2 or later])
316 fi
317
318 AC_MSG_RESULT([])
319
320 dnl===-----------------------------------------------------------------------===
321 dnl===
322 dnl=== SECTION 5: Check for libraries
323 dnl===
324 dnl===-----------------------------------------------------------------------===
325
326 dnl libelf is for sparc only; we can ignore it if we don't have it
327 AC_CHECK_LIB(elf, elf_begin)
328
329 dnl Check for bzip2 and zlib compression libraries needed for archive 
330 dnl and bytecode compression.
331 AC_CHECK_LIB(z,gzopen,[zlib_found=1],[zlib_found=0])
332 if test $zlib_found -eq 1; then
333   AC_DEFINE([HAVE_ZLIB],[1],
334             [Define if zlib library is available on this platform.])
335   AC_SUBST([HAVE_ZLIB],[1])
336 else
337   AC_SUBST([HAVE_ZLIB],[0])
338 fi
339 AC_CHECK_LIB(bz2,BZ2_bzCompressInit,[bzip2_found=1],[bzip2_found=0])
340 if test $bzip2_found -eq 1 ; then
341   AC_DEFINE([HAVE_BZIP2],[1],
342             [Define if bzip2 library is available on this platform.])
343   AC_SUBST([HAVE_BZIP2],[1])
344 else
345   AC_SUBST([HAVE_BZIP2],[0])
346 fi
347
348 dnl lt_dlopen may be required for plugin support.
349 AC_SEARCH_LIBS(lt_dlopen,ltdl,AC_DEFINE([HAVE_LT_DLOPEN],[1],
350               [Define if lt_dlopen() is available on this platform]),
351               AC_MSG_WARN([lt_dlopen() not found - plugin support might 
352                            not be available]))
353
354 dnl dlopen() is required for plugin support.
355 AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],
356                [Define if dlopen() is available on this platform.]),
357                AC_MSG_WARN([dlopen() not found - disabling plugin support]))
358
359 dnl mallinfo is optional; the code can compile (minus features) without it
360 AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],
361                [Define if mallinfo() is available on this platform.]))
362
363 dnl pthread locking functions are optional - but llvm will not be thread-safe
364 dnl without locks.
365 AC_SEARCH_LIBS(pthread_mutex_lock,pthread,
366                AC_DEFINE([HAVE_PTHREAD_MUTEX_LOCK],[1],
367                          [Have pthread_mutex_lock]))
368
369 dnl===-----------------------------------------------------------------------===
370 dnl===
371 dnl=== SECTION 6: Check for header files
372 dnl===
373 dnl===-----------------------------------------------------------------------===
374
375 dnl We don't check for ancient stuff or things that are guaranteed to be there
376 dnl by the C++ standard. We always use the <cfoo> versions of <foo.h> C headers.
377 AC_HEADER_STDC
378
379 dnl However, we do need some system specific header files. Generally we're
380 dnl looking for POSIX headers.
381 AC_HEADER_SYS_WAIT
382 AC_CHECK_HEADERS([sys/time.h sys/mman.h sys/resource.h sys/time.h sys/types.h])
383 AC_CHECK_HEADERS([bzlib.h dlfcn.h execinfo.h fcntl.h limits.h link.h ltdl.h])
384 AC_CHECK_HEADERS([malloc.h unistd.h windows.h zlib.h])
385 AC_HEADER_TIME
386 AC_HEADER_MMAP_ANONYMOUS
387
388 dnl Check for things that need to be included in public headers, and so
389 dnl for which we may not have access to a HAVE_* preprocessor #define.
390 dnl (primarily used in DataTypes.h)
391 AC_CHECK_HEADERS([inttypes.h stdint.h])
392
393 dnl===-----------------------------------------------------------------------===
394 dnl===
395 dnl=== SECTION 7: Check for types and structures
396 dnl===
397 dnl===-----------------------------------------------------------------------===
398
399 AC_TYPE_PID_T
400 AC_TYPE_SIZE_T
401 AC_TYPE_SIGNAL
402 AC_STRUCT_TM
403 AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
404 AC_CHECK_TYPES([uint64_t],,
405          AC_CHECK_TYPES([u_int64_t],,
406          AC_MSG_ERROR([Type uint64_t or u_int64_t required but not found])))
407
408 dnl===-----------------------------------------------------------------------===
409 dnl===
410 dnl=== SECTION 8: Check for specific functions needed
411 dnl===
412 dnl===-----------------------------------------------------------------------===
413
414 AC_CHECK_FUNCS([backtrace getcwd gettimeofday isatty getrusage mkstemp]) 
415 AC_CHECK_FUNCS([strdup strtoq strtoll])
416 AC_C_PRINTF_A
417 AC_FUNC_ALLOCA
418 AC_FUNC_RAND48
419
420 dnl Check for variations in the Standard C++ library and STL. These macros are
421 dnl provided by LLVM in the autoconf/m4 directory.
422 AC_CXX_HAVE_HASH_MAP
423 AC_CXX_HAVE_HASH_SET
424 AC_CXX_HAVE_STD_ITERATOR
425 AC_CXX_HAVE_BI_ITERATOR
426 AC_CXX_HAVE_FWD_ITERATOR
427 AC_FUNC_ISNAN
428 AC_FUNC_ISINF
429
430 dnl Check for mmap and mprotect support. We need both to do the JIT and for
431 dnl bytecode loading, etc.
432 AC_FUNC_MMAP
433 AC_FUNC_MMAP_FILE
434 AC_CHECK_FUNC(mprotect,,
435               AC_MSG_ERROR([Function mprotect() required but not found]))
436
437 if test "$ac_cv_func_mmap_fixed_mapped" = "no"
438 then
439   AC_MSG_WARN([mmap() required but not found])
440 fi
441 if test "$ac_cv_func_mmap_file" = "no"
442 then
443   AC_MSG_WARN([mmap() of files required but not found])
444 fi
445
446 dnl===-----------------------------------------------------------------------===
447 dnl===
448 dnl=== SECTION 9: Additional checks, variables, etc.
449 dnl===
450 dnl===-----------------------------------------------------------------------===
451
452 dnl Figure out if there's an executable llvm-gcc in the llvmgccdir.
453 AC_CACHE_CHECK([for llvm-gcc],[llvm_cv_llvmgcc],
454 [llvm_cv_llvmgcc='llvmgcc_not_found'
455 if test -d "$LLVMGCCDIR" ; then
456   if test -x "$LLVMGCCDIR/bin/gcc" ; then
457     llvm_cv_llvmgcc="$LLVMGCCDIR/bin/gcc"
458   fi
459 fi])
460
461 dnl See if the llvmgcc executable can compile to LLVM assembly
462 AC_CACHE_CHECK([whether llvm-gcc is sane],[llvm_cv_llvmgcc_sanity],
463 [llvm_cv_llvmgcc_sanity="no"
464 if test -x "$llvm_cv_llvmgcc" ; then
465   cp /dev/null conftest.c
466   "$llvm_cv_llvmgcc" -S -o - conftest.c | grep implementation > /dev/null 2>&1
467   if test $? -eq 0 ; then
468     llvm_cv_llvmgcc_sanity="yes"
469   fi
470   rm conftest.c
471 fi])
472
473 dnl Since we have a sane llvmgcc, identify it and its sub-tools 
474 if test "$llvm_cv_llvmgcc_sanity" = "yes" ; then
475   AC_SUBST(LLVMGCC,"$llvm_cv_llvmgcc")
476   llvmcc1path=`"$llvm_cv_llvmgcc" --print-prog-name=cc1`
477   AC_SUBST(LLVMCC1,$llvmcc1path)
478   llvmcc1pluspath=`"$llvm_cv_llvmgcc" --print-prog-name=cc1plus`
479   AC_SUBST(LLVMCC1PLUS,$llvmcc1pluspath)
480 fi
481
482 dnl Get libtool's idea of what the shared library suffix is.
483 dnl (This is a hack; it relies on undocumented behavior.)
484 AC_MSG_CHECKING([for shared library suffix])
485 eval "SHLIBEXT=$shrext_cmds"
486 AC_MSG_RESULT($SHLIBEXT)
487 dnl Propagate it to the Makefiles and config.h (for gccld & bugpoint).
488 AC_SUBST(SHLIBEXT,$SHLIBEXT)
489 AC_DEFINE_UNQUOTED(SHLIBEXT,"$SHLIBEXT",
490                    [Extension that shared libraries have, e.g., ".so".])
491
492 # Translate the various configuration directories and other basic
493 # information into substitutions that will end up in Makefile.config.in 
494 # that these configured values can be used by the makefiles
495 eval LLVM_PREFIX="${prefix}";
496 eval LLVM_BINDIR="${prefix}/bin";
497 eval LLVM_LIBDIR="${prefix}/lib";
498 eval LLVM_DATADIR="${prefix}/data";
499 eval LLVM_DOCSDIR="${prefix}/docs";
500 eval LLVM_ETCDIR="${prefix}/etc";
501 eval LLVM_INCLUDEDIR="${prefix}/include";
502 eval LLVM_INFODIR="${prefix}/info";
503 eval LLVM_MANDIR="${prefix}/man";
504 LLVM_CONFIGTIME=`date`
505 AC_SUBST(LLVM_PREFIX)
506 AC_SUBST(LLVM_BINDIR)
507 AC_SUBST(LLVM_LIBDIR)
508 AC_SUBST(LLVM_DATADIR)
509 AC_SUBST(LLVM_DOCSDIR)
510 AC_SUBST(LLVM_ETCDIR)
511 AC_SUBST(LLVM_INCLUDEDIR)
512 AC_SUBST(LLVM_INFODIR)
513 AC_SUBST(LLVM_MANDIR)
514 AC_SUBST(LLVM_CONFIGTIME)
515
516 # Place the various directores into the config.h file as #defines so that we
517 # can know about the installation paths within LLVM.
518 AC_DEFINE_UNQUOTED(LLVM_PREFIX,"$LLVM_PREFIX", 
519                    [Installation prefix directory])
520 AC_DEFINE_UNQUOTED(LLVM_BINDIR, "$LLVM_BINDIR", 
521                    [Installation directory for binary executables])
522 AC_DEFINE_UNQUOTED(LLVM_LIBDIR, "$LLVM_LIBDIR", 
523                    [Installation directory for libraries])
524 AC_DEFINE_UNQUOTED(LLVM_DATADIR, "$LLVM_DATADIR", 
525                    [Installation directory for data files])
526 AC_DEFINE_UNQUOTED(LLVM_DATADIR, "$LLVM_DOCSDIR", 
527                    [Installation directory for documentation])
528 AC_DEFINE_UNQUOTED(LLVM_ETCDIR, "$LLVM_ETCDIR", 
529                    [Installation directory for config files])
530 AC_DEFINE_UNQUOTED(LLVM_INCLUDEDIR, "$LLVM_INCLUDEDIR", 
531                    [Installation directory for include files])
532 AC_DEFINE_UNQUOTED(LLVM_INFODIR, "$LLVM_INFODIR", 
533                    [Installation directory for .info files])
534 AC_DEFINE_UNQUOTED(LLVM_MANDIR, "$LLVM_MANDIR", 
535                    [Installation directory for man pages])
536 AC_DEFINE_UNQUOTED(LLVM_CONFIGTIME, "$LLVM_CONFIGTIME", 
537                    [Time at which LLVM was configured])
538
539 dnl===-----------------------------------------------------------------------===
540 dnl===
541 dnl=== SECTION 10: Specify the output files and generate it
542 dnl===
543 dnl===-----------------------------------------------------------------------===
544
545 dnl Configure header files
546 AC_CONFIG_HEADERS(include/llvm/Config/config.h)
547
548 AC_CONFIG_HEADERS([include/llvm/Support/DataTypes.h])
549 AC_CONFIG_HEADERS([include/llvm/ADT/hash_map])
550 AC_CONFIG_HEADERS([include/llvm/ADT/hash_set])
551 AC_CONFIG_HEADERS([include/llvm/Support/ThreadSupport.h])
552 AC_CONFIG_HEADERS([include/llvm/ADT/iterator])
553
554 dnl Configure the makefile's configuration data
555 AC_CONFIG_FILES([Makefile.config])
556
557 dnl Configure llvmc's configuration files
558 AC_CONFIG_FILES([tools/llvmc/st tools/llvmc/cpp tools/llvmc/ll tools/llvmc/c])
559
560 dnl Do special configuration of Makefiles
561 AC_CONFIG_MAKEFILE(Makefile)
562 AC_CONFIG_MAKEFILE(Makefile.common)
563 AC_CONFIG_MAKEFILE(examples/Makefile)
564 AC_CONFIG_MAKEFILE(lib/Makefile)
565 AC_CONFIG_MAKEFILE(runtime/Makefile)
566 AC_CONFIG_MAKEFILE(test/Makefile)
567 AC_CONFIG_MAKEFILE(test/Makefile.tests)
568 AC_CONFIG_MAKEFILE(test/QMTest/llvm.py)
569 AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py)
570 AC_CONFIG_MAKEFILE(tools/Makefile)
571 AC_CONFIG_MAKEFILE(tools/Makefile.JIT)
572 AC_CONFIG_MAKEFILE(utils/Makefile)
573 AC_CONFIG_MAKEFILE(projects/Makefile)
574
575 dnl Finally, crank out the output
576 AC_OUTPUT
577
578 dnl Warn if we don't have a compression library
579 if test $bzip2_found -ne 1 ; then
580  if test $zlib_found -ne 1 ; then
581   AC_MSG_WARN([*** Neither zlib nor bzip2 compression libraries were found.])
582   AC_MSG_WARN([*** Bytecode archives will not support compression!])
583   AC_MSG_WARN([*** To correct, install the libraries and and re-run configure.])
584  fi
585 fi
586
587 dnl Warn loudly if llvm-gcc was not obviously working
588 if test "$llvm_cv_llvmgcc_sanity" = "no" ; then
589  AC_MSG_WARN([***** llvm C/C++ front end was not found, or does not])
590  AC_MSG_WARN([***** appear to be working.])
591  AC_MSG_WARN([***** ])
592  AC_MSG_WARN([***** Please check configure's --with-llvmgccdir option.])
593  AC_MSG_WARN([***** Runtime libraries (in llvm/runtime) will not be built,])
594  AC_MSG_WARN([***** but you should be able to build the llvm tools.])
595 fi