blob: c57d62dda44b4f8c00f8211a2caa5f1c7e67ba56 [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.
Brian Gaeked7a702d2003-10-08 21:44:07 +0000410AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE_DLOPEN],[1],[Define if dlopen() is available on this platform.]),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
Brian Gaeked7a702d2003-10-08 21:44:07 +0000413AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],[Define if mallinfo() is available on this platform.]))
John Criswell7a3334d2003-07-22 19:13:20 +0000414
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
Brian Gaeked7a702d2003-10-08 21:44:07 +0000452AC_C_BIGENDIAN(AC_DEFINE([ENDIAN_BIG],[],[Define if the machine is Big-Endian]),AC_DEFINE([ENDIAN_LITTLE],[],[Define if the machine is Little-Endian]))
John Criswell7a3334d2003-07-22 19:13:20 +0000453
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 Gaeked7a702d2003-10-08 21:44:07 +0000484AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll strsignal)
485AC_CHECK_DECLS([sys_siglist],[],[],[
486#if HAVE_SIGNAL_H
487#include <signal.h>
488#endif])
John Criswell7a3334d2003-07-22 19:13:20 +0000489
490dnl
491dnl Need to check mmap for MAP_PRIVATE, MAP_ANONYMOUS, MAP_ANON, MAP_FIXED
492dnl MAP_FIXED is only needed for Sparc
493dnl MAP_ANON is used for Sparc and BSD
494dnl Everyone should have MAP_PRIVATE
495dnl
496
497dnl Check for certain functions (even if we've already found them) so that we
498dnl can quit with an error if they are unavailable.
499dnl
500dnl As the code is made more portable (i.e. less reliant on these functions,
501dnl these checks should go away.
502AC_CHECK_FUNC(mmap,,AC_MSG_ERROR([Function mmap() required but not found]))
503AC_CHECK_FUNC(mprotect,,AC_MSG_ERROR([Function mprotect() required but not found]))
504
505dnl **************************************************************************
506dnl * Enable various compile-time options
507dnl **************************************************************************
John Criswell5ec24d82003-07-22 20:59:52 +0000508
509dnl Purify Option
510AC_ARG_ENABLE(purify,AC_HELP_STRING([--enable-purify],[Compile with purify (default is NO)]),,enableval="no")
511if test ${enableval} = "no"
512then
513 AC_SUBST(ENABLE_PURIFY,[[]])
514else
515 AC_SUBST(ENABLE_PURIFY,[[ENABLE_PURIFY=1]])
516fi
517
518dnl Optimized Option
519AC_ARG_ENABLE(optimized,AC_HELP_STRING([--enable-optimized],[Compile with optimizations enabled (default is NO)]),,enableval=no)
520if test ${enableval} = "no"
521then
522 AC_SUBST(ENABLE_OPTIMIZED,[[]])
523else
524 AC_SUBST(ENABLE_OPTIMIZED,[[ENABLE_OPTIMIZED=1]])
525fi
526
527dnl Spec Benchmarks
John Criswellabd3f802003-10-07 21:57:39 +0000528AC_ARG_ENABLE(spec2000,AC_HELP_STRING([--enable-spec],[Compile SPEC 2000 benchmarks (default is NO)]),,enableval=no)
John Criswell5ec24d82003-07-22 20:59:52 +0000529if test ${enableval} = "no"
530then
John Criswellabd3f802003-10-07 21:57:39 +0000531 if test -d /home/vadve/shared/benchmarks/speccpu2000/benchspec
532 then
533 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
534 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
535 else
536 AC_SUBST(USE_SPEC,[[]])
537 AC_SUBST(SPEC_ROOT,[])
538 fi
John Criswell5ec24d82003-07-22 20:59:52 +0000539else
John Criswellabd3f802003-10-07 21:57:39 +0000540 if test ${enableval} = ""
541 then
542 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
543 else
544 AC_SUBST(SPEC_ROOT,[${enableval}])
545 fi
John Criswell5ec24d82003-07-22 20:59:52 +0000546 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
547fi
548
549dnl Precompiled Bytecode Option
550AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
551if test ${enableval} = "no"
552then
553 AC_SUBST(UPB,[[]])
554else
555 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
556fi
557
558
559dnl LLC Diff Option
560AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
561if test ${enableval} = "no"
562then
563 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
564else
565 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
566fi
567
568dnl JIT Option
John Criswell4f376922003-07-29 19:11:58 +0000569AC_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 +0000570
571if test ${enableval} = "no"
572then
573 AC_SUBST(JIT,[[]])
574else
John Criswell4f376922003-07-29 19:11:58 +0000575 case $target in
576 *i*86*)
577 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
578 ;;
579 *sparc*)
580 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
581 ;;
582 *)
583 AC_SUBST(JIT,[[]])
584 ;;
585 esac
John Criswell5ec24d82003-07-22 20:59:52 +0000586fi
John Criswell7a3334d2003-07-22 19:13:20 +0000587
588dnl **************************************************************************
589dnl * Set the location of various third-party software packages
590dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000591
John Criswell4f376922003-07-29 19:11:58 +0000592dnl Location of the LLVM C front end
John Criswell7a3334d2003-07-22 19:13:20 +0000593AC_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 +0000594
595dnl Location of the bytecode repository
John Criswell7a3334d2003-07-22 19:13:20 +0000596AC_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 +0000597
598dnl Location of PAPI
Chris Lattner00645502003-08-14 18:59:53 +0000599AC_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 +0000600
601dnl Location of the purify program
John Criswell7a3334d2003-07-22 19:13:20 +0000602AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
603
John Criswell4f376922003-07-29 19:11:58 +0000604dnl **************************************************************************
John Criswell6a47a972003-08-25 16:49:54 +0000605dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
606dnl **************************************************************************
607
608dnl **************************************************************************
John Criswell4f376922003-07-29 19:11:58 +0000609dnl * Create the output files
610dnl **************************************************************************
John Criswell7a3334d2003-07-22 19:13:20 +0000611AC_OUTPUT(Makefile.config)