* Updated to jitcache-arm-x86 branch d4f6023b26c5+d1b5b1c106ac
[cacao.git] / configure.ac
1 dnl configure.ac
2 dnl
3 dnl Copyright (C) 1996-2005, 2006, 2007, 2008
4 dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5 dnl 
6 dnl This file is part of CACAO.
7 dnl 
8 dnl This program is free software; you can redistribute it and/or
9 dnl modify it under the terms of the GNU General Public License as
10 dnl published by the Free Software Foundation; either version 2, or (at
11 dnl your option) any later version.
12 dnl 
13 dnl This program is distributed in the hope that it will be useful, but
14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 dnl General Public License for more details.
17 dnl 
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; if not, write to the Free Software
20 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 dnl 02110-1301, USA.
22
23 dnl Process this file with autoconf to produce a configure script.
24
25
26 AC_INIT(cacao, 1.1.0pre, cacao@cacaojvm.org)
27 AC_CONFIG_SRCDIR(src/cacao/cacao.cpp)
28 AC_CANONICAL_HOST
29 AC_PREREQ(2.59)
30 AM_INIT_AUTOMAKE([1.9.0 dist-bzip2 tar-ustar])
31 AM_MAINTAINER_MODE
32
33 AM_CONFIG_HEADER([config.h])
34
35 AC_PREFIX_DEFAULT(/usr/local/cacao)
36
37
38 dnl Host CPU type.
39 case "$host_cpu" in
40 alpha | alphaev56 | alphapca56 )
41     ARCH_DIR="alpha"
42     ARCH_FLAGS="-mieee -D__ALPHA__"
43     JAVA_ARCH="alpha"
44     ;;
45
46 arm | armv4 | armv4tl | armv5b | armv5l | armv5tel | armv5tejl )
47     ARCH_DIR="arm"
48     ARCH_FLAGS="-D__ARM__"
49     JAVA_ARCH="arm"
50     ;;
51
52 hppa2.0 )
53     ARCH_DIR="parisc"
54     ARCH_FLAGS="-D__PARISC__"
55     JAVA_ARCH="hppa"
56     ;;
57
58 i386 | i486 | i586 | i686 )
59     ARCH_DIR="i386"
60     ARCH_FLAGS="-m32 -D__I386__"
61     JAVA_ARCH="i386"
62     ;;
63
64 m68k )
65     ARCH_DIR="m68k"
66     ARCH_FLAGS="-D__M68K__"
67     JAVA_ARCH="m68k"
68     ;;
69
70 mips | mipsel )
71     ARCH_DIR="mips"
72     ARCH_FLAGS="-D__MIPS__"
73     dnl Is this correct for mipsel?
74     JAVA_ARCH="mips"
75     ;;
76
77 powerpc )
78     ARCH_DIR="powerpc"
79     ARCH_FLAGS="-m32 -D__POWERPC__"
80     JAVA_ARCH="ppc"
81     ;;
82
83 powerpc64 )
84     ARCH_DIR="powerpc64"
85     ARCH_FLAGS="-m64 -D__POWERPC64__"
86     JAVA_ARCH="ppc64"
87     ;;
88
89 s390 )
90     ARCH_DIR="s390"
91     ARCH_FLAGS="-D__S390__"
92     JAVA_ARCH="s390"
93     ;;
94
95 sparc | sparc64 )
96     ARCH_DIR="sparc64"
97     ARCH_FLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
98     dnl Is this correct for 64-bits?
99     JAVA_ARCH="sparc"
100     ;;
101
102 x86_64 )
103     ARCH_DIR="x86_64"
104     ARCH_FLAGS="-m64 -D__X86_64__"
105     JAVA_ARCH="amd64"
106     ;;
107
108 xdspcore )
109     ARCH_DIR="xdspcore"
110     ENABLE_STATICVM="yes"
111     ARCH_FLAGS="-D__XDSPCORE__"
112     USE_SCHEDULER="1"
113     ;;
114
115 * )
116     AC_MSG_ERROR([$host_cpu systems are currently not supported.])
117     ;;
118 esac
119
120
121 dnl Host operating system type.
122 case "$host_os" in
123 *cygwin* )
124     OS_DIR="cygwin"
125     OS_FLAGS="-D__WINDOWS__ -D__CYGWIN__"
126     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
127     ;;
128
129 *darwin* )
130     OS_DIR="darwin"
131     OS_FLAGS="-D__DARWIN__"
132     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
133     ;;
134
135 dnl Must be BEFORE *freebsd*.
136 *kfreebsd*-gnu)
137     OS_DIR="freebsd"
138     OS_FLAGS="-D__FREEBSD__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
139     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
140     ;;
141
142 *freebsd* )
143     OS_DIR="freebsd"
144     OS_FLAGS="-D__FREEBSD__ -D_XOPEN_SOURCE_EXTENDED"
145     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
146     ;;
147
148 *irix* )
149     OS_DIR="irix"
150     OS_FLAGS="-D__IRIX__"
151     INTRP_CFLAGS="$ARCH_FLAGS $OS_FLAGS"
152     ;;
153
154 dnl Must be BEFORE *linux*.
155 *uclinux | *elf )
156     OS_DIR="uclinux"
157     OS_FLAGS="-D__LINUX__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
158     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
159     ;;
160
161 *linux* | *Linux* )
162     OS_DIR="linux"
163     OS_FLAGS="-D__LINUX__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
164     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
165     ;;
166
167 *netbsd* )
168     OS_DIR="netbsd"
169     OS_FLAGS="-D__NETBSD__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
170     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
171     ;;
172
173 *solaris* )
174     OS_DIR="solaris"
175     dnl On solaris the architecture defines 'sparc', 'sun', 'unix' are
176     dnl not set when cpp is called with -std=c99, therefore we add them
177     dnl here.
178     OS_FLAGS="-D__SOLARIS__ -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_BSD_SOURCE"
179     CC_FLAGS="-D_XOPEN_SOURCE=600"
180     CXX_FLAGS="-D_XOPEN_SOURCE=500"
181     INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
182     ;;
183
184 * )
185     AC_MSG_ERROR([$host_os operating systems are currently not supported.])
186     ;;
187 esac
188
189
190 dnl Set optimization and debugging for all architectures and systems.
191 dnl NOTE: Setting the CFLAGS/CXXFLAGS only works before calling AC_PROG_CC/AC_PROG_CXX.
192 if test x"$CFLAGS" = "x"; then
193     OPT_CFLAGS="-g -O0"
194 else
195     OPT_CFLAGS=$CFLAGS
196 fi
197
198 if test x"$CXXFLAGS" = "x"; then
199     OPT_CXXFLAGS="-g -O0"
200 else
201     OPT_CXXFLAGS=$CXXFLAGS
202 fi
203
204 dnl Check for compiler.
205 AC_PROG_CC
206 AC_PROG_CXX
207
208 dnl Check compiler vendor.
209 AX_COMPILER_VENDOR
210
211 dnl Set compiler flags depending on the compiler vendor.
212 case "$ax_cv_c_compiler_vendor" in
213 gnu )
214     CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long $CC_FLAGS"
215     CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long $CXX_FLAGS"
216     ;;
217
218 sgi )
219     CC_FLAGS="-c99 $CC_FLAGS"
220     CXX_FLAGS="$CXX_FLAGS"
221     ;;
222
223 sun )
224     CC_FLAGS="-xc99 $CC_FLAGS"
225     CXX_FLAGS="$CXX_FLAGS"
226     ;;
227
228 * )    
229     AC_MSG_ERROR([$ax_cv_c_compiler_vendor compilers are currently not supported.])
230     ;;
231 esac
232
233 dnl Temporary set the CFLAGS for configure tests (e.g. inline keyword)
234 dnl we set it properly at the end of this file.
235 CFLAGS="$OPT_CFLAGS $ARCH_FLAGS $OS_FLAGS $CC_FLAGS"
236 CXXFLAGS="$OPT_CXXFLAGS $ARCH_FLAGS $OS_FLAGS $CXX_FLAGS"
237
238 dnl set interpreter flags
239 AC_SUBST(INTRP_CFLAGS)
240
241 dnl define and substitute some architecture specific variables
242 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
243 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
244 AC_SUBST(ARCH_DIR)
245 AC_SUBST(JAVA_ARCH)
246 AC_SUBST(OS_DIR)
247 AC_SUBST(USE_SCHEDULER)
248
249 dnl Checks for programs.
250 AM_PROG_AS
251 AC_PROG_LD
252 AC_PROG_LD_GNU
253 AC_PROG_LN_S
254 AC_PROG_MAKE_SET
255 AM_PROG_MKDIR_P
256
257 AM_CONDITIONAL([WITH_GNU_LD], [test x"$with_gnu_ld" = "xyes"])
258
259 dnl Checks for header files.
260 AC_HEADER_DIRENT
261 AC_HEADER_STDC
262
263 dnl Crucial header files.
264 AC_CHECK_HEADERS([stdbool.h],, [AC_MSG_ERROR(cannot find stdbool.h)])
265 AC_CHECK_HEADERS([stdint.h],, [AC_MSG_ERROR(cannot find stdint.h)])
266
267 dnl keep them alpha-sorted!
268 AC_CHECK_HEADERS([assert.h])
269 AC_CHECK_HEADERS([errno.h])
270 AC_CHECK_HEADERS([execinfo.h])
271 AC_CHECK_HEADERS([fcntl.h])
272 AC_CHECK_HEADERS([libgen.h])
273 AC_CHECK_HEADERS([netdb.h])
274 AC_CHECK_HEADERS([signal.h])
275 AC_CHECK_HEADERS([stdarg.h])
276 AC_CHECK_HEADERS([stdint.h])
277 AC_CHECK_HEADERS([stdio.h])
278 AC_CHECK_HEADERS([stdlib.h])
279 AC_CHECK_HEADERS([string.h])
280 AC_CHECK_HEADERS([time.h])
281 AC_CHECK_HEADERS([ucontext.h])
282 AC_CHECK_HEADERS([unistd.h])
283 AC_CHECK_HEADERS([sys/ioctl.h])
284 AC_CHECK_HEADERS([sys/mman.h])
285 AC_CHECK_HEADERS([sys/resource.h])
286 AC_CHECK_HEADERS([sys/select.h])
287 AC_CHECK_HEADERS([sys/socket.h])
288 AC_CHECK_HEADERS([sys/stat.h])
289 AC_CHECK_HEADERS([sys/time.h])
290 AC_CHECK_HEADERS([sys/types.h])
291
292 dnl Checks for typedefs, structures, and compiler characteristics.
293 AC_C_CONST
294 AC_C_INLINE
295 AC_C_ATTRIBUTE
296 AC_TYPE_OFF_T
297 AC_TYPE_SIZE_T
298 AC_HEADER_TIME
299 AC_STRUCT_TM
300
301 dnl Checks for libraries (NOTE: Should be done before function checks,
302 dnl as some functions may be in libraries we check for).
303 case "${OS_DIR}" in
304     solaris )
305          AC_CHECK_LIB([socket], [gethostname],, [AC_MSG_ERROR(cannot find libsocket)])
306          ;;
307 esac
308
309 dnl Checks for library functions.
310 AC_PROG_GCC_TRADITIONAL
311 AC_TYPE_SIGNAL
312 AC_FUNC_MEMCMP
313 AC_FUNC_MMAP
314
315 dnl keep them alpha-sorted!
316 AC_CHECK_FUNCS([abort])
317 AC_CHECK_FUNCS([accept])
318 AC_CHECK_FUNCS([access])
319 AC_CHECK_FUNCS([atoi])
320 AC_CHECK_FUNCS([atol])
321 AC_CHECK_FUNCS([backtrace])
322 AC_CHECK_FUNCS([backtrace_symbols])
323 AC_CHECK_FUNCS([calloc])
324 AC_CHECK_FUNCS([close])
325 AC_CHECK_FUNCS([confstr])
326 AC_CHECK_FUNCS([connect])
327 AC_CHECK_FUNCS([dirname])
328 AC_CHECK_FUNCS([fclose])
329 AC_CHECK_FUNCS([fflush])
330 AC_CHECK_FUNCS([fopen])
331 AC_CHECK_FUNCS([fprintf])
332 AC_CHECK_FUNCS([fread])
333 AC_CHECK_FUNCS([free])
334 AC_CHECK_FUNCS([fseek])
335 AC_CHECK_FUNCS([fstat])
336 AC_CHECK_FUNCS([fsync])
337 AC_CHECK_FUNCS([ftruncate])
338 AC_CHECK_FUNCS([getcwd])
339 AC_CHECK_FUNCS([getenv])
340 AC_CHECK_FUNCS([gethostbyname])
341 AC_CHECK_FUNCS([gethostname])
342 AC_CHECK_FUNCS([getpagesize])
343 AC_CHECK_FUNCS([getrusage])
344 AC_CHECK_FUNCS([getsockname])
345 AC_CHECK_FUNCS([getsockopt])
346 AC_CHECK_FUNCS([gettimeofday])
347 AC_CHECK_FUNCS([htons])
348 AC_CHECK_FUNCS([ioctl])
349 AC_CHECK_FUNCS([isnan])
350 AC_CHECK_FUNCS([listen])
351 AC_CHECK_FUNCS([localtime])
352 AC_CHECK_FUNCS([localtime_r])
353 AC_CHECK_FUNCS([lseek])
354 AC_CHECK_FUNCS([malloc])
355 AC_CHECK_FUNCS([memcpy])
356 AC_CHECK_FUNCS([memset])
357 AC_CHECK_FUNCS([mmap])
358 AC_CHECK_FUNCS([mprotect])
359 AC_CHECK_FUNCS([open])
360 AC_CHECK_FUNCS([printf])
361 AC_CHECK_FUNCS([read])
362 AC_CHECK_FUNCS([readlink])
363 AC_CHECK_FUNCS([realloc])
364 AC_CHECK_FUNCS([recv])
365 AC_CHECK_FUNCS([scandir])
366 AC_CHECK_FUNCS([select])
367 AC_CHECK_FUNCS([send])
368 AC_CHECK_FUNCS([setsockopt])
369 AC_CHECK_FUNCS([shutdown])
370 AC_CHECK_FUNCS([socket])
371 AC_CHECK_FUNCS([stat])
372 AC_CHECK_FUNCS([str2sig])
373 AC_CHECK_FUNCS([strcat])
374 AC_CHECK_FUNCS([strchr])
375 AC_CHECK_FUNCS([strcpy])
376 AC_CHECK_FUNCS([strcmp])
377 AC_CHECK_FUNCS([strdup])
378 AC_CHECK_FUNCS([strerror])
379 AC_CHECK_FUNCS([strlen])
380 AC_CHECK_FUNCS([strncmp])
381 AC_CHECK_FUNCS([strstr])
382 AC_CHECK_FUNCS([time])
383 AC_CHECK_FUNCS([va_end])
384 AC_CHECK_FUNCS([va_start])
385 AC_CHECK_FUNCS([write])
386
387
388 dnl Checks for libraries.
389
390 dnl Checking sizeof void *
391 AC_CHECK_SIZEOF(void *)
392 AC_C_BIGENDIAN
393
394
395 dnl define install prefix
396 if test "x$prefix" = "xNONE"; then
397     CACAO_PREFIX=$ac_default_prefix
398 else
399     CACAO_PREFIX=$prefix
400 fi
401 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
402 AC_SUBST(CACAO_PREFIX)
403
404 dnl define libdir prefix
405 if test "x$libdir" = "xNONE"; then
406     CACAO_LIBDIR=$ac_default_libdir
407 else
408     CACAO_LIBDIR=$libdir
409 fi
410 dnl expand CACAO_LIBDIR to something that is usable in C code
411 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
412 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
413 AC_SUBST(CACAO_LIBDIR)
414
415
416 AC_CHECK_ENABLE_DL
417 AC_CHECK_ENABLE_JAVA
418
419 AC_CHECK_ENABLE_JIT
420 AC_CHECK_ENABLE_INTRP
421
422 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
423     AC_ERROR(You have to enable at least the JIT or the interpreter.)
424 fi
425
426 AC_CHECK_SOFTFLOAT
427 AC_CHECK_SOFT_FLOAT_CMP
428 AC_CHECK_SOFT_DOUBLE_CMP
429
430 AC_CHECK_ENABLE_GC
431 AC_CHECK_ENABLE_DEBUG
432 AC_CHECK_ENABLE_DUMP
433 AC_CHECK_ENABLE_MEMCHECK
434 AC_CHECK_ENABLE_HANDLES
435 AC_CHECK_ENABLE_VMLOG
436 AC_CHECK_ENABLE_DISASSEMBLER
437 AC_CHECK_ENABLE_STATISTICS
438 AC_CHECK_ENABLE_VERIFIER
439 AC_CHECK_ENABLE_RT_TIMING
440 AC_CHECK_ENABLE_CYCLE_STATS
441 AC_CHECK_ENABLE_JITCACHE
442 AC_CHECK_ENABLE_JVMTI
443 AC_CHECK_ENABLE_THREADS
444 AC_CHECK_ENABLE_IFCONV
445 AC_CHECK_ENABLE_INLINING
446 AC_CHECK_ENABLE_INLINING_DEBUG
447 AC_CHECK_ENABLE_REPLACEMENT
448
449 dnl check for loop optimization
450 AC_MSG_CHECKING(whether loop optimization should be supported)
451 AC_ARG_ENABLE([loop],
452               [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
453               [case "${enableval}" in
454                    yes) ENABLE_LOOP=yes;;
455                    *) ENABLE_LOOP=no;;
456                esac],
457               [ENABLE_LOOP=no])
458 AC_MSG_RESULT(${ENABLE_LOOP})
459 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
460
461 if test x"${ENABLE_LOOP}" = "xyes"; then
462     AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
463 fi
464
465
466 dnl check if linear scan register allocator(lsra) with SSA should be used
467 AC_MSG_CHECKING(whether lsra with ssa should be supported)
468 AC_ARG_ENABLE([ssa],
469               [AS_HELP_STRING(--disable-ssa,disable ssa [[default=disabled]])],
470               [case "${enableval}" in
471                    no) ENABLE_SSA=no;;
472                    *) ENABLE_SSA=yes;;
473                esac],
474               [ENABLE_SSA=no])
475 AC_MSG_RESULT(${ENABLE_SSA})
476 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
477 AM_CONDITIONAL([ENABLE_ESCAPE], test x"${ENABLE_SSA}" = "xyes")
478 AM_CONDITIONAL([ENABLE_ESCAPE_CHECK], test x"${ENABLE_SSA}" = "xyes")
479 AM_CONDITIONAL([ENABLE_TLH], test x"${ENABLE_SSA}" = "xyes")
480
481 if test x"${ENABLE_SSA}" = "xyes"; then
482     AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
483     AC_DEFINE([ENABLE_ESCAPE], 1, [enable escape analysis with ssa])
484     AC_DEFINE([ENABLE_ESCAPE_CHECK], 1, [enable generating code to validate escape analysis results])
485     AC_DEFINE([ENABLE_TLH], 1, [enable thread local heap])
486     ENABLE_LSRA="no"
487 fi
488
489
490 dnl check if linear scan register allocator(lsra) should be used
491 AC_MSG_CHECKING(whether lsra should be supported)
492 AC_ARG_ENABLE([lsra],
493               [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
494               [case "${enableval}" in
495                    yes) ENABLE_LSRA=yes;;
496                    *) ENABLE_LSRA=no;;
497                esac],
498               [ENABLE_LSRA=no])
499    
500 if test x"${ENABLE_LSRA}" = "xyes"; then
501     if test x"${ENABLE_SSA}" = "xyes"; then
502         ENABLE_LSRA="no"
503     fi
504 fi
505 AC_MSG_RESULT(${ENABLE_LSRA})
506 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
507  
508 if test x"${ENABLE_LSRA}" = "xyes"; then
509     AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
510 fi
511
512 dnl check if profiling should be supported
513 AC_MSG_CHECKING(whether profiling should be supported)
514 AC_ARG_ENABLE([profiling],
515               [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
516               [case "${enableval}" in
517                    yes) ENABLE_PROFILING=yes;;
518                    *) ENABLE_PROFILING=no;;
519                esac],
520               [ENABLE_PROFILING=no])
521 AC_MSG_RESULT(${ENABLE_PROFILING})
522 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
523    
524 if test x"${ENABLE_PROFILING}" = "xyes"; then
525     AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
526 fi
527
528
529 dnl check for instruction scheduler
530 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
531
532 AC_MSG_CHECKING(whether instruction scheduler should be supported)
533 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
534         case "${ARCH_DIR}" in
535                 xdspcore )
536                         ;;
537                 * )
538                         AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
539                         ;;
540         esac
541
542         AC_MSG_RESULT(yes)
543         AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
544         AM_CONDITIONAL([USE_SCHEDULER], [true])
545 else
546         AC_MSG_RESULT(no)
547         AM_CONDITIONAL([USE_SCHEDULER], [false])
548 fi
549
550 AC_CHECK_ENABLE_OPAGENT
551
552 AC_CHECK_ENABLE_ZLIB
553
554 dnl check for stuff to be built
555 AC_CHECK_ENABLE_JNI
556 AC_CHECK_ENABLE_LIBJVM
557
558 dnl ATTENTION: These check must be after setting
559 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
560 dnl because libtool uses them to build the correct libraries.
561 AC_LIBTOOL_DLOPEN
562 AC_PROG_LIBTOOL
563
564 AC_CHECK_ENABLE_STATICVM
565 AC_CHECK_ENABLE_ANNOTATIONS
566 AC_CHECK_ENABLE_ASSERTION
567
568 dnl This one depends on AC_CHECK_ENABLE_ZLIB.
569 AC_CHECK_WITH_VM_ZIP
570
571 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY
572
573 dnl Now we check for jre-layout so we can skip some checks that are
574 dnl not required.
575 AC_CHECK_ENABLE_JRE_LAYOUT
576
577 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_PREFIX
578 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_CLASSES
579 AC_CHECK_WITH_BUILD_JAVA_RUNTIME_LIBRARY_CLASSES
580
581 if test x"${ENABLE_JRE_LAYOUT}" = "xno"; then
582    AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_LIBDIR
583 fi
584
585 dnl The check for jni_md.h must be before jni.h.
586 AC_CHECK_WITH_JNI_MD_H
587 AC_CHECK_WITH_JNI_H
588
589 dnl JVM, HPI, and JMM is only required for OpenJDK.
590 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
591     openjdk)
592         AC_CHECK_WITH_JVM_MD_H
593         AC_CHECK_WITH_JVM_H
594         AC_CHECK_WITH_HPI_MD_H
595         AC_CHECK_WITH_HPI_H
596         AC_CHECK_WITH_JMM_H
597         ;;
598     *)
599         ;;
600 esac
601
602 dnl check for some programs we need
603
604 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
605     cldc1.1 | gnuclasspath)
606         AC_PROG_JAVAC
607         AC_PROG_JAR
608         ;;
609     openjdk)
610         ;;
611     *)
612         AC_MSG_ERROR(unknown classpath configuration ${WITH_JAVA_RUNTIME_LIBRARY})
613         ;;
614 esac
615
616 AC_CHECK_WITH_JASMIN_JAR
617 AC_CHECK_WITH_JUNIT_JAR
618
619 AC_CHECK_HEADERS(
620         [regex.h], 
621         [
622                 dnl If debug build and regex.h available, enable debug filter
623                 if test x"${NDEBUG}" = "xno"; then
624                         AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
625                 fi
626                 dnl If vmlog enambled and regex.h available, enable vmlogfilter
627                 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
628         ],
629         [
630                 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
631         ]
632 )
633
634 dnl python
635
636 AZ_PYTHON_DEFAULT
637 AZ_PYTHON_ENABLE
638 AZ_PYTHON_WITH
639 AZ_PYTHON_VERSION_ENSURE( [2.4] )
640 AZ_PYTHON_CSPEC
641 AZ_PYTHON_LSPEC
642
643
644 dnl define some stuff required for --fullversion
645 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
646 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
647 AC_DEFINE_UNQUOTED(VERSION_CXX, "$CXX", [CXX used])
648 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS $CC_FLAGS $CPPFLAGS", [CFLAGS used])
649 AC_DEFINE_UNQUOTED(VERSION_CXXFLAGS, "$OPT_CXXFLAGS $ARCH_CXXFLAGS $CXX_FLAGS $CPPFLAGS", [CXXFLAGS used])
650
651
652 dnl Finally pass flags to Makefiles.
653 CFLAGS="$OPT_CFLAGS"
654 CXXFLAGS="$OPT_CXXFLAGS"
655
656 AM_CFLAGS="$CC_FLAGS $ARCH_FLAGS $OS_FLAGS"
657 AM_CXXFLAGS="$CXX_FLAGS $ARCH_FLAGS $OS_FLAGS"
658 AM_CPPFLAGS="$CPPFLAGS"
659
660 AC_SUBST(AM_CFLAGS)
661 AC_SUBST(AM_CXXFLAGS)
662 AC_SUBST(AM_CPPFLAGS)
663
664
665 AC_CONFIG_FILES([Makefile]
666                 [contrib/Makefile]
667                 [contrib/setenvinstalled]
668                 [contrib/setenvsource]
669                 [contrib/vmlog/Makefile]
670                 [contrib/vmlog/t/Makefile]
671                 [doc/Makefile]
672                 [doc/doxygen/Makefile]
673                 [doc/handbook/Makefile]
674                 [man/Makefile]
675                 [src/Makefile]
676                 [src/cacao/Makefile]
677                 [src/classes/Makefile]
678                 [src/fdlibm/Makefile]
679                 [src/mm/Makefile]
680                 [src/mm/cacao-gc/Makefile]
681                 [src/native/Makefile]
682                 [src/native/include/Makefile]
683                 [src/native/jvmti/Makefile]
684                 [src/native/vm/Makefile]
685                 [src/native/vm/cldc1.1/Makefile]
686                 [src/native/vm/gnuclasspath/Makefile]
687                 [src/native/vm/openjdk/Makefile]
688                 [src/scripts/Makefile]
689                 [src/scripts/java]
690                 [src/threads/Makefile]
691                 [src/threads/none/Makefile]
692                 [src/threads/posix/Makefile]
693                 [src/toolbox/Makefile]
694                 [src/vm/Makefile]
695                 [src/vm/jit/Makefile]
696                 [src/vm/jit/allocator/Makefile]
697                 [src/vm/jit/alpha/Makefile]
698                 [src/vm/jit/alpha/freebsd/Makefile]
699                 [src/vm/jit/alpha/linux/Makefile]
700                 [src/vm/jit/arm/Makefile]
701                 [src/vm/jit/arm/linux/Makefile]
702                 [src/vm/jit/i386/Makefile]
703                 [src/vm/jit/i386/cygwin/Makefile]
704                 [src/vm/jit/i386/darwin/Makefile]
705                 [src/vm/jit/i386/freebsd/Makefile]
706                 [src/vm/jit/i386/linux/Makefile]
707                 [src/vm/jit/i386/solaris/Makefile]
708                 [src/vm/jit/intrp/Makefile]
709                 [src/vm/jit/inline/Makefile]
710                 [src/vm/jit/ir/Makefile]
711                 [src/vm/jit/loop/Makefile]
712                 [src/vm/jit/m68k/Makefile]
713                 [src/vm/jit/m68k/linux/Makefile]
714                 [src/vm/jit/mips/Makefile]
715                 [src/vm/jit/mips/irix/Makefile]
716                 [src/vm/jit/mips/linux/Makefile]
717                 [src/vm/jit/mips/uclinux/Makefile]
718                 [src/vm/jit/optimizing/Makefile]
719                 [src/vm/jit/parisc/Makefile]
720                 [src/vm/jit/parisc/linux/Makefile]
721                 [src/vm/jit/powerpc/Makefile]
722                 [src/vm/jit/powerpc/darwin/Makefile]
723                 [src/vm/jit/powerpc/linux/Makefile]
724                 [src/vm/jit/powerpc/netbsd/Makefile]
725                 [src/vm/jit/powerpc64/Makefile]
726                 [src/vm/jit/powerpc64/linux/Makefile]
727                 [src/vm/jit/s390/Makefile]
728                 [src/vm/jit/schedule/Makefile]
729                 [src/vm/jit/sparc64/Makefile]
730                 [src/vm/jit/sparc64/linux/Makefile]
731                 [src/vm/jit/sparc64/solaris/Makefile]
732                 [src/vm/jit/verify/Makefile]
733                 [src/vm/jit/x86_64/Makefile]
734                 [src/vm/jit/x86_64/freebsd/Makefile]
735                 [src/vm/jit/x86_64/linux/Makefile]
736                 [src/vm/jit/x86_64/solaris/Makefile]
737                 [tests/Makefile]
738                 [tests/regression/Makefile]
739                 [tests/regression/assertion/Makefile]
740                 [tests/regression/base/Makefile]
741                 [tests/regression/bugzilla/Makefile]
742                 [tests/regression/jasmin/Makefile]
743                 [tests/regression/native/Makefile]
744                 [tests/regression/resolving/Makefile]
745                 [tests/regression/resolving/classes1/Makefile]
746                 [tests/regression/resolving/classes2/Makefile]
747                 [tests/regression/resolving/classes3/Makefile]
748 )
749
750
751 dnl We only build the shared library objects but we use it as
752 dnl noinst_LTLIBRARIES.
753 ac_configure_args="$ac_configure_args --disable-static"
754 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
755
756
757 AC_OUTPUT
758
759
760 ## Local variables:
761 ## mode: m4
762 ## indent-tabs-mode: t
763 ## c-basic-offset: 4
764 ## tab-width: 8
765 ## compile-command: "automake --add-missing"
766 ## End: