blob: a38409fc639d2e26795a2fe793d35f0a3933b770 [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)
156AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Shootout/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Stanford/Makefile)
159AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
160AC_CONFIG_MAKEFILE(tools/Makefile)
161AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
162AC_CONFIG_MAKEFILE(tools/as/Makefile)
163AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
164AC_CONFIG_MAKEFILE(tools/dis/Makefile)
165AC_CONFIG_MAKEFILE(tools/extract/Makefile)
166AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
167AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
168AC_CONFIG_MAKEFILE(tools/link/Makefile)
169AC_CONFIG_MAKEFILE(tools/llc/Makefile)
170AC_CONFIG_MAKEFILE(tools/lli/Makefile)
171AC_CONFIG_MAKEFILE(tools/opt/Makefile)
172AC_CONFIG_MAKEFILE(tools/llee/Makefile)
173AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
174AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
175AC_CONFIG_MAKEFILE(utils/Makefile)
176AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
177AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
178AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
179AC_CONFIG_MAKEFILE(www/docs/Makefile)
180AC_CONFIG_MAKEFILE(projects/Makefile)
181AC_CONFIG_MAKEFILE(projects/sample/Makefile)
182AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
183AC_CONFIG_MAKEFILE(projects/sample/Makefile.config)
184AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
185AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
186AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
187AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
188AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
189AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
190AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
191AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell4ea390d2003-07-22 19:13:20 +0000192
193dnl **************************************************************************
194dnl * Determine which system we are building on
195dnl **************************************************************************
196
197dnl Check the install program (needs to be done before canonical stuff)
198AC_PROG_INSTALL
199
200dnl Check which host for which we're compiling. This will tell us which LLVM
201dnl compiler will be used for compiling SSA into object code.
202AC_CANONICAL_TARGET
203
204dnl
205dnl Now, for some of our own magic:
206dnl We will use the build machine information to set some variables.
207dnl
208case $build in
209 *i*86*) AC_SUBST(OS,[Linux])
John Criswell4ea390d2003-07-22 19:13:20 +0000210 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
211 ;;
212
213 *sparc*) AC_SUBST(OS,[SunOS])
214 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
215 ;;
216
217 *) AC_SUBST(OS,[Unknown])
218 ;;
219esac
220
221dnl
222dnl If we are targetting a Sparc machine running Solaris, pretend that it is
223dnl V9, since that is all that we support at the moment, and autoconf will only
224dnl tell us we're a sparc.
225dnl
226case $target in
227 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
228 ;;
229esac
230
231dnl
232dnl Determine what our target architecture is and configure accordingly.
233dnl This will allow Makefiles to make a distinction between the hardware and
234dnl the OS.
235dnl
236case $target in
237 *i*86*) AC_SUBST(ARCH,[x86])
238 ;;
239 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
240 ;;
241esac
242
243dnl **************************************************************************
244dnl * Check for programs.
245dnl **************************************************************************
246
247dnl Check for compilation tools
248AC_PROG_CXX
249AC_PROG_CC(gcc)
250AC_PROG_CPP
251
252dnl Ensure that compilation tools are GCC; we use GCC specific extensions
253if test "$GCC" != "yes"
254then
255 AC_MSG_ERROR([gcc required but not found])
256fi
257
258if test "$GXX" != "yes"
259then
260 AC_MSG_ERROR([g++ required but not found])
261fi
262
John Criswellde00db22003-08-25 16:49:54 +0000263dnl Verify that GCC is version 3.0 or higher
264gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
265if test "$gccmajor" -lt "3"
266then
267 AC_MSG_ERROR([gcc 3.x required])
268fi
269
John Criswell4ea390d2003-07-22 19:13:20 +0000270dnl Check for GNU Make. We use its extensions to, so don't build without it
271CHECK_GNU_MAKE
272if test -z "$_cv_gnu_make_command"
273then
274 AC_MSG_ERROR([GNU Make required but not found])
275fi
276
277dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
278AC_PROG_FLEX
279AC_PROG_BISON
280
281dnl Check for libtool
282AC_PROG_LIBTOOL
283
284dnl Check for our special programs
John Criswellde00db22003-08-25 16:49:54 +0000285AC_PATH_PROG(RPWD,[pwd])
John Criswell4ea390d2003-07-22 19:13:20 +0000286AC_PATH_PROG(AR,[ar])
287AC_PATH_PROG(SED,[sed])
288AC_PATH_PROG(RM,[rm])
289AC_PATH_PROG(ECHO,[echo])
290AC_PATH_PROG(MKDIR,[mkdir])
291AC_PATH_PROG(DATE,[date])
292AC_PATH_PROG(MV,[mv])
293AC_PATH_PROG(DOT,[dot])
294AC_PATH_PROG(ETAGS,[etags])
295AC_PATH_PROG(PURIFY,[purify])
John Criswellde00db22003-08-25 16:49:54 +0000296AC_PATH_PROG(PYTHON,[python])
297AC_PATH_PROG(QMTEST,[qmtest])
298
299dnl Verify that the version of python available is high enough for qmtest
300pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
301pymajor=`echo $pyversion | cut -d. -f1`
302pyminor=`echo $pyversion | cut -d. -f2`
303
304if test "$pymajor" -ge "2"
305then
306 if test "$pymajor" -eq "2"
307 then
308 if test "$pyminor" -lt "2"
309 then
310 AC_MSG_ERROR([Python 2.2 or greater required])
311 fi
312 fi
313else
314 AC_MSG_ERROR([Python 2.2 or greater required])
315fi
John Criswell4ea390d2003-07-22 19:13:20 +0000316
317dnl Verify that the source directory is valid
318AC_CONFIG_SRCDIR(["Makefile.config.in"])
319
320dnl **************************************************************************
321dnl * Check for libraries.
322dnl **************************************************************************
323
324dnl libelf is for sparc only; we can ignore it if we don't have it
325AC_CHECK_LIB(elf, elf_begin)
326
327dnl dlopen() is required. If we don't find it, quit.
328AC_SEARCH_LIBS(dlopen,dl,,AC_MSG_ERROR([dlopen() required but not found]))
329
330dnl mallinfo is optional; the code can compile (minus features) without it
331AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
332
333dnl
334dnl The math libraries are used by the test code, but not by the actual LLVM
335dnl code.
336dnl
337dnl AC_CHECK_LIB(m, cos)
338
339dnl **************************************************************************
340dnl * Checks for header files.
341dnl * Chances are, if the standard C or POSIX type header files are missing,
342dnl * then LLVM just isn't going to compile. However, it is possible that
343dnl * the necessary functions/macros will be included from other
344dnl * (non-standard and non-obvious) header files.
345dnl *
346dnl * So, we'll be gracious, give it a chance, and try to go on without
347dnl * them.
348dnl **************************************************************************
349AC_HEADER_STDC
350AC_HEADER_SYS_WAIT
351
352dnl Check for ANSI C/POSIX header files
353AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
354
355dnl Check for system specific header files
356AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h)
357
358dnl Check for header files associated with dlopen and friends
359AC_CHECK_HEADERS(dlfcn.h link.h)
360
361dnl **************************************************************************
362dnl * Checks for typedefs, structures, and compiler characteristics.
363dnl **************************************************************************
364
365dnl Check for const and inline keywords
366AC_C_CONST
367AC_C_INLINE
368
369dnl Check for machine endian-ness
370AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
371
372dnl Check for types
373AC_TYPE_PID_T
374AC_TYPE_SIZE_T
375AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
376AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
377AC_HEADER_TIME
378AC_STRUCT_TM
379
380dnl Check for C++ extensions
381AC_CXX_HAVE_EXT_HASH_MAP
382AC_CXX_HAVE_EXT_HASH_SET
383AC_CXX_HAVE_EXT_SLIST
384AC_CXX_HAVE_STD_ITERATOR
385AC_CXX_HAVE_BI_ITERATOR
386AC_CXX_HAVE_FWD_ITERATOR
387
388dnl **************************************************************************
389dnl * Checks for library functions.
390dnl **************************************************************************
391AC_FUNC_ALLOCA
392AC_PROG_GCC_TRADITIONAL
393AC_FUNC_MEMCMP
394AC_FUNC_MMAP
395AC_FUNC_MMAP_FILE
396if test ${ac_cv_func_mmap_file} = "no"
397then
398 AC_MSG_ERROR([mmap() of files required but not found])
399fi
400AC_HEADER_MMAP_ANONYMOUS
401AC_TYPE_SIGNAL
402AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol)
403
404dnl
405dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
406dnl MAP_FIXED is only needed for Sparc
407dnl MAP_ANON is used for Sparc and BSD
408dnl Everyone should have MAP_PRIVATE
409dnl
410
411dnl Check for certain functions (even if we've already found them) so that we
412dnl can quit with an error if they are unavailable.
413dnl
414dnl As the code is made more portable (i.e. less reliant on these functions,
415dnl these checks should go away.
416AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
417AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
418
419dnl **************************************************************************
420dnl * Enable various compile-time options
421dnl **************************************************************************
John Criswell79a8f092003-07-22 20:59:52 +0000422
423dnl Purify Option
424AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
425if test ${enableval} = "no"
426then
427 AC_SUBST(ENABLE_PURIFY,[[]])
428else
429 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
430fi
431
432dnl Optimized Option
433AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
434if test ${enableval} = "no"
435then
436 AC_SUBST(ENABLE_OPTIMIZED,[[]])
437else
438 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
439fi
440
441dnl Spec Benchmarks
442AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
443if test ${enableval} = "no"
444then
445 AC_SUBST(USE_SPEC,[[]])
446else
447 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
448fi
449
450dnl Precompiled Bytecode Option
451AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
452if test ${enableval} = "no"
453then
454 AC_SUBST(UPB,[[]])
455else
456 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
457fi
458
459
460dnl LLC Diff Option
461AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
462if test ${enableval} = "no"
463then
464 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
465else
466 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
467fi
468
469dnl JIT Option
John Criswellc78022e2003-07-29 19:11:58 +0000470AC_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 +0000471
472if test ${enableval} = "no"
473then
474 AC_SUBST(JIT,[[]])
475else
John Criswellc78022e2003-07-29 19:11:58 +0000476 case $target in
477 *i*86*)
478 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
479 ;;
480 *sparc*)
481 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
482 ;;
483 *)
484 AC_SUBST(JIT,[[]])
485 ;;
486 esac
John Criswell79a8f092003-07-22 20:59:52 +0000487fi
John Criswell4ea390d2003-07-22 19:13:20 +0000488
489dnl **************************************************************************
490dnl * Set the location of various third-party software packages
491dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000492
493dnl Location of SPEC benchmarks
John Criswell4ea390d2003-07-22 19:13:20 +0000494AC_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 +0000495
496dnl Location of the LLVM C front end
John Criswell4ea390d2003-07-22 19:13:20 +0000497AC_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 +0000498
499dnl Location of the bytecode repository
John Criswell4ea390d2003-07-22 19:13:20 +0000500AC_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 +0000501
502dnl Location of PAPI
Chris Lattner1b9ddd52003-08-14 18:59:53 +0000503AC_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 +0000504
505dnl Location of the purify program
John Criswell4ea390d2003-07-22 19:13:20 +0000506AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
507
John Criswellc78022e2003-07-29 19:11:58 +0000508dnl **************************************************************************
John Criswellde00db22003-08-25 16:49:54 +0000509dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
510dnl **************************************************************************
511
512dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000513dnl * Create the output files
514dnl **************************************************************************
John Criswell4ea390d2003-07-22 19:13:20 +0000515AC_OUTPUT(Makefile.config)