blob: 1ae8c1cdd8284069b86276df23d4378673463776 [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 Criswell16301892003-10-16 01:49:07 +000033if test -d ${srcdir}/projects/sample
34then
35 AC_CONFIG_SUBDIRS(projects/sample)
36fi
37
John Criswell12399a12003-09-30 15:55:44 +000038if test -d ${srcdir}/projects/reopt
39then
40 AC_CONFIG_SUBDIRS(projects/reopt)
41fi
42
John Criswell559a6c12003-09-30 16:31:48 +000043if test -d ${srcdir}/projects/poolalloc
44then
45 AC_CONFIG_SUBDIRS(projects/poolalloc)
46fi
47
John Criswell4ea390d2003-07-22 19:13:20 +000048dnl Configure a header file
49AC_CONFIG_HEADERS(include/Config/config.h)
John Criswell2d533082003-09-06 14:46:19 +000050AC_CONFIG_MAKEFILE(Makefile)
51AC_CONFIG_MAKEFILE(Makefile.common)
52AC_CONFIG_MAKEFILE(Makefile.rules)
53AC_CONFIG_MAKEFILE(lib/Makefile)
54AC_CONFIG_MAKEFILE(lib/Analysis/Makefile)
55AC_CONFIG_MAKEFILE(lib/Analysis/DataStructure/Makefile)
56AC_CONFIG_MAKEFILE(lib/Analysis/IPA/Makefile)
57AC_CONFIG_MAKEFILE(lib/Analysis/LiveVar/Makefile)
58AC_CONFIG_MAKEFILE(lib/AsmParser/Makefile)
59AC_CONFIG_MAKEFILE(lib/Bytecode/Makefile)
60AC_CONFIG_MAKEFILE(lib/Bytecode/Reader/Makefile)
61AC_CONFIG_MAKEFILE(lib/Bytecode/Writer/Makefile)
62AC_CONFIG_MAKEFILE(lib/CWriter/Makefile)
63AC_CONFIG_MAKEFILE(lib/CodeGen/Makefile)
64AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSched/Makefile)
65AC_CONFIG_MAKEFILE(lib/CodeGen/InstrSelection/Makefile)
66AC_CONFIG_MAKEFILE(lib/CodeGen/ModuloScheduling/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000067AC_CONFIG_MAKEFILE(lib/CodeGen/RegAlloc/Makefile)
68AC_CONFIG_MAKEFILE(lib/CodeGen/SelectionDAG/Makefile)
69AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Makefile)
70AC_CONFIG_MAKEFILE(lib/ExecutionEngine/Interpreter/Makefile)
71AC_CONFIG_MAKEFILE(lib/ExecutionEngine/JIT/Makefile)
Chris Lattner5c866e12003-10-06 02:09:25 +000072AC_CONFIG_MAKEFILE(lib/Support/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000073AC_CONFIG_MAKEFILE(lib/Target/Makefile)
74AC_CONFIG_MAKEFILE(lib/Target/Sparc/Makefile)
75AC_CONFIG_MAKEFILE(lib/Target/X86/Makefile)
76AC_CONFIG_MAKEFILE(lib/Transforms/Makefile)
77AC_CONFIG_MAKEFILE(lib/Transforms/Hello/Makefile)
78AC_CONFIG_MAKEFILE(lib/Transforms/IPO/Makefile)
79AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/Makefile)
80AC_CONFIG_MAKEFILE(lib/Transforms/Instrumentation/ProfilePaths/Makefile)
81AC_CONFIG_MAKEFILE(lib/Transforms/Scalar/Makefile)
82AC_CONFIG_MAKEFILE(lib/Transforms/Utils/Makefile)
83AC_CONFIG_MAKEFILE(lib/VMCore/Makefile)
84AC_CONFIG_MAKEFILE(runtime/Makefile)
85AC_CONFIG_MAKEFILE(runtime/GCCLibraries/Makefile)
86AC_CONFIG_MAKEFILE(runtime/GCCLibraries/crtend/Makefile)
87AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libc/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000088AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libcurses/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000089AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libg/Makefile)
90AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libgcc/Makefile)
91AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libm/Makefile)
92AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libmalloc/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000093AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libtermcap/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000094AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libucb/Makefile)
Chris Lattnerdd2116d2003-09-10 15:13:21 +000095AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutempter/Makefile)
96AC_CONFIG_MAKEFILE(runtime/GCCLibraries/libutil/Makefile)
John Criswell2d533082003-09-06 14:46:19 +000097AC_CONFIG_MAKEFILE(runtime/libdummy/Makefile)
98AC_CONFIG_MAKEFILE(runtime/libtrace/Makefile)
Chris Lattner644ccc12003-10-28 19:17:11 +000099AC_CONFIG_MAKEFILE(runtime/libprofile/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000100AC_CONFIG_MAKEFILE(test/Makefile)
101AC_CONFIG_MAKEFILE(test/Makefile.tests)
John Criswellf424d742003-10-07 21:13:47 +0000102AC_CONFIG_MAKEFILE(test/QMTest/llvm.py)
103AC_CONFIG_MAKEFILE(test/QMTest/llvmdb.py)
John Criswell2d533082003-09-06 14:46:19 +0000104AC_CONFIG_MAKEFILE(test/Programs/Makefile)
105AC_CONFIG_MAKEFILE(test/Programs/Makefile.programs)
106AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.Makefile)
107AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.report)
108AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.report)
109AC_CONFIG_MAKEFILE(test/Programs/TEST.aa.report)
110AC_CONFIG_MAKEFILE(test/Programs/TEST.example.Makefile)
111AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.Makefile)
112AC_CONFIG_MAKEFILE(test/Programs/TEST.buildrepo.Makefile)
113AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.Makefile)
114AC_CONFIG_MAKEFILE(test/Programs/TEST.nightly.report)
115AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.Makefile)
116AC_CONFIG_MAKEFILE(test/Programs/TEST.jit.report)
117AC_CONFIG_MAKEFILE(test/Programs/TEST.typesafe.Makefile)
118AC_CONFIG_MAKEFILE(test/Programs/TEST.dsgraph.gnuplot)
119AC_CONFIG_MAKEFILE(test/Programs/TEST.micro.Makefile)
120AC_CONFIG_MAKEFILE(test/Programs/External/Makefile)
121AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile)
John Criswell27bb35e2003-09-11 18:04:00 +0000122AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/Makefile.spec)
John Criswell2d533082003-09-06 14:46:19 +0000123AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/Makefile)
John Criswell5ab73462003-10-09 15:44:28 +0000124AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/177.mesa/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000125AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/179.art/Makefile)
126AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/183.equake/Makefile)
127AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CFP2000/188.ammp/Makefile)
128AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/Makefile)
129AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/164.gzip/Makefile)
130AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/175.vpr/Makefile)
131AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/176.gcc/Makefile)
132AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/181.mcf/Makefile)
133AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/186.crafty/Makefile)
134AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/197.parser/Makefile)
John Criswell987e49c2003-10-10 01:11:54 +0000135AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/252.eon/Makefile)
136AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/253.perlbmk/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000137AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/254.gap/Makefile)
138AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/255.vortex/Makefile)
139AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/256.bzip2/Makefile)
140AC_CONFIG_MAKEFILE(test/Programs/External/SPEC/CINT2000/300.twolf/Makefile)
141AC_CONFIG_MAKEFILE(test/Programs/LLVMSource/Makefile)
142AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile)
143AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Makefile.multisrc)
John Criswell48e3cb92003-09-12 16:31:43 +0000144AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Makefile)
145AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/Burg/Makefile)
John Criswell39e83892003-09-12 16:36:17 +0000146AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/aha/Makefile)
147AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Applications/sgefa/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000148AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Makefile)
149AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Fhourstones/Makefile)
150AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/Makefile)
151AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/01-qbsort/Makefile)
152AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/03-testtrie/Makefile)
153AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/04-bisect/Makefile)
154AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/05-eks/Makefile)
155AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/08-main/Makefile)
156AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/09-vor/Makefile)
157AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/12-IOtest/Makefile)
158AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/15-trie/Makefile)
159AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/17-bintr/Makefile)
160AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/McCat/18-imp/Makefile)
161AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/Makefile)
162AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bh/Makefile)
163AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/bisort/Makefile)
164AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/em3d/Makefile)
165AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/health/Makefile)
166AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/mst/Makefile)
167AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/perimeter/Makefile)
168AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/power/Makefile)
169AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/treeadd/Makefile)
170AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/tsp/Makefile)
171AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Olden/voronoi/Makefile)
John Criswell39e83892003-09-12 16:36:17 +0000172AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/OptimizerEval/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000173AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/Makefile)
174AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/anagram/Makefile)
175AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/bc/Makefile)
176AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ft/Makefile)
177AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/ks/Makefile)
178AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/Ptrdist/yacr2/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000179AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/llubenchmark/Makefile)
John Criswell48e3cb92003-09-12 16:31:43 +0000180AC_CONFIG_MAKEFILE(test/Programs/MultiSource/Benchmarks/sim/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000181AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile)
182AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Makefile.singlesrc)
John Criswellffaaf3b2003-09-10 18:38:44 +0000183AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Gizmos/Makefile)
184AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Makefile)
185AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Dhrystone/Makefile)
186AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Shootout/Makefile)
187AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Stanford/Makefile)
188AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Benchmarks/Misc/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000189AC_CONFIG_MAKEFILE(test/Programs/SingleSource/CustomChecked/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000190AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/Makefile)
John Criswell0afe8252003-09-11 20:53:48 +0000191AC_CONFIG_MAKEFILE(test/Programs/SingleSource/UnitTests/SetjmpLongjmp/Makefile)
John Criswell67181ca2003-09-26 14:53:17 +0000192AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/Makefile)
John Criswell68886d42003-09-26 19:51:42 +0000193AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C/Makefile)
194AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/Makefile)
John Criswellc66bbd52003-09-29 21:35:32 +0000195AC_CONFIG_MAKEFILE(test/Programs/SingleSource/Regression/C++/EH/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000196AC_CONFIG_MAKEFILE(tools/Makefile)
197AC_CONFIG_MAKEFILE(tools/analyze/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000198AC_CONFIG_MAKEFILE(tools/bugpoint/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000199AC_CONFIG_MAKEFILE(tools/extract/Makefile)
200AC_CONFIG_MAKEFILE(tools/gccas/Makefile)
201AC_CONFIG_MAKEFILE(tools/gccld/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000202AC_CONFIG_MAKEFILE(tools/llc/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000203AC_CONFIG_MAKEFILE(tools/llee/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000204AC_CONFIG_MAKEFILE(tools/lli/Makefile)
Chris Lattnerdcf04902003-09-13 02:35:56 +0000205AC_CONFIG_MAKEFILE(tools/llvm-ar/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000206AC_CONFIG_MAKEFILE(tools/llvm-as/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000207AC_CONFIG_MAKEFILE(tools/llvm-dis/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000208AC_CONFIG_MAKEFILE(tools/llvm-link/Makefile)
Misha Brukman4d08d2b2003-10-16 16:12:04 +0000209AC_CONFIG_MAKEFILE(tools/llvm-nm/Makefile)
Chris Lattner644ccc12003-10-28 19:17:11 +0000210AC_CONFIG_MAKEFILE(tools/llvm-prof/Makefile)
Misha Brukmanaad65f62003-09-16 15:22:55 +0000211AC_CONFIG_MAKEFILE(tools/opt/Makefile)
Chris Lattner5c866e12003-10-06 02:09:25 +0000212AC_CONFIG_MAKEFILE(utils/Makefile)
213AC_CONFIG_MAKEFILE(utils/Burg/Makefile)
214AC_CONFIG_MAKEFILE(utils/Burg/Doc/Makefile)
215AC_CONFIG_MAKEFILE(utils/TableGen/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000216AC_CONFIG_MAKEFILE(projects/Makefile)
John Criswell2d533082003-09-06 14:46:19 +0000217AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile)
218AC_CONFIG_MAKEFILE(projects/ModuleMaker/Makefile.common)
219AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/Makefile)
220AC_CONFIG_MAKEFILE(projects/ModuleMaker/tools/ModuleMaker/Makefile)
John Criswell4ea390d2003-07-22 19:13:20 +0000221
222dnl **************************************************************************
223dnl * Determine which system we are building on
224dnl **************************************************************************
225
226dnl Check the install program (needs to be done before canonical stuff)
227AC_PROG_INSTALL
228
229dnl Check which host for which we're compiling. This will tell us which LLVM
230dnl compiler will be used for compiling SSA into object code.
231AC_CANONICAL_TARGET
232
233dnl
234dnl Now, for some of our own magic:
235dnl We will use the build machine information to set some variables.
236dnl
237case $build in
238 *i*86*) AC_SUBST(OS,[Linux])
John Criswell4ea390d2003-07-22 19:13:20 +0000239 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/x86/llvm-gcc/])
240 ;;
241
242 *sparc*) AC_SUBST(OS,[SunOS])
243 AC_SUBST(LLVMGCCDIR,[/home/vadve/lattner/local/sparc/llvm-gcc/])
244 ;;
245
246 *) AC_SUBST(OS,[Unknown])
247 ;;
248esac
249
250dnl
251dnl If we are targetting a Sparc machine running Solaris, pretend that it is
252dnl V9, since that is all that we support at the moment, and autoconf will only
253dnl tell us we're a sparc.
254dnl
255case $target in
256 *sparc*solaris*) AC_SUBST(target,[[sparcv9-sun-solaris2.8]])
257 ;;
258esac
259
260dnl
261dnl Determine what our target architecture is and configure accordingly.
262dnl This will allow Makefiles to make a distinction between the hardware and
263dnl the OS.
264dnl
265case $target in
266 *i*86*) AC_SUBST(ARCH,[x86])
267 ;;
268 *sparc*solaris*) AC_SUBST(ARCH,[Sparc])
269 ;;
270esac
271
272dnl **************************************************************************
273dnl * Check for programs.
274dnl **************************************************************************
275
276dnl Check for compilation tools
277AC_PROG_CXX
278AC_PROG_CC(gcc)
279AC_PROG_CPP
280
281dnl Ensure that compilation tools are GCC; we use GCC specific extensions
282if test "$GCC" != "yes"
283then
284 AC_MSG_ERROR([gcc required but not found])
285fi
286
287if test "$GXX" != "yes"
288then
289 AC_MSG_ERROR([g++ required but not found])
290fi
291
John Criswellde00db22003-08-25 16:49:54 +0000292dnl Verify that GCC is version 3.0 or higher
293gccmajor=`$CC --version | head -n 1 | awk '{print $NF;}' | cut -d. -f1`
294if test "$gccmajor" -lt "3"
295then
296 AC_MSG_ERROR([gcc 3.x required])
297fi
298
John Criswell4ea390d2003-07-22 19:13:20 +0000299dnl Check for GNU Make. We use its extensions to, so don't build without it
300CHECK_GNU_MAKE
301if test -z "$_cv_gnu_make_command"
302then
303 AC_MSG_ERROR([GNU Make required but not found])
304fi
305
306dnl Check for compiler-compiler tools (reminds me of Little Caesar's Pizza)
307AC_PROG_FLEX
308AC_PROG_BISON
309
310dnl Check for libtool
311AC_PROG_LIBTOOL
312
313dnl Check for our special programs
John Criswell39827c82003-09-23 15:28:52 +0000314AC_PATH_PROG(RPWD,[pwd],[false])
315if test ${RPWD} = "false"
316then
317 AC_MSG_ERROR([pwd required but not found])
318fi
319
320AC_PATH_PROG(AR,[ar],[false])
321if test ${AR} = "false"
322then
323 AC_MSG_ERROR([ar required but not found])
324fi
325
326AC_PATH_PROG(SED,[sed],[false])
327if test ${SED} = "false"
328then
329 AC_MSG_ERROR([sed required but not found])
330fi
331
332AC_PATH_PROG(RM,[rm],[false])
333if test ${RM} = "false"
334then
335 AC_MSG_ERROR([rm required but not found])
336fi
337
338AC_PATH_PROG(ECHO,[echo],[false])
339if test ${ECHO} = "false"
340then
341 AC_MSG_ERROR([echo required but not found])
342fi
343
344AC_PATH_PROG(MKDIR,[mkdir],[false])
345if test ${MKDIR} = "false"
346then
347 AC_MSG_ERROR([mkdir required but not found])
348fi
349
350AC_PATH_PROG(DATE,[date],[false])
351if test ${DATE} = "false"
352then
353 AC_MSG_ERROR([date required but not found])
354fi
355
356AC_PATH_PROG(MV,[mv],[false])
357if test ${MV} = "false"
358then
359 AC_MSG_ERROR([mv required but not found])
360fi
361
362AC_PATH_PROG(DOT,[dot],[false])
363
364AC_PATH_PROG(ETAGS,[etags],[false])
365
John Criswell39827c82003-09-23 15:28:52 +0000366AC_PATH_PROG(PYTHON,[python],[false])
367if test ${PYTHON} = "false"
368then
John Criswell61095982003-09-23 20:46:32 +0000369 AC_MSG_WARN([python required but not found])
John Criswell39827c82003-09-23 15:28:52 +0000370fi
371
372AC_PATH_PROG(QMTEST,[qmtest],[false])
373if test ${QMTEST} = "false"
374then
John Criswell61095982003-09-23 20:46:32 +0000375 AC_MSG_WARN([qmtest required but not found])
John Criswell39827c82003-09-23 15:28:52 +0000376fi
John Criswellde00db22003-08-25 16:49:54 +0000377
378dnl Verify that the version of python available is high enough for qmtest
379pyversion=`$PYTHON -V 2>&1 | cut -d\ -f2`
380pymajor=`echo $pyversion | cut -d. -f1`
381pyminor=`echo $pyversion | cut -d. -f2`
382
383if test "$pymajor" -ge "2"
384then
385 if test "$pymajor" -eq "2"
386 then
387 if test "$pyminor" -lt "2"
388 then
389 AC_MSG_ERROR([Python 2.2 or greater required])
390 fi
391 fi
392else
393 AC_MSG_ERROR([Python 2.2 or greater required])
394fi
John Criswell4ea390d2003-07-22 19:13:20 +0000395
396dnl Verify that the source directory is valid
397AC_CONFIG_SRCDIR(["Makefile.config.in"])
398
399dnl **************************************************************************
400dnl * Check for libraries.
401dnl **************************************************************************
402
403dnl libelf is for sparc only; we can ignore it if we don't have it
404AC_CHECK_LIB(elf, elf_begin)
405
Brian Gaeke4c423782003-10-07 05:03:36 +0000406dnl dlopen() is required for plugin support.
Brian Gaekea25d7ca2003-10-08 21:44:07 +0000407AC_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 Criswell4ea390d2003-07-22 19:13:20 +0000408
409dnl mallinfo is optional; the code can compile (minus features) without it
Brian Gaekea25d7ca2003-10-08 21:44:07 +0000410AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],[Define if mallinfo() is available on this platform.]))
John Criswell4ea390d2003-07-22 19:13:20 +0000411
412dnl
413dnl The math libraries are used by the test code, but not by the actual LLVM
414dnl code.
415dnl
416dnl AC_CHECK_LIB(m, cos)
417
418dnl **************************************************************************
419dnl * Checks for header files.
420dnl * Chances are, if the standard C or POSIX type header files are missing,
421dnl * then LLVM just isn't going to compile. However, it is possible that
422dnl * the necessary functions/macros will be included from other
423dnl * (non-standard and non-obvious) header files.
424dnl *
425dnl * So, we'll be gracious, give it a chance, and try to go on without
426dnl * them.
427dnl **************************************************************************
428AC_HEADER_STDC
429AC_HEADER_SYS_WAIT
430
431dnl Check for ANSI C/POSIX header files
432AC_CHECK_HEADERS(assert.h fcntl.h limits.h sys/time.h unistd.h errno.h signal.h math.h)
433
434dnl Check for system specific header files
Brian Gaekea493aa32003-10-22 17:52:56 +0000435AC_CHECK_HEADERS(malloc.h sys/mman.h sys/resource.h)
John Criswell4ea390d2003-07-22 19:13:20 +0000436
437dnl Check for header files associated with dlopen and friends
438AC_CHECK_HEADERS(dlfcn.h link.h)
439
440dnl **************************************************************************
441dnl * Checks for typedefs, structures, and compiler characteristics.
442dnl **************************************************************************
443
444dnl Check for const and inline keywords
445AC_C_CONST
446AC_C_INLINE
447
448dnl Check for machine endian-ness
Brian Gaekea25d7ca2003-10-08 21:44:07 +0000449AC_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 Criswell4ea390d2003-07-22 19:13:20 +0000450
451dnl Check for types
452AC_TYPE_PID_T
453AC_TYPE_SIZE_T
454AC_CHECK_TYPES([int64_t],,AC_MSG_ERROR([Type int64_t required but not found]))
455AC_CHECK_TYPES([uint64_t],,AC_MSG_ERROR([Type uint64_t required but not found]))
456AC_HEADER_TIME
457AC_STRUCT_TM
458
John Criswella0137d32003-10-13 16:22:01 +0000459dnl Check for various C features
460AC_C_PRINTF_A
461
John Criswell4ea390d2003-07-22 19:13:20 +0000462dnl Check for C++ extensions
Brian Gaeke278a4ac2003-11-10 03:06:09 +0000463AC_CXX_HAVE_HASH_MAP
464AC_CXX_HAVE_HASH_SET
John Criswell4ea390d2003-07-22 19:13:20 +0000465AC_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 Gaeke16edea02003-10-10 17:04:43 +0000484AC_CHECK_FUNCS(getcwd gettimeofday strcspn strdup strerror strspn strstr strtod strtol strtoq strtoll)
John Criswell4ea390d2003-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 Criswell79a8f092003-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
John Criswell55126592003-10-07 21:57:39 +0000524AC_ARG_ENABLE(spec2000,AC_HELP_STRING([--enable-spec],[Compile SPEC 2000 benchmarks (default is NO)]),,enableval=no)
John Criswell79a8f092003-07-22 20:59:52 +0000525if test ${enableval} = "no"
526then
John Criswell55126592003-10-07 21:57:39 +0000527 if test -d /home/vadve/shared/benchmarks/speccpu2000/benchspec
528 then
529 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
530 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
531 else
532 AC_SUBST(USE_SPEC,[[]])
533 AC_SUBST(SPEC_ROOT,[])
534 fi
John Criswell79a8f092003-07-22 20:59:52 +0000535else
John Criswell55126592003-10-07 21:57:39 +0000536 if test ${enableval} = ""
537 then
538 AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec])
539 else
540 AC_SUBST(SPEC_ROOT,[${enableval}])
541 fi
John Criswell79a8f092003-07-22 20:59:52 +0000542 AC_SUBST(USE_SPEC,[[USE_SPEC=1]])
543fi
544
545dnl Precompiled Bytecode Option
546AC_ARG_ENABLE(precompiled_bytecode,AC_HELP_STRING([--enable-precompiled_bytecode],[Use pre-compiled bytecode (default is NO)]),,enableval=no)
547if test ${enableval} = "no"
548then
549 AC_SUBST(UPB,[[]])
550else
551 AC_SUBST(UPB,[[USE_PRECOMPILED_BYTECODE=1]])
552fi
553
554
555dnl LLC Diff Option
556AC_ARG_ENABLE(llc_diffs,AC_HELP_STRING([--enable-llc_diffs],[Enable LLC Diffs when testing (default is YES)]),,enableval=yes)
557if test ${enableval} = "no"
558then
559 AC_SUBST(DISABLE_LLC_DIFFS,[DISABLE_LLC_DIFFS:=1])
560else
561 AC_SUBST(DISABLE_LLC_DIFFS,[[]])
562fi
563
564dnl JIT Option
John Criswellc78022e2003-07-29 19:11:58 +0000565AC_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 +0000566
567if test ${enableval} = "no"
568then
569 AC_SUBST(JIT,[[]])
570else
John Criswellc78022e2003-07-29 19:11:58 +0000571 case $target in
572 *i*86*)
573 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
574 ;;
575 *sparc*)
576 AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
577 ;;
578 *)
579 AC_SUBST(JIT,[[]])
580 ;;
581 esac
John Criswell79a8f092003-07-22 20:59:52 +0000582fi
John Criswell4ea390d2003-07-22 19:13:20 +0000583
584dnl **************************************************************************
585dnl * Set the location of various third-party software packages
586dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000587
John Criswellc78022e2003-07-29 19:11:58 +0000588dnl Location of the LLVM C front end
John Criswell4ea390d2003-07-22 19:13:20 +0000589AC_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 +0000590
591dnl Location of the bytecode repository
John Criswell4ea390d2003-07-22 19:13:20 +0000592AC_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 +0000593
594dnl Location of PAPI
Chris Lattner1b9ddd52003-08-14 18:59:53 +0000595AC_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 +0000596
597dnl Location of the purify program
John Criswell4ea390d2003-07-22 19:13:20 +0000598AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
599
John Criswellc78022e2003-07-29 19:11:58 +0000600dnl **************************************************************************
John Criswellde00db22003-08-25 16:49:54 +0000601dnl * Configure other software packages (via AC_CONFIG_SUBDIRS)
602dnl **************************************************************************
603
604dnl **************************************************************************
John Criswellc78022e2003-07-29 19:11:58 +0000605dnl * Create the output files
606dnl **************************************************************************
John Criswell4ea390d2003-07-22 19:13:20 +0000607AC_OUTPUT(Makefile.config)