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