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