blob: 5909ac7adb0b28d3a8a10bef72ac4b8084936dde [file] [log] [blame]
John Criswell4ea390d2003-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
23dnl Configure a header file
24AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2d533082003-09-06 14:46:19 +000025AC_CONFIG_MAKEFILE(Makefile)
26AC_CONFIG_MAKEFILE(Makefile.common)
27AC_CONFIG_MAKEFILE(Makefile.rules)
28AC_CONFIG_MAKEFILE(lib/Makefile)
29AC_CONFIG_MAKEFILE(lib/Analysis/Makefile)
30AC_CONFIG_MAKEFILE(lib/Analysis/DataStructure/Makefile)
31AC_CONFIG_MAKEFILE(lib/Analysis/IPA/Makefile)
32AC_CONFIG_MAKEFILE(lib/Analysis/LiveVar/Makefile)
33AC_CONFIG_MAKEFILE(lib/AsmParser/Makefile)
34AC_CONFIG_MAKEFILE(lib/Bytecode/Makefile)
35AC_CONFIG_MAKEFILE(lib/Bytecode/Reader/Makefile)
36AC_CONFIG_MAKEFILE(lib/Bytecode/Writer/Makefile)
37AC_CONFIG_MAKEFILE(lib/CWriter/Makefile)
38AC_CONFIG_MAKEFILE(lib/CodeGen/Makefile)
39AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSched/Makefile)
40AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSelection/Makefile)
41AC_CONFIG_MAKEFILE(lib/CodeGen/ModuloScheduling/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000042AC_CONFIG_MAKEFILE(lib/CodeGen/RegAlloc/Makefile)
43AC_CONFIG_MAKEFILE(lib/CodeGen/SelectionDAG/Makefile)
44AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Makefile)
45AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Interpreter/Makefile)
46AC_CONFIG_MAKEFILE(lib/ExecutionEngine/JIT/Makefile)
47AC_CONFIG_MAKEFILE(lib/Support/Makefile)
48AC_CONFIG_MAKEFILE(lib/Target/Makefile)
49AC_CONFIG_MAKEFILE(lib/Target/Sparc/Makefile)
50AC_CONFIG_MAKEFILE(lib/Target/X86/Makefile)
51AC_CONFIG_MAKEFILE(lib/Transforms/Makefile)
52AC_CONFIG_MAKEFILE(lib/Transforms/Hello/Makefile)
53AC_CONFIG_MAKEFILE(lib/Transforms/IPO/Makefile)
54AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/Makefile)
55AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/ProfilePaths/Makefile)
56AC_CONFIG_MAKEFILE(lib/Transforms/Scalar/Makefile)
57AC_CONFIG_MAKEFILE(lib/Transforms/Utils/Makefile)
58AC_CONFIG_MAKEFILE(lib/VMCore/Makefile)
59AC_CONFIG_MAKEFILE(runtime/Makefile)
60AC_CONFIG_MAKEFILE(runtime/GCCLibraries/Makefile)
61AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile)
62AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000063AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
64AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libexception/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000065AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile)
66AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
67AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
68AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libmalloc/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000069AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000070AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000071AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
72AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000073AC_CONFIG_MAKEFILE(runtime/libdummy/Makefile)
74AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile)
75AC_CONFIG_MAKEFILE(test/Makefile)
76AC_CONFIG_MAKEFILE(test/Makefile.tests)
77AC_CONFIG_MAKEFILE(test/Programs/Makefile)
78AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
79AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
80AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report)
81AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
82AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
83AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
84AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
85AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
86AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
87AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
88AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
89AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
90AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
91AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
92AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
93AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
94AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
95AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
96AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
97AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
98AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
99AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
100AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
101AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
102AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
103AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
104AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
105AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
106AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
107AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
108AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
109AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
110AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
111AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
112AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
113AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Burg/Makefile)
114AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Fhourstones/Makefile)
115AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/Makefile)
116AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/01-qbsort/Makefile)
117AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/03-testtrie/Makefile)
118AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/04-bisect/Makefile)
119AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/05-eks/Makefile)
120AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/08-main/Makefile)
121AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/09-vor/Makefile)
122AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/12-IOtest/Makefile)
123AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/15-trie/Makefile)
124AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/17-bintr/Makefile)
125AC_CONFIG_MAKEFILE(test/Programs/MultiSource/McCat/18-imp/Makefile)
126AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/Makefile)
127AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/bh/Makefile)
128AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/bisort/Makefile)
129AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/em3d/Makefile)
130AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/health/Makefile)
131AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/mst/Makefile)
132AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/perimeter/Makefile)
133AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/power/Makefile)
134AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/treeadd/Makefile)
135AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/tsp/Makefile)
136AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Olden/voronoi/Makefile)
137AC_CONFIG_MAKEFILE(test/Programs/MultiSource/OptimizerEval/Makefile)
138AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/Makefile)
139AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/anagram/Makefile)
140AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/bc/Makefile)
141AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/ft/Makefile)
142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/ks/Makefile)
143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Ptrdist/yacr2/Makefile)
144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/aha/Makefile)
145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/llubenchmark/Makefile)
146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/sgefa/Makefile)
147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/sim/Makefile)
148AC_CONFIG_MAKEFILE(test/Programs/NoSource/Makefile)
149AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
150AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
151AC_CONFIG_MAKEFILE(test/Programs/NoSource/Moria-5.5.2/Makefile)
152AC_CONFIG_MAKEFILE(test/Programs/NoSource/Povray31/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000153AC_CONFIG_MAKEFILE(test/Programs/NoSource/m4/Makefile)
154AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
155AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswellffaaf3b2003-09-10 18:38:44 +0000156AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
159AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
160AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
161AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000162AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000163AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
164AC_CONFIG_MAKEFILE(tools/Makefile)
165AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
166AC_CONFIG_MAKEFILE(tools/as/Makefile)
167AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
168AC_CONFIG_MAKEFILE(tools/dis/Makefile)
169AC_CONFIG_MAKEFILE(tools/extract/Makefile)
170AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
171AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
172AC_CONFIG_MAKEFILE(tools/link/Makefile)
173AC_CONFIG_MAKEFILE(tools/llc/Makefile)
174AC_CONFIG_MAKEFILE(tools/lli/Makefile)
175AC_CONFIG_MAKEFILE(tools/opt/Makefile)
176AC_CONFIG_MAKEFILE(tools/llee/Makefile)
177AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
178AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
179AC_CONFIG_MAKEFILE(utils/Makefile)
180AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
181AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
182AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
183AC_CONFIG_MAKEFILE(www/docs/Makefile)
184AC_CONFIG_MAKEFILE(projects/Makefile)
185AC_CONFIG_MAKEFILE(projects/sample/Makefile)
186AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
187AC_CONFIG_MAKEFILE(projects/sample/Makefile.config)
188AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
189AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
190AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
191AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
192AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
193AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
194AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
195AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell4ea390d2003-07-22 19:13:20 +0000196
197dnl **************************************************************************
198dnl * Determine which system we are building on
199dnl **************************************************************************
200
201dnl Check the install program (needs to be done before canonical stuff)
202AC_PROG_INSTALL
203
204dnl Check which host for which we're compiling. This will tell us which LLVM
205dnl compiler will be used for compiling SSA into object code.
206AC_CANONICAL_TARGET
207
208dnl
209dnl Now, for some of our own magic:
210dnl We will use the build machine information to set some variables.
211dnl
212case $build in
213 *i*86*) AC_SUBST(OS,[Linux])
John Criswell4ea390d2003-07-22 19:13:20 +0000214 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
215 ;;
216
217 *sparc*) AC_SUBST(OS,[SunOS])
218 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
219 ;;
220
221 *) AC_SUBST(OS,[Unknown])
222 ;;
223esac
224
225dnl
226dnl If we are targetting a Sparc machine running Solaris, pretend that it is
227dnl V9, since that is all that we support at the moment, and autoconf will only
228dnl tell us we're a sparc.
229dnl
230case $target in
231 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
232 ;;
233esac
234
235dnl
236dnl Determine what our target architecture is and configure accordingly.
237dnl This will allow Makefiles to make a distinction between the hardware and
238dnl the OS.
239dnl
240case $target in
241 *i*86*) AC_SUBST(ARCH,[x86])
242 ;;
243 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
244 ;;
245esac
246
247dnl **************************************************************************
248dnl * Check for programs.
249dnl **************************************************************************
250
251dnl Check for compilation tools
252AC_PROG_CXX
253AC_PROG_CC(gcc)
254AC_PROG_CPP
255
256dnl Ensure that compilation tools are GCC; we use GCC specific extensions
257if test "$GCC" != "yes"
258then
259 AC_MSG_ERROR([gcc required but not found])
260fi
261
262if test "$GXX" != "yes"
263then
264 AC_MSG_ERROR([g++ required but not found])
265fi
266
John Criswellde00db22003-08-25 16:49:54 +0000267dnl Verify that GCC is version 3.0 or higher
268gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
269if test "$gccmajor" -lt "3"
270then
271 AC_MSG_ERROR([gcc 3.x required])
272fi
273
John Criswell4ea390d2003-07-22 19:13:20 +0000274dnl Check for GNU Make. We use its extensions to, so don't build without it
275CHECK_GNU_MAKE
276if test -z "$_cv_gnu_make_command"
277then
278 AC_MSG_ERROR([GNU Make required but not found])
279fi
280
281dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
282AC_PROG_FLEX
283AC_PROG_BISON
284
285dnl Check for libtool
286AC_PROG_LIBTOOL
287
288dnl Check for our special programs
John Criswellde00db22003-08-25 16:49:54 +0000289AC_PATH_PROG(RPWD,[pwd])
John Criswell4ea390d2003-07-22 19:13:20 +0000290AC_PATH_PROG(AR,[ar])
291AC_PATH_PROG(SED,[sed])
292AC_PATH_PROG(RM,[rm])
293AC_PATH_PROG(ECHO,[echo])
294AC_PATH_PROG(MKDIR,[mkdir])
295AC_PATH_PROG(DATE,[date])
296AC_PATH_PROG(MV,[mv])
297AC_PATH_PROG(DOT,[dot])
298AC_PATH_PROG(ETAGS,[etags])
299AC_PATH_PROG(PURIFY,[purify])
John Criswellde00db22003-08-25 16:49:54 +0000300AC_PATH_PROG(PYTHON,[python])
301AC_PATH_PROG(QMTEST,[qmtest])
302
303dnl Verify that the version of python available is high enough for qmtest
304pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
305pymajor=`echo $pyversion | cut -d. -f1`
306pyminor=`echo $pyversion | cut -d. -f2`
307
308if test "$pymajor" -ge "2"
309then
310 if test "$pymajor" -eq "2"
311 then
312 if test "$pyminor" -lt "2"
313 then
314 AC_MSG_ERROR([Python 2.2 or greater required])
315 fi
316 fi
317else
318 AC_MSG_ERROR([Python 2.2 or greater required])
319fi
John Criswell4ea390d2003-07-22 19:13:20 +0000320
321dnl Verify that the source directory is valid
322AC_CONFIG_SRCDIR(["Makefile.config.in"])
323
324dnl **************************************************************************
325dnl * Check for libraries.
326dnl **************************************************************************
327
328dnl libelf is for sparc only; we can ignore it if we don't have it
329AC_CHECK_LIB(elf, elf_begin)
330
331dnl dlopen() is required. If we don't find it, quit.
332AC_SEARCH_LIBS(dlopen,dl,,AC_MSG_ERROR([dlopen() required but not found]))
333
334dnl mallinfo is optional; the code can compile (minus features) without it
335AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
336
337dnl
338dnl The math libraries are used by the test code, but not by the actual LLVM
339dnl code.
340dnl
341dnl AC_CHECK_LIB(m, cos)
342
343dnl **************************************************************************
344dnl * Checks for header files.
345dnl * Chances are, if the standard C or POSIX type header files are missing,
346dnl * then LLVM just isn't going to compile. However, it is possible that
347dnl * the necessary functions/macros will be included from other
348dnl * (non-standard and non-obvious) header files.
349dnl *
350dnl * So, we'll be gracious, give it a chance, and try to go on without
351dnl * them.
352dnl **************************************************************************
353AC_HEADER_STDC
354AC_HEADER_SYS_WAIT
355
356dnl Check for ANSI C/POSIX header files
357AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
358
359dnl Check for system specific header files
360AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h)
361
362dnl Check for header files associated with dlopen and friends
363AC_CHECK_HEADERS(dlfcn.h link.h)
364
365dnl **************************************************************************
366dnl * Checks for typedefs, structures, and compiler characteristics.
367dnl **************************************************************************
368
369dnl Check for const and inline keywords
370AC_C_CONST
371AC_C_INLINE
372
373dnl Check for machine endian-ness
374AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
375
376dnl Check for types
377AC_TYPE_PID_T
378AC_TYPE_SIZE_T
379AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
380AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
381AC_HEADER_TIME
382AC_STRUCT_TM
383
384dnl Check for C++ extensions
385AC_CXX_HAVE_EXT_HASH_MAP
386AC_CXX_HAVE_EXT_HASH_SET
387AC_CXX_HAVE_EXT_SLIST
388AC_CXX_HAVE_STD_ITERATOR
389AC_CXX_HAVE_BI_ITERATOR
390AC_CXX_HAVE_FWD_ITERATOR
391
392dnl **************************************************************************
393dnl * Checks for library functions.
394dnl **************************************************************************
395AC_FUNC_ALLOCA
396AC_PROG_GCC_TRADITIONAL
397AC_FUNC_MEMCMP
398AC_FUNC_MMAP
399AC_FUNC_MMAP_FILE
400if test ${ac_cv_func_mmap_file} = "no"
401then
402 AC_MSG_ERROR([mmap() of files required but not found])
403fi
404AC_HEADER_MMAP_ANONYMOUS
405AC_TYPE_SIGNAL
406AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol)
407
408dnl
409dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
410dnl MAP_FIXED is only needed for Sparc
411dnl MAP_ANON is used for Sparc and BSD
412dnl Everyone should have MAP_PRIVATE
413dnl
414
415dnl Check for certain functions (even if we've already found them) so that we
416dnl can quit with an error if they are unavailable.
417dnl
418dnl As the code is made more portable (i.e. less reliant on these functions,
419dnl these checks should go away.
420AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
421AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
422
423dnl **************************************************************************
424dnl * Enable various compile-time options
425dnl **************************************************************************
John Criswell79a8f092003-07-22 20:59:52 +0000426
427dnl Purify Option
428AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
429if test ${enableval} = "no"
430then
431 AC_SUBST(ENABLE_PURIFY,[[]])
432else
433 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
434fi
435
436dnl Optimized Option
437AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
438if test ${enableval} = "no"
439then
440 AC_SUBST(ENABLE_OPTIMIZED,[[]])
441else
442 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
443fi
444
445dnl Spec Benchmarks
446AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
447if test ${enableval} = "no"
448then
449 AC_SUBST(USE_SPEC,[[]])
450else
451 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
452fi
453
454dnl Precompiled Bytecode Option
455AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
456if test ${enableval} = "no"
457then
458 AC_SUBST(UPB,[[]])
459else
460 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
461fi
462
463
464dnl LLC Diff Option
465AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
466if test ${enableval} = "no"
467then
468 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
469else
470 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
471fi
472
473dnl JIT Option
John Criswellc78022e2003-07-29 19:11:58 +0000474AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
John Criswell79a8f092003-07-22 20:59:52 +0000475
476if test ${enableval} = "no"
477then
478 AC_SUBST(JIT,[[]])
479else
John Criswellc78022e2003-07-29 19:11:58 +0000480 case $target in
481 *i*86*)
482 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
483 ;;
484 *sparc*)
485 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
486 ;;
487 *)
488 AC_SUBST(JIT,[[]])
489 ;;
490 esac
John Criswell79a8f092003-07-22 20:59:52 +0000491fi
John Criswell4ea390d2003-07-22 19:13:20 +0000492
493dnl **************************************************************************
494dnl * Set the location of various third-party software packages
495dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000496
497dnl Location of SPEC benchmarks
John Criswell4ea390d2003-07-22 19:13:20 +0000498AC_ARG_WITH(spec,AC_HELP_STRING([--with-spec],[Location of SPEC benchmarks]),AC_SUBST(SPEC_ROOT,[$withval]),AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec]))
John Criswellc78022e2003-07-29 19:11:58 +0000499
500dnl Location of the LLVM C front end
John Criswell4ea390d2003-07-22 19:13:20 +0000501AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))
John Criswellc78022e2003-07-29 19:11:58 +0000502
503dnl Location of the bytecode repository
John Criswell4ea390d2003-07-22 19:13:20 +0000504AC_ARG_WITH(bcrepos,AC_HELP_STRING([--with-bcrepos],[Location of Bytecode Repository]),AC_SUBST(BCR,[$withval]),AC_SUBST(BCR,[/home/vadve/lattner/LLVMPrograms]))
John Criswellc78022e2003-07-29 19:11:58 +0000505
506dnl Location of PAPI
Chris Lattner1b9ddd52003-08-14 18:59:53 +0000507AC_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 Criswellc78022e2003-07-29 19:11:58 +0000508
509dnl Location of the purify program
John Criswell4ea390d2003-07-22 19:13:20 +0000510AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
511
John Criswellc78022e2003-07-29 19:11:58 +0000512dnl **************************************************************************
John Criswellde00db22003-08-25 16:49:54 +0000513dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
514dnl **************************************************************************
515
516dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000517dnl * Create the output files
518dnl **************************************************************************
John Criswell4ea390d2003-07-22 19:13:20 +0000519AC_OUTPUT(Makefile.config)