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