blob: 650ac10501a0f561d5bd0d68a1a6c9e4bde64020 [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 Criswelle84478a2003-09-16 02:12:45 +000096AC_CONFIG_MAKEFILE(test/QMTestDB/QMTest/llvm.py)
John Criswell2970d522003-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 Criswell7e0a65d2003-09-11 18:04:00 +0000115AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2970d522003-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 Criswell1868b4e2003-09-12 16:31:43 +0000134AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
135AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
John Criswell3487a862003-09-12 16:36:17 +0000136AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
137AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
John Criswell1868b4e2003-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 Criswell3487a862003-09-12 16:36:17 +0000162AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
John Criswell1868b4e2003-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 Criswell1868b4e2003-09-12 16:31:43 +0000169AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
John Criswell1868b4e2003-09-12 16:31:43 +0000170AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
John Criswell2970d522003-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 Criswell2970d522003-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 Criswell6f7d8a22003-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 Criswell2970d522003-09-06 14:46:19 +0000185AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000186AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
John Criswell3c172b42003-09-11 20:53:48 +0000187AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
John Criswell4c157a42003-09-26 14:53:17 +0000188AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
John Criswellf7dc0f42003-09-26 19:51:42 +0000189AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
190AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
John Criswell6780a6e2003-09-29 21:35:32 +0000191AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000192AC_CONFIG_MAKEFILE(tools/Makefile)
193AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000194AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000195AC_CONFIG_MAKEFILE(tools/extract/Makefile)
196AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
197AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000198AC_CONFIG_MAKEFILE(tools/llc/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000199AC_CONFIG_MAKEFILE(tools/llee/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000200AC_CONFIG_MAKEFILE(tools/lli/Makefile)
Chris Lattner4777f032003-09-13 02:35:56 +0000201AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000202AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
John Criswell2970d522003-09-06 14:46:19 +0000203AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
Misha Brukman145e1762003-09-16 15:22:55 +0000204AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
205AC_CONFIG_MAKEFILE(tools/opt/Makefile)
Chris Lattner672edbc2003-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 Criswell2970d522003-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 Criswell7a3334d2003-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 Criswell7a3334d2003-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 Criswell6a47a972003-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 Criswell7a3334d2003-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 Criswell31494482003-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 Criswell31494482003-09-23 15:28:52 +0000368AC_PATH_PROG(PYTHON,[python],[false])
369if test ${PYTHON} = "false"
370then
John Criswell8d5d13d2003-09-23 20:46:32 +0000371 AC_MSG_WARN([python required but not found])
John Criswell31494482003-09-23 15:28:52 +0000372fi
373
374AC_PATH_PROG(QMTEST,[qmtest],[false])
375if test ${QMTEST} = "false"
376then
John Criswell8d5d13d2003-09-23 20:46:32 +0000377 AC_MSG_WARN([qmtest required but not found])
John Criswell31494482003-09-23 15:28:52 +0000378fi
John Criswell6a47a972003-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 Criswell7a3334d2003-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
Brian Gaeke25f2a372003-10-07 05:03:36 +0000408dnl dlopen() is required for plugin support.
409AC_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 +0000410
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
Brian Gaeke133bb522003-10-07 03:56:29 +0000483AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
John Criswell7a3334d2003-07-22 19:13:20 +0000484
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 Criswell5ec24d82003-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 Criswell4f376922003-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 Criswell5ec24d82003-07-22 20:59:52 +0000552
553if test ${enableval} = "no"
554then
555 AC_SUBST(JIT,[[]])
556else
John Criswell4f376922003-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 Criswell5ec24d82003-07-22 20:59:52 +0000568fi
John Criswell7a3334d2003-07-22 19:13:20 +0000569
570dnl **************************************************************************
571dnl * Set the location of various third-party software packages
572dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000573
574dnl Location of SPEC benchmarks
John Criswell7a3334d2003-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 Criswell4f376922003-07-29 19:11:58 +0000576
577dnl Location of the LLVM C front end
John Criswell7a3334d2003-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 Criswell4f376922003-07-29 19:11:58 +0000579
580dnl Location of the bytecode repository
John Criswell7a3334d2003-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 Criswell4f376922003-07-29 19:11:58 +0000582
583dnl Location of PAPI
Chris Lattner00645502003-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 Criswell4f376922003-07-29 19:11:58 +0000585
586dnl Location of the purify program
John Criswell7a3334d2003-07-22 19:13:20 +0000587AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
588
John Criswell4f376922003-07-29 19:11:58 +0000589dnl **************************************************************************
John Criswell6a47a972003-08-25 16:49:54 +0000590dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
591dnl **************************************************************************
592
593dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000594dnl * Create the output files
595dnl **************************************************************************
John Criswell7a3334d2003-07-22 19:13:20 +0000596AC_OUTPUT(Makefile.config)