blob: 94417a95ec86844e8f076994164ee025491931f3 [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 Criswell12399a12003-09-30 15:55:44 +000033if test -d ${srcdir}/projects/reopt
34then
35 AC_CONFIG_SUBDIRS(projects/reopt)
36fi
37
John Criswell559a6c12003-09-30 16:31:48 +000038if test -d ${srcdir}/projects/poolalloc
39then
40 AC_CONFIG_SUBDIRS(projects/poolalloc)
41fi
42
John Criswell4ea390d2003-07-22 19:13:20 +000043dnl Configure a header file
44AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2d533082003-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 Criswell2d533082003-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 Lattner5c866e12003-10-06 02:09:25 +000067AC_CONFIG_MAKEFILE(lib/Support/Makefile)
John Criswell2d533082003-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 Lattnerdd2116d2003-09-10 15:13:21 +000083AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
John Criswell2d533082003-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 Lattnerdd2116d2003-09-10 15:13:21 +000088AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000089AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000090AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
91AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
John Criswell2d533082003-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 Criswell08acb9b2003-09-16 02:12:45 +000096AC_CONFIG_MAKEFILE(test/QMTestDB/QMTest/llvm.py)
John Criswell2d533082003-09-06 14:46:19 +000097AC_CONFIG_MAKEFILE(test/Programs/Makefile)
98AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
99AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
100AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report)
101AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
102AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
103AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
104AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
105AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
106AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
107AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
108AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
109AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
110AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
111AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
112AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
113AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
114AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
John Criswell27bb35e2003-09-11 18:04:00 +0000115AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2d533082003-09-06 14:46:19 +0000116AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
117AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
118AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
119AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
120AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
121AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
122AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
123AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
124AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
125AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
126AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
127AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
128AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
129AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
130AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
131AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
132AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
133AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
John Criswell48e3cb92003-09-12 16:31:43 +0000134AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
135AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
John Criswell39e83892003-09-12 16:36:17 +0000136AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
137AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000138AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile)
139AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile)
140AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile)
141AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile)
142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile)
143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile)
144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile)
145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile)
146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile)
147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile)
148AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile)
149AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile)
150AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile)
151AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile)
152AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile)
153AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile)
154AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile)
155AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile)
156AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile)
159AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile)
160AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile)
161AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile)
John Criswell39e83892003-09-12 16:36:17 +0000162AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000163AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile)
164AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile)
165AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile)
166AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile)
167AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile)
168AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000169AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000170AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000171AC_CONFIG_MAKEFILE(test/Programs/NoSource/Makefile)
172AC_CONFIG_MAKEFILE(test/Programs/NoSource/Flex/Makefile)
173AC_CONFIG_MAKEFILE(test/Programs/NoSource/Larn/Makefile)
174AC_CONFIG_MAKEFILE(test/Programs/NoSource/Moria-5.5.2/Makefile)
175AC_CONFIG_MAKEFILE(test/Programs/NoSource/Povray31/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000176AC_CONFIG_MAKEFILE(test/Programs/NoSource/m4/Makefile)
177AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
178AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswellffaaf3b2003-09-10 18:38:44 +0000179AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
180AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile)
181AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
182AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
183AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
184AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000185AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000186AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
John Criswell0afe8252003-09-11 20:53:48 +0000187AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
John Criswell67181ca2003-09-26 14:53:17 +0000188AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
John Criswell68886d42003-09-26 19:51:42 +0000189AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
190AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
John Criswellc66bbd52003-09-29 21:35:32 +0000191AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000192AC_CONFIG_MAKEFILE(tools/Makefile)
193AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000194AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000195AC_CONFIG_MAKEFILE(tools/extract/Makefile)
196AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
197AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000198AC_CONFIG_MAKEFILE(tools/llc/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000199AC_CONFIG_MAKEFILE(tools/llee/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000200AC_CONFIG_MAKEFILE(tools/lli/Makefile)
Chris Lattnerdcf04902003-09-13 02:35:56 +0000201AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000202AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000203AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000204AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
205AC_CONFIG_MAKEFILE(tools/opt/Makefile)
Chris Lattner5c866e12003-10-06 02:09:25 +0000206AC_CONFIG_MAKEFILE(utils/Makefile)
207AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
208AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
209AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000210AC_CONFIG_MAKEFILE(www/docs/Makefile)
211AC_CONFIG_MAKEFILE(projects/Makefile)
212AC_CONFIG_MAKEFILE(projects/sample/Makefile)
213AC_CONFIG_MAKEFILE(projects/sample/Makefile.common)
214AC_CONFIG_MAKEFILE(projects/sample/Makefile.config)
215AC_CONFIG_MAKEFILE(projects/sample/lib/Makefile)
216AC_CONFIG_MAKEFILE(projects/sample/lib/sample/Makefile)
217AC_CONFIG_MAKEFILE(projects/sample/tools/Makefile)
218AC_CONFIG_MAKEFILE(projects/sample/tools/sample/Makefile)
219AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
220AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
221AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
222AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell4ea390d2003-07-22 19:13:20 +0000223
224dnl **************************************************************************
225dnl * Determine which system we are building on
226dnl **************************************************************************
227
228dnl Check the install program (needs to be done before canonical stuff)
229AC_PROG_INSTALL
230
231dnl Check which host for which we're compiling. This will tell us which LLVM
232dnl compiler will be used for compiling SSA into object code.
233AC_CANONICAL_TARGET
234
235dnl
236dnl Now, for some of our own magic:
237dnl We will use the build machine information to set some variables.
238dnl
239case $build in
240 *i*86*) AC_SUBST(OS,[Linux])
John Criswell4ea390d2003-07-22 19:13:20 +0000241 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
242 ;;
243
244 *sparc*) AC_SUBST(OS,[SunOS])
245 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
246 ;;
247
248 *) AC_SUBST(OS,[Unknown])
249 ;;
250esac
251
252dnl
253dnl If we are targetting a Sparc machine running Solaris, pretend that it is
254dnl V9, since that is all that we support at the moment, and autoconf will only
255dnl tell us we're a sparc.
256dnl
257case $target in
258 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
259 ;;
260esac
261
262dnl
263dnl Determine what our target architecture is and configure accordingly.
264dnl This will allow Makefiles to make a distinction between the hardware and
265dnl the OS.
266dnl
267case $target in
268 *i*86*) AC_SUBST(ARCH,[x86])
269 ;;
270 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
271 ;;
272esac
273
274dnl **************************************************************************
275dnl * Check for programs.
276dnl **************************************************************************
277
278dnl Check for compilation tools
279AC_PROG_CXX
280AC_PROG_CC(gcc)
281AC_PROG_CPP
282
283dnl Ensure that compilation tools are GCC; we use GCC specific extensions
284if test "$GCC" != "yes"
285then
286 AC_MSG_ERROR([gcc required but not found])
287fi
288
289if test "$GXX" != "yes"
290then
291 AC_MSG_ERROR([g++ required but not found])
292fi
293
John Criswellde00db22003-08-25 16:49:54 +0000294dnl Verify that GCC is version 3.0 or higher
295gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
296if test "$gccmajor" -lt "3"
297then
298 AC_MSG_ERROR([gcc 3.x required])
299fi
300
John Criswell4ea390d2003-07-22 19:13:20 +0000301dnl Check for GNU Make. We use its extensions to, so don't build without it
302CHECK_GNU_MAKE
303if test -z "$_cv_gnu_make_command"
304then
305 AC_MSG_ERROR([GNU Make required but not found])
306fi
307
308dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
309AC_PROG_FLEX
310AC_PROG_BISON
311
312dnl Check for libtool
313AC_PROG_LIBTOOL
314
315dnl Check for our special programs
John Criswell39827c82003-09-23 15:28:52 +0000316AC_PATH_PROG(RPWD,[pwd],[false])
317if test ${RPWD} = "false"
318then
319 AC_MSG_ERROR([pwd required but not found])
320fi
321
322AC_PATH_PROG(AR,[ar],[false])
323if test ${AR} = "false"
324then
325 AC_MSG_ERROR([ar required but not found])
326fi
327
328AC_PATH_PROG(SED,[sed],[false])
329if test ${SED} = "false"
330then
331 AC_MSG_ERROR([sed required but not found])
332fi
333
334AC_PATH_PROG(RM,[rm],[false])
335if test ${RM} = "false"
336then
337 AC_MSG_ERROR([rm required but not found])
338fi
339
340AC_PATH_PROG(ECHO,[echo],[false])
341if test ${ECHO} = "false"
342then
343 AC_MSG_ERROR([echo required but not found])
344fi
345
346AC_PATH_PROG(MKDIR,[mkdir],[false])
347if test ${MKDIR} = "false"
348then
349 AC_MSG_ERROR([mkdir required but not found])
350fi
351
352AC_PATH_PROG(DATE,[date],[false])
353if test ${DATE} = "false"
354then
355 AC_MSG_ERROR([date required but not found])
356fi
357
358AC_PATH_PROG(MV,[mv],[false])
359if test ${MV} = "false"
360then
361 AC_MSG_ERROR([mv required but not found])
362fi
363
364AC_PATH_PROG(DOT,[dot],[false])
365
366AC_PATH_PROG(ETAGS,[etags],[false])
367
John Criswell39827c82003-09-23 15:28:52 +0000368AC_PATH_PROG(PYTHON,[python],[false])
369if test ${PYTHON} = "false"
370then
John Criswell61095982003-09-23 20:46:32 +0000371 AC_MSG_WARN([python required but not found])
John Criswell39827c82003-09-23 15:28:52 +0000372fi
373
374AC_PATH_PROG(QMTEST,[qmtest],[false])
375if test ${QMTEST} = "false"
376then
John Criswell61095982003-09-23 20:46:32 +0000377 AC_MSG_WARN([qmtest required but not found])
John Criswell39827c82003-09-23 15:28:52 +0000378fi
John Criswellde00db22003-08-25 16:49:54 +0000379
380dnl Verify that the version of python available is high enough for qmtest
381pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
382pymajor=`echo $pyversion | cut -d. -f1`
383pyminor=`echo $pyversion | cut -d. -f2`
384
385if test "$pymajor" -ge "2"
386then
387 if test "$pymajor" -eq "2"
388 then
389 if test "$pyminor" -lt "2"
390 then
391 AC_MSG_ERROR([Python 2.2 or greater required])
392 fi
393 fi
394else
395 AC_MSG_ERROR([Python 2.2 or greater required])
396fi
John Criswell4ea390d2003-07-22 19:13:20 +0000397
398dnl Verify that the source directory is valid
399AC_CONFIG_SRCDIR(["Makefile.config.in"])
400
401dnl **************************************************************************
402dnl * Check for libraries.
403dnl **************************************************************************
404
405dnl libelf is for sparc only; we can ignore it if we don't have it
406AC_CHECK_LIB(elf, elf_begin)
407
408dnl dlopen() is required. If we don't find it, quit.
409AC_SEARCH_LIBS(dlopen,dl,,AC_MSG_ERROR([dlopen() required but not found]))
410
411dnl mallinfo is optional; the code can compile (minus features) without it
412AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1]))
413
414dnl
415dnl The math libraries are used by the test code, but not by the actual LLVM
416dnl code.
417dnl
418dnl AC_CHECK_LIB(m, cos)
419
420dnl **************************************************************************
421dnl * Checks for header files.
422dnl * Chances are, if the standard C or POSIX type header files are missing,
423dnl * then LLVM just isn't going to compile. However, it is possible that
424dnl * the necessary functions/macros will be included from other
425dnl * (non-standard and non-obvious) header files.
426dnl *
427dnl * So, we'll be gracious, give it a chance, and try to go on without
428dnl * them.
429dnl **************************************************************************
430AC_HEADER_STDC
431AC_HEADER_SYS_WAIT
432
433dnl Check for ANSI C/POSIX header files
434AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
435
436dnl Check for system specific header files
437AC_CHECK_HEADERS(malloc.h strings.h sys/mman.h sys/resource.h)
438
439dnl Check for header files associated with dlopen and friends
440AC_CHECK_HEADERS(dlfcn.h link.h)
441
442dnl **************************************************************************
443dnl * Checks for typedefs, structures, and compiler characteristics.
444dnl **************************************************************************
445
446dnl Check for const and inline keywords
447AC_C_CONST
448AC_C_INLINE
449
450dnl Check for machine endian-ness
451AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG]),AC_DEFINE(ENDIAN_LITTLE))
452
453dnl Check for types
454AC_TYPE_PID_T
455AC_TYPE_SIZE_T
456AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
457AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
458AC_HEADER_TIME
459AC_STRUCT_TM
460
461dnl Check for C++ extensions
462AC_CXX_HAVE_EXT_HASH_MAP
463AC_CXX_HAVE_EXT_HASH_SET
464AC_CXX_HAVE_EXT_SLIST
465AC_CXX_HAVE_STD_ITERATOR
466AC_CXX_HAVE_BI_ITERATOR
467AC_CXX_HAVE_FWD_ITERATOR
468
469dnl **************************************************************************
470dnl * Checks for library functions.
471dnl **************************************************************************
472AC_FUNC_ALLOCA
473AC_PROG_GCC_TRADITIONAL
474AC_FUNC_MEMCMP
475AC_FUNC_MMAP
476AC_FUNC_MMAP_FILE
477if test ${ac_cv_func_mmap_file} = "no"
478then
479 AC_MSG_ERROR([mmap() of files required but not found])
480fi
481AC_HEADER_MMAP_ANONYMOUS
482AC_TYPE_SIGNAL
483AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol)
484
485dnl
486dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
487dnl MAP_FIXED is only needed for Sparc
488dnl MAP_ANON is used for Sparc and BSD
489dnl Everyone should have MAP_PRIVATE
490dnl
491
492dnl Check for certain functions (even if we've already found them) so that we
493dnl can quit with an error if they are unavailable.
494dnl
495dnl As the code is made more portable (i.e. less reliant on these functions,
496dnl these checks should go away.
497AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
498AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
499
500dnl **************************************************************************
501dnl * Enable various compile-time options
502dnl **************************************************************************
John Criswell79a8f092003-07-22 20:59:52 +0000503
504dnl Purify Option
505AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
506if test ${enableval} = "no"
507then
508 AC_SUBST(ENABLE_PURIFY,[[]])
509else
510 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
511fi
512
513dnl Optimized Option
514AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
515if test ${enableval} = "no"
516then
517 AC_SUBST(ENABLE_OPTIMIZED,[[]])
518else
519 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
520fi
521
522dnl Spec Benchmarks
523AC_ARG_ENABLE(spec,AC_HELP_STRING([--enable-spec],[Compile SPEC benchmarks (default is NO)]),,enableval=no)
524if test ${enableval} = "no"
525then
526 AC_SUBST(USE_SPEC,[[]])
527else
528 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
529fi
530
531dnl Precompiled Bytecode Option
532AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
533if test ${enableval} = "no"
534then
535 AC_SUBST(UPB,[[]])
536else
537 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
538fi
539
540
541dnl LLC Diff Option
542AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
543if test ${enableval} = "no"
544then
545 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
546else
547 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
548fi
549
550dnl JIT Option
John Criswellc78022e2003-07-29 19:11:58 +0000551AC_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 +0000552
553if test ${enableval} = "no"
554then
555 AC_SUBST(JIT,[[]])
556else
John Criswellc78022e2003-07-29 19:11:58 +0000557 case $target in
558 *i*86*)
559 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
560 ;;
561 *sparc*)
562 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
563 ;;
564 *)
565 AC_SUBST(JIT,[[]])
566 ;;
567 esac
John Criswell79a8f092003-07-22 20:59:52 +0000568fi
John Criswell4ea390d2003-07-22 19:13:20 +0000569
570dnl **************************************************************************
571dnl * Set the location of various third-party software packages
572dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000573
574dnl Location of SPEC benchmarks
John Criswell4ea390d2003-07-22 19:13:20 +0000575AC_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 +0000576
577dnl Location of the LLVM C front end
John Criswell4ea390d2003-07-22 19:13:20 +0000578AC_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 +0000579
580dnl Location of the bytecode repository
John Criswell4ea390d2003-07-22 19:13:20 +0000581AC_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 +0000582
583dnl Location of PAPI
Chris Lattner1b9ddd52003-08-14 18:59:53 +0000584AC_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 +0000585
586dnl Location of the purify program
John Criswell4ea390d2003-07-22 19:13:20 +0000587AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
588
John Criswellc78022e2003-07-29 19:11:58 +0000589dnl **************************************************************************
John Criswellde00db22003-08-25 16:49:54 +0000590dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
591dnl **************************************************************************
592
593dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000594dnl * Create the output files
595dnl **************************************************************************
John Criswell4ea390d2003-07-22 19:13:20 +0000596AC_OUTPUT(Makefile.config)