blob: 2d8070ace327d71fbec0566da0c4195a758d9a92 [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.
John Criswellf6778b62003-09-15 17:19:42 +000024dnl NOTE: This relies upon undocumented autoconf behavior.
25if test ${srcdir} != "."
John Criswell22107a72003-09-15 17:04:06 +000026then
John Criswellf6778b62003-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 Criswell22107a72003-09-15 17:04:06 +000031fi
32
John Criswell2b3771e2003-09-30 15:55:44 +000033if test -d ${srcdir}/projects/reopt
34then
35 AC_CONFIG_SUBDIRS(projects/reopt)
36fi
37
John Criswellee7ebdc2003-09-30 16:31:48 +000038if test -d ${srcdir}/projects/poolalloc
39then
40 AC_CONFIG_SUBDIRS(projects/poolalloc)
41fi
42
John Criswell7a3334d2003-07-22 19:13:20 +000043dnl Configure a header file
44AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2970d522003-09-06 14:46:19 +000045AC_CONFIG_MAKEFILE(Makefile)
46AC_CONFIG_MAKEFILE(Makefile.common)
47AC_CONFIG_MAKEFILE(Makefile.rules)
48AC_CONFIG_MAKEFILE(lib/Makefile)
49AC_CONFIG_MAKEFILE(lib/Analysis/Makefile)
50AC_CONFIG_MAKEFILE(lib/Analysis/DataStructure/Makefile)
51AC_CONFIG_MAKEFILE(lib/Analysis/IPA/Makefile)
52AC_CONFIG_MAKEFILE(lib/Analysis/LiveVar/Makefile)
53AC_CONFIG_MAKEFILE(lib/AsmParser/Makefile)
54AC_CONFIG_MAKEFILE(lib/Bytecode/Makefile)
55AC_CONFIG_MAKEFILE(lib/Bytecode/Reader/Makefile)
56AC_CONFIG_MAKEFILE(lib/Bytecode/Writer/Makefile)
57AC_CONFIG_MAKEFILE(lib/CWriter/Makefile)
58AC_CONFIG_MAKEFILE(lib/CodeGen/Makefile)
59AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSched/Makefile)
60AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSelection/Makefile)
61AC_CONFIG_MAKEFILE(lib/CodeGen/ModuloScheduling/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000062AC_CONFIG_MAKEFILE(lib/CodeGen/RegAlloc/Makefile)
63AC_CONFIG_MAKEFILE(lib/CodeGen/SelectionDAG/Makefile)
64AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Makefile)
65AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Interpreter/Makefile)
66AC_CONFIG_MAKEFILE(lib/ExecutionEngine/JIT/Makefile)
Chris Lattner672edbc2003-10-06 02:09:25 +000067AC_CONFIG_MAKEFILE(lib/Support/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000068AC_CONFIG_MAKEFILE(lib/Target/Makefile)
69AC_CONFIG_MAKEFILE(lib/Target/Sparc/Makefile)
70AC_CONFIG_MAKEFILE(lib/Target/X86/Makefile)
71AC_CONFIG_MAKEFILE(lib/Transforms/Makefile)
72AC_CONFIG_MAKEFILE(lib/Transforms/Hello/Makefile)
73AC_CONFIG_MAKEFILE(lib/Transforms/IPO/Makefile)
74AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/Makefile)
75AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/ProfilePaths/Makefile)
76AC_CONFIG_MAKEFILE(lib/Transforms/Scalar/Makefile)
77AC_CONFIG_MAKEFILE(lib/Transforms/Utils/Makefile)
78AC_CONFIG_MAKEFILE(lib/VMCore/Makefile)
79AC_CONFIG_MAKEFILE(runtime/Makefile)
80AC_CONFIG_MAKEFILE(runtime/GCCLibraries/Makefile)
81AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile)
82AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile)
Chris Lattnerce165f02003-09-10 15:13:21 +000083AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000084AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile)
85AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
86AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
87AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libmalloc/Makefile)
Chris Lattnerce165f02003-09-10 15:13:21 +000088AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000089AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
Chris Lattnerce165f02003-09-10 15:13:21 +000090AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
91AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
John Criswell2970d522003-09-06 14:46:19 +000092AC_CONFIG_MAKEFILE(runtime/libdummy/Makefile)
93AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile)
94AC_CONFIG_MAKEFILE(test/Makefile)
95AC_CONFIG_MAKEFILE(test/Makefile.tests)
John Criswelle078b432003-10-07 21:13:47 +000096AC_CONFIG_MAKEFILE(test/QMTest/llvm.py)
97AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py)
John Criswell2970d522003-09-06 14:46:19 +000098AC_CONFIG_MAKEFILE(test/Programs/Makefile)
99AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
100AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
101AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report)
102AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
103AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
104AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
105AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
106AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
107AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
108AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
109AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
110AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
111AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
112AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
113AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
114AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
115AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
John Criswell7e0a65d2003-09-11 18:04:00 +0000116AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2970d522003-09-06 14:46:19 +0000117AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
118AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
119AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
120AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
121AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
122AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
123AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
124AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
125AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
126AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
127AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
128AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
129AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
130AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
131AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
132AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
133AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
134AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
John Criswell1868b4e2003-09-12 16:31:43 +0000135AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
136AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
John Criswell3487a862003-09-12 16:36:17 +0000137AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
138AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000139AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile)
140AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile)
141AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile)
142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile)
143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile)
144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile)
145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile)
146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile)
147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile)
148AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile)
149AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile)
150AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile)
151AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile)
152AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile)
153AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile)
154AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile)
155AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile)
156AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile)
159AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile)
160AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile)
161AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile)
162AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile)
John Criswell3487a862003-09-12 16:36:17 +0000163AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000164AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile)
165AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile)
166AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile)
167AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile)
168AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile)
169AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000170AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000171AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000172AC_CONFIG_MAKEFILE(test/Programs/NoSource/Makefile)
173AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
174AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
175AC_CONFIG_MAKEFILE(test/Programs/NoSource/Moria-5.5.2/Makefile)
176AC_CONFIG_MAKEFILE(test/Programs/NoSource/Povray31/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000177AC_CONFIG_MAKEFILE(test/Programs/NoSource/m4/Makefile)
178AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
179AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswell6f7d8a22003-09-10 18:38:44 +0000180AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
181AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile)
182AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
183AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
184AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
185AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000186AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000187AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
John Criswell3c172b42003-09-11 20:53:48 +0000188AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
John Criswell4c157a42003-09-26 14:53:17 +0000189AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
John Criswellf7dc0f42003-09-26 19:51:42 +0000190AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
191AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
John Criswell6780a6e2003-09-29 21:35:32 +0000192AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000193AC_CONFIG_MAKEFILE(tools/Makefile)
194AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000195AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000196AC_CONFIG_MAKEFILE(tools/extract/Makefile)
197AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
198AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000199AC_CONFIG_MAKEFILE(tools/llc/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000200AC_CONFIG_MAKEFILE(tools/llee/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000201AC_CONFIG_MAKEFILE(tools/lli/Makefile)
Chris Lattner4777f032003-09-13 02:35:56 +0000202AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000203AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000204AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000205AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
206AC_CONFIG_MAKEFILE(tools/opt/Makefile)
Chris Lattner672edbc2003-10-06 02:09:25 +0000207AC_CONFIG_MAKEFILE(utils/Makefile)
208AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
209AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
210AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000211AC_CONFIG_MAKEFILE(www/docs/Makefile)
212AC_CONFIG_MAKEFILE(projects/Makefile)
213AC_CONFIG_MAKEFILE(projects/sample/Makefile)
214AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
215AC_CONFIG_MAKEFILE(projects/sample/Makefile.config)
216AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
217AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
218AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
219AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
220AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
221AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
222AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
223AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell7a3334d2003-07-22 19:13:20 +0000224
225dnl **************************************************************************
226dnl * Determine which system we are building on
227dnl **************************************************************************
228
229dnl Check the install program (needs to be done before canonical stuff)
230AC_PROG_INSTALL
231
232dnl Check which host for which we're compiling. This will tell us which LLVM
233dnl compiler will be used for compiling SSA into object code.
234AC_CANONICAL_TARGET
235
236dnl
237dnl Now, for some of our own magic:
238dnl We will use the build machine information to set some variables.
239dnl
240case $build in
241 *i*86*) AC_SUBST(OS,[Linux])
John Criswell7a3334d2003-07-22 19:13:20 +0000242 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
243 ;;
244
245 *sparc*) AC_SUBST(OS,[SunOS])
246 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
247 ;;
248
249 *) AC_SUBST(OS,[Unknown])
250 ;;
251esac
252
253dnl
254dnl If we are targetting a Sparc machine running Solaris, pretend that it is
255dnl V9, since that is all that we support at the moment, and autoconf will only
256dnl tell us we're a sparc.
257dnl
258case $target in
259 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
260 ;;
261esac
262
263dnl
264dnl Determine what our target architecture is and configure accordingly.
265dnl This will allow Makefiles to make a distinction between the hardware and
266dnl the OS.
267dnl
268case $target in
269 *i*86*) AC_SUBST(ARCH,[x86])
270 ;;
271 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
272 ;;
273esac
274
275dnl **************************************************************************
276dnl * Check for programs.
277dnl **************************************************************************
278
279dnl Check for compilation tools
280AC_PROG_CXX
281AC_PROG_CC(gcc)
282AC_PROG_CPP
283
284dnl Ensure that compilation tools are GCC; we use GCC specific extensions
285if test "$GCC" != "yes"
286then
287 AC_MSG_ERROR([gcc required but not found])
288fi
289
290if test "$GXX" != "yes"
291then
292 AC_MSG_ERROR([g++ required but not found])
293fi
294
John Criswell6a47a972003-08-25 16:49:54 +0000295dnl Verify that GCC is version 3.0 or higher
296gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
297if test "$gccmajor" -lt "3"
298then
299 AC_MSG_ERROR([gcc 3.x required])
300fi
301
John Criswell7a3334d2003-07-22 19:13:20 +0000302dnl Check for GNU Make. We use its extensions to, so don't build without it
303CHECK_GNU_MAKE
304if test -z "$_cv_gnu_make_command"
305then
306 AC_MSG_ERROR([GNU Make required but not found])
307fi
308
309dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
310AC_PROG_FLEX
311AC_PROG_BISON
312
313dnl Check for libtool
314AC_PROG_LIBTOOL
315
316dnl Check for our special programs
John Criswell31494482003-09-23 15:28:52 +0000317AC_PATH_PROG(RPWD,[pwd],[false])
318if test ${RPWD} = "false"
319then
320 AC_MSG_ERROR([pwd required but not found])
321fi
322
323AC_PATH_PROG(AR,[ar],[false])
324if test ${AR} = "false"
325then
326 AC_MSG_ERROR([ar required but not found])
327fi
328
329AC_PATH_PROG(SED,[sed],[false])
330if test ${SED} = "false"
331then
332 AC_MSG_ERROR([sed required but not found])
333fi
334
335AC_PATH_PROG(RM,[rm],[false])
336if test ${RM} = "false"
337then
338 AC_MSG_ERROR([rm required but not found])
339fi
340
341AC_PATH_PROG(ECHO,[echo],[false])
342if test ${ECHO} = "false"
343then
344 AC_MSG_ERROR([echo required but not found])
345fi
346
347AC_PATH_PROG(MKDIR,[mkdir],[false])
348if test ${MKDIR} = "false"
349then
350 AC_MSG_ERROR([mkdir required but not found])
351fi
352
353AC_PATH_PROG(DATE,[date],[false])
354if test ${DATE} = "false"
355then
356 AC_MSG_ERROR([date required but not found])
357fi
358
359AC_PATH_PROG(MV,[mv],[false])
360if test ${MV} = "false"
361then
362 AC_MSG_ERROR([mv required but not found])
363fi
364
365AC_PATH_PROG(DOT,[dot],[false])
366
367AC_PATH_PROG(ETAGS,[etags],[false])
368
John Criswell31494482003-09-23 15:28:52 +0000369AC_PATH_PROG(PYTHON,[python],[false])
370if test ${PYTHON} = "false"
371then
John Criswell8d5d13d2003-09-23 20:46:32 +0000372 AC_MSG_WARN([python required but not found])
John Criswell31494482003-09-23 15:28:52 +0000373fi
374
375AC_PATH_PROG(QMTEST,[qmtest],[false])
376if test ${QMTEST} = "false"
377then
John Criswell8d5d13d2003-09-23 20:46:32 +0000378 AC_MSG_WARN([qmtest required but not found])
John Criswell31494482003-09-23 15:28:52 +0000379fi
John Criswell6a47a972003-08-25 16:49:54 +0000380
381dnl Verify that the version of python available is high enough for qmtest
382pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
383pymajor=`echo $pyversion | cut -d. -f1`
384pyminor=`echo $pyversion | cut -d. -f2`
385
386if test "$pymajor" -ge "2"
387then
388 if test "$pymajor" -eq "2"
389 then
390 if test "$pyminor" -lt "2"
391 then
392 AC_MSG_ERROR([Python 2.2 or greater required])
393 fi
394 fi
395else
396 AC_MSG_ERROR([Python 2.2 or greater required])
397fi
John Criswell7a3334d2003-07-22 19:13:20 +0000398
399dnl Verify that the source directory is valid
400AC_CONFIG_SRCDIR(["Makefile.config.in"])
401
402dnl **************************************************************************
403dnl * Check for libraries.
404dnl **************************************************************************
405
406dnl libelf is for sparc only; we can ignore it if we don't have it
407AC_CHECK_LIB(elf, elf_begin)
408
Brian Gaeke25f2a372003-10-07 05:03:36 +0000409dnl dlopen() is required for plugin support.
410AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1]),AC_MSG_WARN([dlopen() not found - disabling plugin support]))
John Criswell7a3334d2003-07-22 19:13:20 +0000411
412dnl mallinfo is optional; the code can compile (minus features) without it
413AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
414
415dnl
416dnl The math libraries are used by the test code, but not by the actual LLVM
417dnl code.
418dnl
419dnl AC_CHECK_LIB(m, cos)
420
421dnl **************************************************************************
422dnl * Checks for header files.
423dnl * Chances are, if the standard C or POSIX type header files are missing,
424dnl * then LLVM just isn't going to compile. However, it is possible that
425dnl * the necessary functions/macros will be included from other
426dnl * (non-standard and non-obvious) header files.
427dnl *
428dnl * So, we'll be gracious, give it a chance, and try to go on without
429dnl * them.
430dnl **************************************************************************
431AC_HEADER_STDC
432AC_HEADER_SYS_WAIT
433
434dnl Check for ANSI C/POSIX header files
435AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
436
437dnl Check for system specific header files
438AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h)
439
440dnl Check for header files associated with dlopen and friends
441AC_CHECK_HEADERS(dlfcn.h link.h)
442
443dnl **************************************************************************
444dnl * Checks for typedefs, structures, and compiler characteristics.
445dnl **************************************************************************
446
447dnl Check for const and inline keywords
448AC_C_CONST
449AC_C_INLINE
450
451dnl Check for machine endian-ness
452AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
453
454dnl Check for types
455AC_TYPE_PID_T
456AC_TYPE_SIZE_T
457AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
458AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
459AC_HEADER_TIME
460AC_STRUCT_TM
461
462dnl Check for C++ extensions
463AC_CXX_HAVE_EXT_HASH_MAP
464AC_CXX_HAVE_EXT_HASH_SET
465AC_CXX_HAVE_EXT_SLIST
466AC_CXX_HAVE_STD_ITERATOR
467AC_CXX_HAVE_BI_ITERATOR
468AC_CXX_HAVE_FWD_ITERATOR
469
470dnl **************************************************************************
471dnl * Checks for library functions.
472dnl **************************************************************************
473AC_FUNC_ALLOCA
474AC_PROG_GCC_TRADITIONAL
475AC_FUNC_MEMCMP
476AC_FUNC_MMAP
477AC_FUNC_MMAP_FILE
478if test ${ac_cv_func_mmap_file} = "no"
479then
480 AC_MSG_ERROR([mmap() of files required but not found])
481fi
482AC_HEADER_MMAP_ANONYMOUS
483AC_TYPE_SIGNAL
Brian Gaeke133bb522003-10-07 03:56:29 +0000484AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
John Criswell7a3334d2003-07-22 19:13:20 +0000485
486dnl
487dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
488dnl MAP_FIXED is only needed for Sparc
489dnl MAP_ANON is used for Sparc and BSD
490dnl Everyone should have MAP_PRIVATE
491dnl
492
493dnl Check for certain functions (even if we've already found them) so that we
494dnl can quit with an error if they are unavailable.
495dnl
496dnl As the code is made more portable (i.e. less reliant on these functions,
497dnl these checks should go away.
498AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
499AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
500
501dnl **************************************************************************
502dnl * Enable various compile-time options
503dnl **************************************************************************
John Criswell5ec24d82003-07-22 20:59:52 +0000504
505dnl Purify Option
506AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
507if test ${enableval} = "no"
508then
509 AC_SUBST(ENABLE_PURIFY,[[]])
510else
511 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
512fi
513
514dnl Optimized Option
515AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
516if test ${enableval} = "no"
517then
518 AC_SUBST(ENABLE_OPTIMIZED,[[]])
519else
520 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
521fi
522
523dnl Spec Benchmarks
524AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
525if test ${enableval} = "no"
526then
527 AC_SUBST(USE_SPEC,[[]])
528else
529 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
530fi
531
532dnl Precompiled Bytecode Option
533AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
534if test ${enableval} = "no"
535then
536 AC_SUBST(UPB,[[]])
537else
538 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
539fi
540
541
542dnl LLC Diff Option
543AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
544if test ${enableval} = "no"
545then
546 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
547else
548 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
549fi
550
551dnl JIT Option
John Criswell4f376922003-07-29 19:11:58 +0000552AC_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 +0000553
554if test ${enableval} = "no"
555then
556 AC_SUBST(JIT,[[]])
557else
John Criswell4f376922003-07-29 19:11:58 +0000558 case $target in
559 *i*86*)
560 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
561 ;;
562 *sparc*)
563 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
564 ;;
565 *)
566 AC_SUBST(JIT,[[]])
567 ;;
568 esac
John Criswell5ec24d82003-07-22 20:59:52 +0000569fi
John Criswell7a3334d2003-07-22 19:13:20 +0000570
571dnl **************************************************************************
572dnl * Set the location of various third-party software packages
573dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000574
575dnl Location of SPEC benchmarks
John Criswell7a3334d2003-07-22 19:13:20 +0000576AC_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 +0000577
578dnl Location of the LLVM C front end
John Criswell7a3334d2003-07-22 19:13:20 +0000579AC_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 +0000580
581dnl Location of the bytecode repository
John Criswell7a3334d2003-07-22 19:13:20 +0000582AC_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 +0000583
584dnl Location of PAPI
Chris Lattner00645502003-08-14 18:59:53 +0000585AC_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 +0000586
587dnl Location of the purify program
John Criswell7a3334d2003-07-22 19:13:20 +0000588AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
589
John Criswell4f376922003-07-29 19:11:58 +0000590dnl **************************************************************************
John Criswell6a47a972003-08-25 16:49:54 +0000591dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
592dnl **************************************************************************
593
594dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000595dnl * Create the output files
596dnl **************************************************************************
John Criswell7a3334d2003-07-22 19:13:20 +0000597AC_OUTPUT(Makefile.config)