blob: fa0aa331b5e5ba25b772b7910642a7dd8c99b060 [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
23dnl Configure a header file
24AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2970d522003-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 Criswell2970d522003-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 Lattnerce165f02003-09-10 15:13:21 +000063AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
64AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libexception/Makefile)
John Criswell2970d522003-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 Lattnerce165f02003-09-10 15:13:21 +000069AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000070AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
Chris Lattnerce165f02003-09-10 15:13:21 +000071AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
72AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
John Criswell2970d522003-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)
John Criswell7e0a65d2003-09-11 18:04:00 +000095AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2970d522003-09-06 14:46:19 +000096AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
97AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
98AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
99AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
100AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
101AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
102AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
103AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
104AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
105AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
106AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
107AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
108AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
109AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
110AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
111AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
112AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
113AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
John Criswell1868b4e2003-09-12 16:31:43 +0000114AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
115AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
John Criswell3487a862003-09-12 16:36:17 +0000116AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
117AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000118AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile)
119AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile)
120AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile)
121AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile)
122AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile)
123AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile)
124AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile)
125AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile)
126AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile)
127AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile)
128AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile)
129AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile)
130AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile)
131AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile)
132AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile)
133AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile)
134AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile)
135AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile)
136AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile)
137AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile)
138AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile)
139AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile)
140AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile)
141AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile)
John Criswell3487a862003-09-12 16:36:17 +0000142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile)
144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile)
145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile)
146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile)
147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile)
148AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000149AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000150AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000151AC_CONFIG_MAKEFILE(test/Programs/NoSource/Makefile)
152AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
153AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
154AC_CONFIG_MAKEFILE(test/Programs/NoSource/Moria-5.5.2/Makefile)
155AC_CONFIG_MAKEFILE(test/Programs/NoSource/Povray31/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000156AC_CONFIG_MAKEFILE(test/Programs/NoSource/m4/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswell6f7d8a22003-09-10 18:38:44 +0000159AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
160AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile)
161AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
162AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
163AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
164AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000165AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000166AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
John Criswell3c172b42003-09-11 20:53:48 +0000167AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000168AC_CONFIG_MAKEFILE(tools/Makefile)
169AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
170AC_CONFIG_MAKEFILE(tools/as/Makefile)
171AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
172AC_CONFIG_MAKEFILE(tools/dis/Makefile)
173AC_CONFIG_MAKEFILE(tools/extract/Makefile)
174AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
175AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
176AC_CONFIG_MAKEFILE(tools/link/Makefile)
177AC_CONFIG_MAKEFILE(tools/llc/Makefile)
178AC_CONFIG_MAKEFILE(tools/lli/Makefile)
179AC_CONFIG_MAKEFILE(tools/opt/Makefile)
180AC_CONFIG_MAKEFILE(tools/llee/Makefile)
181AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
Chris Lattner4777f032003-09-13 02:35:56 +0000182AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000183AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
184AC_CONFIG_MAKEFILE(utils/Makefile)
185AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
186AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
187AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
188AC_CONFIG_MAKEFILE(www/docs/Makefile)
189AC_CONFIG_MAKEFILE(projects/Makefile)
190AC_CONFIG_MAKEFILE(projects/sample/Makefile)
191AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
192AC_CONFIG_MAKEFILE(projects/sample/Makefile.config)
193AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
194AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
195AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
196AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
197AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
198AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
199AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
200AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell7a3334d2003-07-22 19:13:20 +0000201
202dnl **************************************************************************
203dnl * Determine which system we are building on
204dnl **************************************************************************
205
206dnl Check the install program (needs to be done before canonical stuff)
207AC_PROG_INSTALL
208
209dnl Check which host for which we're compiling. This will tell us which LLVM
210dnl compiler will be used for compiling SSA into object code.
211AC_CANONICAL_TARGET
212
213dnl
214dnl Now, for some of our own magic:
215dnl We will use the build machine information to set some variables.
216dnl
217case $build in
218 *i*86*) AC_SUBST(OS,[Linux])
John Criswell7a3334d2003-07-22 19:13:20 +0000219 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
220 ;;
221
222 *sparc*) AC_SUBST(OS,[SunOS])
223 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
224 ;;
225
226 *) AC_SUBST(OS,[Unknown])
227 ;;
228esac
229
230dnl
231dnl If we are targetting a Sparc machine running Solaris, pretend that it is
232dnl V9, since that is all that we support at the moment, and autoconf will only
233dnl tell us we're a sparc.
234dnl
235case $target in
236 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
237 ;;
238esac
239
240dnl
241dnl Determine what our target architecture is and configure accordingly.
242dnl This will allow Makefiles to make a distinction between the hardware and
243dnl the OS.
244dnl
245case $target in
246 *i*86*) AC_SUBST(ARCH,[x86])
247 ;;
248 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
249 ;;
250esac
251
252dnl **************************************************************************
253dnl * Check for programs.
254dnl **************************************************************************
255
256dnl Check for compilation tools
257AC_PROG_CXX
258AC_PROG_CC(gcc)
259AC_PROG_CPP
260
261dnl Ensure that compilation tools are GCC; we use GCC specific extensions
262if test "$GCC" != "yes"
263then
264 AC_MSG_ERROR([gcc required but not found])
265fi
266
267if test "$GXX" != "yes"
268then
269 AC_MSG_ERROR([g++ required but not found])
270fi
271
John Criswell6a47a972003-08-25 16:49:54 +0000272dnl Verify that GCC is version 3.0 or higher
273gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
274if test "$gccmajor" -lt "3"
275then
276 AC_MSG_ERROR([gcc 3.x required])
277fi
278
John Criswell7a3334d2003-07-22 19:13:20 +0000279dnl Check for GNU Make. We use its extensions to, so don't build without it
280CHECK_GNU_MAKE
281if test -z "$_cv_gnu_make_command"
282then
283 AC_MSG_ERROR([GNU Make required but not found])
284fi
285
286dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
287AC_PROG_FLEX
288AC_PROG_BISON
289
290dnl Check for libtool
291AC_PROG_LIBTOOL
292
293dnl Check for our special programs
John Criswell6a47a972003-08-25 16:49:54 +0000294AC_PATH_PROG(RPWD,[pwd])
John Criswell7a3334d2003-07-22 19:13:20 +0000295AC_PATH_PROG(AR,[ar])
296AC_PATH_PROG(SED,[sed])
297AC_PATH_PROG(RM,[rm])
298AC_PATH_PROG(ECHO,[echo])
299AC_PATH_PROG(MKDIR,[mkdir])
300AC_PATH_PROG(DATE,[date])
301AC_PATH_PROG(MV,[mv])
302AC_PATH_PROG(DOT,[dot])
303AC_PATH_PROG(ETAGS,[etags])
304AC_PATH_PROG(PURIFY,[purify])
John Criswell6a47a972003-08-25 16:49:54 +0000305AC_PATH_PROG(PYTHON,[python])
306AC_PATH_PROG(QMTEST,[qmtest])
307
308dnl Verify that the version of python available is high enough for qmtest
309pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
310pymajor=`echo $pyversion | cut -d. -f1`
311pyminor=`echo $pyversion | cut -d. -f2`
312
313if test "$pymajor" -ge "2"
314then
315 if test "$pymajor" -eq "2"
316 then
317 if test "$pyminor" -lt "2"
318 then
319 AC_MSG_ERROR([Python 2.2 or greater required])
320 fi
321 fi
322else
323 AC_MSG_ERROR([Python 2.2 or greater required])
324fi
John Criswell7a3334d2003-07-22 19:13:20 +0000325
326dnl Verify that the source directory is valid
327AC_CONFIG_SRCDIR(["Makefile.config.in"])
328
329dnl **************************************************************************
330dnl * Check for libraries.
331dnl **************************************************************************
332
333dnl libelf is for sparc only; we can ignore it if we don't have it
334AC_CHECK_LIB(elf, elf_begin)
335
336dnl dlopen() is required. If we don't find it, quit.
337AC_SEARCH_LIBS(dlopen,dl,,AC_MSG_ERROR([dlopen() required but not found]))
338
339dnl mallinfo is optional; the code can compile (minus features) without it
340AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
341
342dnl
343dnl The math libraries are used by the test code, but not by the actual LLVM
344dnl code.
345dnl
346dnl AC_CHECK_LIB(m, cos)
347
348dnl **************************************************************************
349dnl * Checks for header files.
350dnl * Chances are, if the standard C or POSIX type header files are missing,
351dnl * then LLVM just isn't going to compile. However, it is possible that
352dnl * the necessary functions/macros will be included from other
353dnl * (non-standard and non-obvious) header files.
354dnl *
355dnl * So, we'll be gracious, give it a chance, and try to go on without
356dnl * them.
357dnl **************************************************************************
358AC_HEADER_STDC
359AC_HEADER_SYS_WAIT
360
361dnl Check for ANSI C/POSIX header files
362AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
363
364dnl Check for system specific header files
365AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h)
366
367dnl Check for header files associated with dlopen and friends
368AC_CHECK_HEADERS(dlfcn.h link.h)
369
370dnl **************************************************************************
371dnl * Checks for typedefs, structures, and compiler characteristics.
372dnl **************************************************************************
373
374dnl Check for const and inline keywords
375AC_C_CONST
376AC_C_INLINE
377
378dnl Check for machine endian-ness
379AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
380
381dnl Check for types
382AC_TYPE_PID_T
383AC_TYPE_SIZE_T
384AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
385AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
386AC_HEADER_TIME
387AC_STRUCT_TM
388
389dnl Check for C++ extensions
390AC_CXX_HAVE_EXT_HASH_MAP
391AC_CXX_HAVE_EXT_HASH_SET
392AC_CXX_HAVE_EXT_SLIST
393AC_CXX_HAVE_STD_ITERATOR
394AC_CXX_HAVE_BI_ITERATOR
395AC_CXX_HAVE_FWD_ITERATOR
396
397dnl **************************************************************************
398dnl * Checks for library functions.
399dnl **************************************************************************
400AC_FUNC_ALLOCA
401AC_PROG_GCC_TRADITIONAL
402AC_FUNC_MEMCMP
403AC_FUNC_MMAP
404AC_FUNC_MMAP_FILE
405if test ${ac_cv_func_mmap_file} = "no"
406then
407 AC_MSG_ERROR([mmap() of files required but not found])
408fi
409AC_HEADER_MMAP_ANONYMOUS
410AC_TYPE_SIGNAL
411AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol)
412
413dnl
414dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
415dnl MAP_FIXED is only needed for Sparc
416dnl MAP_ANON is used for Sparc and BSD
417dnl Everyone should have MAP_PRIVATE
418dnl
419
420dnl Check for certain functions (even if we've already found them) so that we
421dnl can quit with an error if they are unavailable.
422dnl
423dnl As the code is made more portable (i.e. less reliant on these functions,
424dnl these checks should go away.
425AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
426AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
427
428dnl **************************************************************************
429dnl * Enable various compile-time options
430dnl **************************************************************************
John Criswell5ec24d82003-07-22 20:59:52 +0000431
432dnl Purify Option
433AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
434if test ${enableval} = "no"
435then
436 AC_SUBST(ENABLE_PURIFY,[[]])
437else
438 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
439fi
440
441dnl Optimized Option
442AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
443if test ${enableval} = "no"
444then
445 AC_SUBST(ENABLE_OPTIMIZED,[[]])
446else
447 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
448fi
449
450dnl Spec Benchmarks
451AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
452if test ${enableval} = "no"
453then
454 AC_SUBST(USE_SPEC,[[]])
455else
456 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
457fi
458
459dnl Precompiled Bytecode Option
460AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
461if test ${enableval} = "no"
462then
463 AC_SUBST(UPB,[[]])
464else
465 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
466fi
467
468
469dnl LLC Diff Option
470AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
471if test ${enableval} = "no"
472then
473 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
474else
475 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
476fi
477
478dnl JIT Option
John Criswell4f376922003-07-29 19:11:58 +0000479AC_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 +0000480
481if test ${enableval} = "no"
482then
483 AC_SUBST(JIT,[[]])
484else
John Criswell4f376922003-07-29 19:11:58 +0000485 case $target in
486 *i*86*)
487 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
488 ;;
489 *sparc*)
490 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
491 ;;
492 *)
493 AC_SUBST(JIT,[[]])
494 ;;
495 esac
John Criswell5ec24d82003-07-22 20:59:52 +0000496fi
John Criswell7a3334d2003-07-22 19:13:20 +0000497
498dnl **************************************************************************
499dnl * Set the location of various third-party software packages
500dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000501
502dnl Location of SPEC benchmarks
John Criswell7a3334d2003-07-22 19:13:20 +0000503AC_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 Criswell4f376922003-07-29 19:11:58 +0000504
505dnl Location of the LLVM C front end
John Criswell7a3334d2003-07-22 19:13:20 +0000506AC_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 +0000507
508dnl Location of the bytecode repository
John Criswell7a3334d2003-07-22 19:13:20 +0000509AC_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 +0000510
511dnl Location of PAPI
Chris Lattner00645502003-08-14 18:59:53 +0000512AC_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 +0000513
514dnl Location of the purify program
John Criswell7a3334d2003-07-22 19:13:20 +0000515AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
516
John Criswell4f376922003-07-29 19:11:58 +0000517dnl **************************************************************************
John Criswell6a47a972003-08-25 16:49:54 +0000518dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
519dnl **************************************************************************
520
521dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000522dnl * Create the output files
523dnl **************************************************************************
John Criswell7a3334d2003-07-22 19:13:20 +0000524AC_OUTPUT(Makefile.config)