blob: 27047478551292206c413ca758fc365cee55ef15 [file] [log] [blame]
John Criswell7a3334d2003-07-22 19:13:20 +00001dnl Autoconf requirements
2dnl AC_INIT(package, version, bug-report-address)
3dnl information on the package
4dnl checks for programs
5dnl checks for libraries
6dnl checks for header files
7dnl checks for types
8dnl checks for structures
9dnl checks for compiler characteristics
10dnl checks for library functions
11dnl checks for system services
12dnl AC_CONFIG_FILES([file...])
13dnl AC_OUTPUT
14
15dnl **************************************************************************
16dnl * Initialize
17dnl **************************************************************************
18AC_INIT([[[LLVM]]],[[[1.0]]],[llvmbugs@cs.uiuc.edu])
19
20dnl Place all of the extra autoconf files into the config subdirectory
21AC_CONFIG_AUX_DIR([autoconf])
22
John Criswell22107a72003-09-15 17:04:06 +000023dnl Quit if the source directory has already been configured.
John Criswellf6778b62003-09-15 17:19:42 +000024dnl NOTE: This relies upon undocumented autoconf behavior.
25if test ${srcdir} != "."
John Criswell22107a72003-09-15 17:04:06 +000026then
John Criswellf6778b62003-09-15 17:19:42 +000027 if test -f ${srcdir}/include/Config/config.h
28 then
29 AC_MSG_ERROR([Already configured in ${srcdir}])
30 fi
John Criswell22107a72003-09-15 17:04:06 +000031fi
32
John Criswell297baed2003-11-25 20:36:46 +000033dnl
34dnl Configure all of the projects present in our source tree.
35dnl
36for i in `ls ${srcdir}/projects`
37do
38 if test ${i} != "CVS"
39 then
40 if test -d ${srcdir}/projects/${i}
41 then
42 AC_CONFIG_SUBDIRS(projects/${i})
43 fi
44 fi
45done
John Criswellee7ebdc2003-09-30 16:31:48 +000046
John Criswell7a3334d2003-07-22 19:13:20 +000047dnl Configure a header file
48AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2970d522003-09-06 14:46:19 +000049AC_CONFIG_MAKEFILE(Makefile)
50AC_CONFIG_MAKEFILE(Makefile.common)
John Criswell2970d522003-09-06 14:46:19 +000051AC_CONFIG_MAKEFILE(lib/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000052AC_CONFIG_MAKEFILE(runtime/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000053AC_CONFIG_MAKEFILE(test/Makefile)
54AC_CONFIG_MAKEFILE(test/Makefile.tests)
John Criswelle078b432003-10-07 21:13:47 +000055AC_CONFIG_MAKEFILE(test/QMTest/llvm.py)
56AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py)
John Criswell2970d522003-09-06 14:46:19 +000057AC_CONFIG_MAKEFILE(test/Programs/Makefile)
58AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
59AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
60AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report)
61AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
62AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
63AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
64AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
65AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
66AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
67AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
68AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
69AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
70AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
71AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
72AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
73AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
74AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
John Criswell7e0a65d2003-09-11 18:04:00 +000075AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2970d522003-09-06 14:46:19 +000076AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
77AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
Misha Brukman77a8be82003-11-12 22:16:23 +000078AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/analyzer/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000079AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/distray/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000080AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/distray/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000081AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/fourinarow/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000082AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/fourinarow/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000083AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/mason/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000084AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/mason/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000085AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/neural/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000086AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/neural/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000087AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pcompress2/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000088AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pcompress2/test.in)
Misha Brukmandc6863a2003-11-12 19:39:10 +000089AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pifft/Makefile)
Misha Brukman77a8be82003-11-12 22:16:23 +000090AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/FreeBench/pifft/test.in)
John Criswell2970d522003-09-06 14:46:19 +000091AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
92AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswell2970d522003-09-06 14:46:19 +000093AC_CONFIG_MAKEFILE(tools/Makefile)
Chris Lattner672edbc2003-10-06 02:09:25 +000094AC_CONFIG_MAKEFILE(utils/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000095AC_CONFIG_MAKEFILE(projects/Makefile)
John Criswell7a3334d2003-07-22 19:13:20 +000096
97dnl **************************************************************************
98dnl * Determine which system we are building on
99dnl **************************************************************************
100
101dnl Check the install program (needs to be done before canonical stuff)
102AC_PROG_INSTALL
103
104dnl Check which host for which we're compiling. This will tell us which LLVM
105dnl compiler will be used for compiling SSA into object code.
106AC_CANONICAL_TARGET
107
Brian Gaeke7027ed82003-11-17 00:30:48 +0000108dnl Set the "OS" Makefile variable based on the system we are building on.
John Criswell7a3334d2003-07-22 19:13:20 +0000109dnl We will use the build machine information to set some variables.
John Criswell7a3334d2003-07-22 19:13:20 +0000110case $build in
Brian Gaeke7027ed82003-11-17 00:30:48 +0000111 *-*-linux*)
112 AC_SUBST(OS,[Linux])
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000113 if test -d /home/vadve/lattner/local/x86/llvm-gcc
114 then
115 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
116 fi
John Criswell7a3334d2003-07-22 19:13:20 +0000117 ;;
118
Brian Gaeke7027ed82003-11-17 00:30:48 +0000119 *-*-solaris*)
120 AC_SUBST(OS,[SunOS])
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000121 if test -d /home/vadve/lattner/local/sparc/llvm-gcc
122 then
123 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
124 fi
John Criswell7a3334d2003-07-22 19:13:20 +0000125 ;;
126
Brian Gaeke7027ed82003-11-17 00:30:48 +0000127 *-*-darwin*)
128 AC_SUBST(OS,[Darwin])
129 ;;
130
John Criswell7a3334d2003-07-22 19:13:20 +0000131 *) AC_SUBST(OS,[Unknown])
132 ;;
133esac
134
John Criswell7a3334d2003-07-22 19:13:20 +0000135dnl If we are targetting a Sparc machine running Solaris, pretend that it is
136dnl V9, since that is all that we support at the moment, and autoconf will only
137dnl tell us we're a sparc.
John Criswell7a3334d2003-07-22 19:13:20 +0000138case $target in
Brian Gaeke7027ed82003-11-17 00:30:48 +0000139 sparc*-*-solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
140 ;;
John Criswell7a3334d2003-07-22 19:13:20 +0000141esac
142
John Criswell7a3334d2003-07-22 19:13:20 +0000143dnl Determine what our target architecture is and configure accordingly.
144dnl This will allow Makefiles to make a distinction between the hardware and
145dnl the OS.
John Criswell7a3334d2003-07-22 19:13:20 +0000146case $target in
Brian Gaeke7027ed82003-11-17 00:30:48 +0000147 i*86-*) AC_SUBST(ARCH,[x86])
John Criswell7a3334d2003-07-22 19:13:20 +0000148 ;;
Brian Gaeke7027ed82003-11-17 00:30:48 +0000149 sparc*-*) AC_SUBST(ARCH,[Sparc])
150 ;;
151 powerpc*-*) AC_SUBST(ARCH,[PowerPC])
152 ;;
153 *) AC_SUBST(ARCH,[Unknown])
John Criswell7a3334d2003-07-22 19:13:20 +0000154 ;;
155esac
156
157dnl **************************************************************************
158dnl * Check for programs.
159dnl **************************************************************************
160
161dnl Check for compilation tools
162AC_PROG_CXX
163AC_PROG_CC(gcc)
164AC_PROG_CPP
165
166dnl Ensure that compilation tools are GCC; we use GCC specific extensions
167if test "$GCC" != "yes"
168then
169 AC_MSG_ERROR([gcc required but not found])
170fi
171
172if test "$GXX" != "yes"
173then
174 AC_MSG_ERROR([g++ required but not found])
175fi
176
John Criswell6a47a972003-08-25 16:49:54 +0000177dnl Verify that GCC is version 3.0 or higher
178gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
179if test "$gccmajor" -lt "3"
180then
181 AC_MSG_ERROR([gcc 3.x required])
182fi
183
John Criswell7a3334d2003-07-22 19:13:20 +0000184dnl Check for GNU Make. We use its extensions to, so don't build without it
185CHECK_GNU_MAKE
186if test -z "$_cv_gnu_make_command"
187then
188 AC_MSG_ERROR([GNU Make required but not found])
189fi
190
191dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
192AC_PROG_FLEX
193AC_PROG_BISON
194
195dnl Check for libtool
196AC_PROG_LIBTOOL
197
198dnl Check for our special programs
John Criswell31494482003-09-23 15:28:52 +0000199AC_PATH_PROG(RPWD,[pwd],[false])
200if test ${RPWD} = "false"
201then
202 AC_MSG_ERROR([pwd required but not found])
203fi
204
205AC_PATH_PROG(AR,[ar],[false])
206if test ${AR} = "false"
207then
208 AC_MSG_ERROR([ar required but not found])
209fi
210
211AC_PATH_PROG(SED,[sed],[false])
212if test ${SED} = "false"
213then
214 AC_MSG_ERROR([sed required but not found])
215fi
216
217AC_PATH_PROG(RM,[rm],[false])
218if test ${RM} = "false"
219then
220 AC_MSG_ERROR([rm required but not found])
221fi
222
223AC_PATH_PROG(ECHO,[echo],[false])
224if test ${ECHO} = "false"
225then
226 AC_MSG_ERROR([echo required but not found])
227fi
228
229AC_PATH_PROG(MKDIR,[mkdir],[false])
230if test ${MKDIR} = "false"
231then
232 AC_MSG_ERROR([mkdir required but not found])
233fi
234
235AC_PATH_PROG(DATE,[date],[false])
236if test ${DATE} = "false"
237then
238 AC_MSG_ERROR([date required but not found])
239fi
240
241AC_PATH_PROG(MV,[mv],[false])
242if test ${MV} = "false"
243then
244 AC_MSG_ERROR([mv required but not found])
245fi
246
247AC_PATH_PROG(DOT,[dot],[false])
248
249AC_PATH_PROG(ETAGS,[etags],[false])
250
John Criswell31494482003-09-23 15:28:52 +0000251AC_PATH_PROG(PYTHON,[python],[false])
252if test ${PYTHON} = "false"
253then
John Criswell8d5d13d2003-09-23 20:46:32 +0000254 AC_MSG_WARN([python required but not found])
John Criswell31494482003-09-23 15:28:52 +0000255fi
256
257AC_PATH_PROG(QMTEST,[qmtest],[false])
258if test ${QMTEST} = "false"
259then
John Criswell8d5d13d2003-09-23 20:46:32 +0000260 AC_MSG_WARN([qmtest required but not found])
John Criswell31494482003-09-23 15:28:52 +0000261fi
John Criswell6a47a972003-08-25 16:49:54 +0000262
263dnl Verify that the version of python available is high enough for qmtest
264pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
265pymajor=`echo $pyversion | cut -d. -f1`
266pyminor=`echo $pyversion | cut -d. -f2`
267
268if test "$pymajor" -ge "2"
269then
270 if test "$pymajor" -eq "2"
271 then
272 if test "$pyminor" -lt "2"
273 then
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000274 AC_MSG_WARN([Python 2.2 or greater required for qmtest])
John Criswell6a47a972003-08-25 16:49:54 +0000275 fi
276 fi
277else
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000278 AC_MSG_WARN([Python 2.2 or greater required for qmtest])
John Criswell6a47a972003-08-25 16:49:54 +0000279fi
John Criswell7a3334d2003-07-22 19:13:20 +0000280
281dnl Verify that the source directory is valid
282AC_CONFIG_SRCDIR(["Makefile.config.in"])
283
284dnl **************************************************************************
285dnl * Check for libraries.
286dnl **************************************************************************
287
288dnl libelf is for sparc only; we can ignore it if we don't have it
289AC_CHECK_LIB(elf, elf_begin)
290
Brian Gaeke25f2a372003-10-07 05:03:36 +0000291dnl dlopen() is required for plugin support.
Brian Gaeked7a702d2003-10-08 21:44:07 +0000292AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],[Define if dlopen() is available on this platform.]),AC_MSG_WARN([dlopen() not found - disabling plugin support]))
John Criswell7a3334d2003-07-22 19:13:20 +0000293
294dnl mallinfo is optional; the code can compile (minus features) without it
Brian Gaeked7a702d2003-10-08 21:44:07 +0000295AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],[Define if mallinfo() is available on this platform.]))
John Criswell7a3334d2003-07-22 19:13:20 +0000296
297dnl
298dnl The math libraries are used by the test code, but not by the actual LLVM
299dnl code.
300dnl
301dnl AC_CHECK_LIB(m, cos)
302
303dnl **************************************************************************
304dnl * Checks for header files.
305dnl * Chances are, if the standard C or POSIX type header files are missing,
306dnl * then LLVM just isn't going to compile. However, it is possible that
307dnl * the necessary functions/macros will be included from other
308dnl * (non-standard and non-obvious) header files.
309dnl *
310dnl * So, we'll be gracious, give it a chance, and try to go on without
311dnl * them.
312dnl **************************************************************************
313AC_HEADER_STDC
314AC_HEADER_SYS_WAIT
315
316dnl Check for ANSI C/POSIX header files
317AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
318
319dnl Check for system specific header files
Brian Gaeke663fba32003-10-22 17:52:56 +0000320AC_CHECK_HEADERS(malloc.h sys/mman.h sys/resource.h)
John Criswell7a3334d2003-07-22 19:13:20 +0000321
322dnl Check for header files associated with dlopen and friends
323AC_CHECK_HEADERS(dlfcn.h link.h)
324
325dnl **************************************************************************
326dnl * Checks for typedefs, structures, and compiler characteristics.
327dnl **************************************************************************
328
329dnl Check for const and inline keywords
330AC_C_CONST
331AC_C_INLINE
332
333dnl Check for machine endian-ness
Brian Gaeked7a702d2003-10-08 21:44:07 +0000334AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG],[],[Define if the machine is Big-Endian]),AC_DEFINE([ENDIAN_LITTLE],[],[Define if the machine is Little-Endian]))
John Criswell7a3334d2003-07-22 19:13:20 +0000335
336dnl Check for types
337AC_TYPE_PID_T
338AC_TYPE_SIZE_T
339AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
340AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
341AC_HEADER_TIME
342AC_STRUCT_TM
343
John Criswell42859552003-10-13 16:22:01 +0000344dnl Check for various C features
345AC_C_PRINTF_A
346
John Criswell7a3334d2003-07-22 19:13:20 +0000347dnl Check for C++ extensions
Brian Gaekeb6218572003-11-10 03:06:09 +0000348AC_CXX_HAVE_HASH_MAP
349AC_CXX_HAVE_HASH_SET
John Criswell7a3334d2003-07-22 19:13:20 +0000350AC_CXX_HAVE_EXT_SLIST
351AC_CXX_HAVE_STD_ITERATOR
352AC_CXX_HAVE_BI_ITERATOR
353AC_CXX_HAVE_FWD_ITERATOR
354
355dnl **************************************************************************
356dnl * Checks for library functions.
357dnl **************************************************************************
358AC_FUNC_ALLOCA
359AC_PROG_GCC_TRADITIONAL
360AC_FUNC_MEMCMP
361AC_FUNC_MMAP
362AC_FUNC_MMAP_FILE
363if test ${ac_cv_func_mmap_file} = "no"
364then
365 AC_MSG_ERROR([mmap() of files required but not found])
366fi
367AC_HEADER_MMAP_ANONYMOUS
368AC_TYPE_SIGNAL
Brian Gaekedb363a02003-10-10 17:04:43 +0000369AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
John Criswell7a3334d2003-07-22 19:13:20 +0000370
371dnl
372dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
373dnl MAP_FIXED is only needed for Sparc
374dnl MAP_ANON is used for Sparc and BSD
375dnl Everyone should have MAP_PRIVATE
376dnl
377
378dnl Check for certain functions (even if we've already found them) so that we
379dnl can quit with an error if they are unavailable.
380dnl
381dnl As the code is made more portable (i.e. less reliant on these functions,
382dnl these checks should go away.
383AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
384AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
385
John Criswell6ee0ed52003-11-17 19:46:02 +0000386dnl Determine if the linker supports the -R option.
387AC_LINK_USE_R()
388
John Criswell7a3334d2003-07-22 19:13:20 +0000389dnl **************************************************************************
390dnl * Enable various compile-time options
391dnl **************************************************************************
John Criswell5ec24d82003-07-22 20:59:52 +0000392
393dnl Purify Option
394AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
395if test ${enableval} = "no"
396then
397 AC_SUBST(ENABLE_PURIFY,[[]])
398else
399 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
400fi
401
402dnl Optimized Option
403AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
404if test ${enableval} = "no"
405then
406 AC_SUBST(ENABLE_OPTIMIZED,[[]])
407else
408 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
409fi
410
411dnl Spec Benchmarks
John Criswellabd3f802003-10-07 21:57:39 +0000412AC_ARG_ENABLE(spec2000,AC_HELP_STRING([--enable-spec],[Compile SPEC 2000 benchmarks (default is NO)]),,enableval=no)
John Criswell5ec24d82003-07-22 20:59:52 +0000413if test ${enableval} = "no"
414then
John Criswellabd3f802003-10-07 21:57:39 +0000415 if test -d /home/vadve/shared/benchmarks/speccpu2000/benchspec
416 then
417 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
418 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
419 else
420 AC_SUBST(USE_SPEC,[[]])
421 AC_SUBST(SPEC_ROOT,[])
422 fi
John Criswell5ec24d82003-07-22 20:59:52 +0000423else
John Criswellabd3f802003-10-07 21:57:39 +0000424 if test ${enableval} = ""
425 then
426 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
427 else
428 AC_SUBST(SPEC_ROOT,[${enableval}])
429 fi
John Criswell5ec24d82003-07-22 20:59:52 +0000430 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
431fi
432
433dnl Precompiled Bytecode Option
434AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
435if test ${enableval} = "no"
436then
437 AC_SUBST(UPB,[[]])
438else
439 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
440fi
441
442
443dnl LLC Diff Option
444AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
445if test ${enableval} = "no"
446then
447 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
448else
449 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
450fi
451
452dnl JIT Option
John Criswell4f376922003-07-29 19:11:58 +0000453AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
John Criswell5ec24d82003-07-22 20:59:52 +0000454
455if test ${enableval} = "no"
456then
457 AC_SUBST(JIT,[[]])
458else
John Criswell4f376922003-07-29 19:11:58 +0000459 case $target in
460 *i*86*)
461 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
462 ;;
463 *sparc*)
464 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
465 ;;
466 *)
467 AC_SUBST(JIT,[[]])
468 ;;
469 esac
John Criswell5ec24d82003-07-22 20:59:52 +0000470fi
John Criswell7a3334d2003-07-22 19:13:20 +0000471
472dnl **************************************************************************
473dnl * Set the location of various third-party software packages
474dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000475
John Criswell4f376922003-07-29 19:11:58 +0000476dnl Location of the LLVM C front end
John Criswell7a3334d2003-07-22 19:13:20 +0000477AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))
John Criswell4f376922003-07-29 19:11:58 +0000478
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000479AC_MSG_CHECKING([for llvm-gcc])
480LLVM_GCC_CHECK=no
481if test -d "$LLVMGCCDIR"
482then
483 if test -x "$LLVMGCCDIR/bin/gcc"
484 then
485 LLVM_GCC_CHECK="$LLVMGCCDIR/bin/gcc"
486 fi
487fi
488llvmgccwarn=no
489AC_MSG_RESULT($LLVM_GCC_CHECK)
490if test "$LLVM_GCC_CHECK" = "no"
491then
492 llvmgccwarn=yes
493fi
494
495AC_MSG_CHECKING([whether llvm-gcc is sane])
496LLVM_GCC_SANE=no
497if test -x "$LLVM_GCC_CHECK"
498then
499 cp /dev/null conftest.c
500 "$LLVM_GCC_CHECK" -S -o - conftest.c | grep implementation > /dev/null 2>&1
501 if test $? -eq 0
502 then
503 LLVM_GCC_SANE=yes
504 fi
505 rm conftest.c
506fi
507AC_MSG_RESULT($LLVM_GCC_SANE)
508if test "$LLVM_GCC_SANE" = "no"
509then
510 llvmgccwarn=yes
511fi
512
John Criswell4f376922003-07-29 19:11:58 +0000513dnl Location of the bytecode repository
John Criswell7a3334d2003-07-22 19:13:20 +0000514AC_ARG_WITH(bcrepos,AC_HELP_STRING([--with-bcrepos],[Location of Bytecode Repository]),AC_SUBST(BCR,[$withval]),AC_SUBST(BCR,[/home/vadve/lattner/LLVMPrograms]))
John Criswell4f376922003-07-29 19:11:58 +0000515
516dnl Location of PAPI
Chris Lattner00645502003-08-14 18:59:53 +0000517AC_ARG_WITH(papi,AC_HELP_STRING([--with-papi],[Location of PAPI]),AC_SUBST(PAPIDIR,[$withval]),AC_SUBST(PAPIDIR,[/home/vadve/shared/Sparc/papi-2.3.4.1]))
John Criswell4f376922003-07-29 19:11:58 +0000518
519dnl Location of the purify program
John Criswell7a3334d2003-07-22 19:13:20 +0000520AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
521
John Criswell4f376922003-07-29 19:11:58 +0000522dnl **************************************************************************
John Criswell6a47a972003-08-25 16:49:54 +0000523dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
524dnl **************************************************************************
525
526dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000527dnl * Create the output files
528dnl **************************************************************************
John Criswell7a3334d2003-07-22 19:13:20 +0000529AC_OUTPUT(Makefile.config)
Brian Gaekedfbd3d42003-11-16 18:37:46 +0000530
531if test $llvmgccwarn = yes
532then
533 AC_MSG_WARN([***** llvm C/C++ front end was not found, or does not])
534 AC_MSG_WARN([***** appear to be working.])
535 AC_MSG_WARN([***** ])
536 AC_MSG_WARN([***** Please check configure's --with-llvmgccdir option.])
537 AC_MSG_WARN([***** Runtime libraries (in llvm/runtime) will not be built,])
538 AC_MSG_WARN([***** but you should be able to build the llvm tools.])
539fi