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