* src/vm/jit/arm/codegen.c: removed unused ICMD_GETSTATIC branch
[cacao.git] / configure.ac
1 dnl configure.ac
2 dnl
3 dnl Copyright (C) 1996-2010
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.0pre2, 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* | armv7* )
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__ -D_XOPEN_SOURCE=600 -D_DARWIN_C_SOURCE"
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 -O2"
200 else
201     OPT_CFLAGS=$CFLAGS
202 fi
203 OPT_CFLAGS="$OPT_CFLAGS -fno-strict-aliasing"
204
205 if test x"$CXXFLAGS" = "x"; then
206     OPT_CXXFLAGS="-g -O2"
207 else
208     OPT_CXXFLAGS=$CXXFLAGS
209 fi
210 OPT_CXXFLAGS="$OPT_CXXFLAGS -fno-strict-aliasing"
211
212 dnl Check for compiler.
213 AC_PROG_CC
214 AC_PROG_CXX
215
216 dnl Check compiler vendor.
217 AX_COMPILER_VENDOR
218
219 dnl Set compiler flags depending on the compiler vendor.
220 case "$ax_cv_c_compiler_vendor" in
221 gnu )
222     CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long $CC_FLAGS"
223     CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long $CXX_FLAGS"
224     ;;
225
226 sgi )
227     CC_FLAGS="-c99 $CC_FLAGS"
228     CXX_FLAGS="$CXX_FLAGS"
229     ;;
230
231 sun )
232     CC_FLAGS="-xc99 $CC_FLAGS"
233     CXX_FLAGS="$CXX_FLAGS"
234     ;;
235
236 * )    
237     AC_MSG_ERROR([$ax_cv_c_compiler_vendor compilers are currently not supported.])
238     ;;
239 esac
240
241 dnl Temporary set the CFLAGS for configure tests (e.g. inline keyword)
242 dnl we set it properly at the end of this file.
243 CFLAGS="$OPT_CFLAGS $ARCH_FLAGS $OS_FLAGS $CC_FLAGS"
244 CXXFLAGS="$OPT_CXXFLAGS $ARCH_FLAGS $OS_FLAGS $CXX_FLAGS"
245
246 dnl set interpreter flags
247 AC_SUBST(INTRP_CFLAGS)
248
249 dnl define and substitute some architecture specific variables
250 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
251 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
252 AC_SUBST(ARCH_DIR)
253 AC_SUBST(JAVA_ARCH)
254 AC_SUBST(OS_DIR)
255 AC_SUBST(USE_SCHEDULER)
256
257 dnl Checks for programs.
258 AM_PROG_AS
259 AC_PROG_LD
260 AC_PROG_LD_GNU
261 AC_PROG_LN_S
262 AC_PROG_MAKE_SET
263 AM_PROG_MKDIR_P
264
265 AM_CONDITIONAL([WITH_GNU_LD], [test x"$with_gnu_ld" = "xyes"])
266
267 dnl Checks for header files.
268 AC_HEADER_DIRENT
269 AC_HEADER_STDC
270
271 dnl Crucial header files.
272 AC_CHECK_HEADERS([stdbool.h],, [AC_MSG_ERROR(cannot find stdbool.h)])
273 AC_CHECK_HEADERS([stdint.h],, [AC_MSG_ERROR(cannot find stdint.h)])
274
275 dnl keep them alpha-sorted!
276 AC_CHECK_HEADERS([assert.h])
277 AC_CHECK_HEADERS([errno.h])
278 AC_CHECK_HEADERS([execinfo.h])
279 AC_CHECK_HEADERS([fcntl.h])
280 AC_CHECK_HEADERS([libgen.h])
281 AC_CHECK_HEADERS([locale.h])
282 AC_CHECK_HEADERS([netdb.h])
283 AC_CHECK_HEADERS([signal.h])
284 AC_CHECK_HEADERS([stdarg.h])
285 AC_CHECK_HEADERS([stdint.h])
286 AC_CHECK_HEADERS([stdio.h])
287 AC_CHECK_HEADERS([stdlib.h])
288 AC_CHECK_HEADERS([string.h])
289 AC_CHECK_HEADERS([time.h])
290 AC_CHECK_HEADERS([ucontext.h])
291 AC_CHECK_HEADERS([unistd.h])
292 AC_CHECK_HEADERS([mach/mach.h])
293 AC_CHECK_HEADERS([sys/ioctl.h])
294 AC_CHECK_HEADERS([sys/loadavg.h])
295 AC_CHECK_HEADERS([sys/mman.h])
296 AC_CHECK_HEADERS([sys/resource.h])
297 AC_CHECK_HEADERS([sys/select.h])
298 AC_CHECK_HEADERS([sys/socket.h])
299 AC_CHECK_HEADERS([sys/stat.h])
300 AC_CHECK_HEADERS([sys/time.h])
301 AC_CHECK_HEADERS([sys/types.h])
302 AC_CHECK_HEADERS([sys/utsname.h])
303
304 dnl Checks for typedefs, structures, and compiler characteristics.
305 AC_C_CONST
306 AC_C_INLINE
307 AC_C_ATTRIBUTE
308 AC_TYPE_OFF_T
309 AC_TYPE_SIZE_T
310 AC_HEADER_TIME
311 AC_STRUCT_TM
312
313 dnl Checks for libraries (NOTE: Should be done before function checks,
314 dnl as some functions may be in libraries we check for).
315 case "${OS_DIR}" in
316     solaris )
317          AC_CHECK_LIB([socket], [gethostname],, [AC_MSG_ERROR(cannot find libsocket)])
318          ;;
319 esac
320
321 dnl Checks for library functions.
322 AC_PROG_GCC_TRADITIONAL
323 AC_TYPE_SIGNAL
324 AC_FUNC_MEMCMP
325 AC_FUNC_MMAP
326
327 dnl keep them alpha-sorted!
328 AC_CHECK_FUNCS([abort])
329 AC_CHECK_FUNCS([accept])
330 AC_CHECK_FUNCS([access])
331 AC_CHECK_FUNCS([atoi])
332 AC_CHECK_FUNCS([atol])
333 AC_CHECK_FUNCS([backtrace])
334 AC_CHECK_FUNCS([backtrace_symbols])
335 AC_CHECK_FUNCS([calloc])
336 AC_CHECK_FUNCS([close])
337 AC_CHECK_FUNCS([confstr])
338 AC_CHECK_FUNCS([connect])
339 AC_CHECK_FUNCS([dirname])
340 AC_CHECK_FUNCS([fclose])
341 AC_CHECK_FUNCS([fflush])
342 AC_CHECK_FUNCS([fopen])
343 AC_CHECK_FUNCS([fprintf])
344 AC_CHECK_FUNCS([vfprintf])
345 AC_CHECK_FUNCS([fread])
346 AC_CHECK_FUNCS([free])
347 AC_CHECK_FUNCS([fstat])
348 AC_CHECK_FUNCS([fsync])
349 AC_CHECK_FUNCS([ftruncate])
350 AC_CHECK_FUNCS([getcwd])
351 AC_CHECK_FUNCS([getenv])
352 AC_CHECK_FUNCS([gethostbyname])
353 AC_CHECK_FUNCS([gethostname])
354 AC_CHECK_FUNCS([getloadavg])
355 AC_CHECK_FUNCS([getpagesize])
356 AC_CHECK_FUNCS([getpid])
357 AC_CHECK_FUNCS([getrusage])
358 AC_CHECK_FUNCS([getsockname])
359 AC_CHECK_FUNCS([getsockopt])
360 AC_CHECK_FUNCS([gettimeofday])
361 AC_CHECK_FUNCS([htons])
362 AC_CHECK_FUNCS([ioctl])
363 AC_CHECK_FUNCS([isnan])
364 AC_CHECK_FUNCS([listen])
365 AC_CHECK_FUNCS([localtime])
366 AC_CHECK_FUNCS([localtime_r])
367 AC_CHECK_FUNCS([lseek])
368 AC_CHECK_FUNCS([malloc])
369 AC_CHECK_FUNCS([memcpy])
370 AC_CHECK_FUNCS([memset])
371 AC_CHECK_FUNCS([mmap])
372 AC_CHECK_FUNCS([mprotect])
373 AC_CHECK_FUNCS([open])
374 AC_CHECK_FUNCS([printf])
375 AC_CHECK_FUNCS([read])
376 AC_CHECK_FUNCS([readlink])
377 AC_CHECK_FUNCS([realloc])
378 AC_CHECK_FUNCS([recv])
379 AC_CHECK_FUNCS([scandir])
380 AC_CHECK_FUNCS([select])
381 AC_CHECK_FUNCS([send])
382 AC_CHECK_FUNCS([setlocale])
383 AC_CHECK_FUNCS([setsockopt])
384 AC_CHECK_FUNCS([shutdown])
385 AC_CHECK_FUNCS([socket])
386 AC_CHECK_FUNCS([stat])
387 AC_CHECK_FUNCS([str2sig])
388 AC_CHECK_FUNCS([strcat])
389 AC_CHECK_FUNCS([strchr])
390 AC_CHECK_FUNCS([strcpy])
391 AC_CHECK_FUNCS([strcmp])
392 AC_CHECK_FUNCS([strdup])
393 AC_CHECK_FUNCS([strerror])
394 AC_CHECK_FUNCS([strlen])
395 AC_CHECK_FUNCS([strncmp])
396 AC_CHECK_FUNCS([strstr])
397 AC_CHECK_FUNCS([time])
398 AC_CHECK_FUNCS([write])
399
400 AM_LC_MESSAGES
401
402 dnl Checks for libraries.
403
404 dnl Checking sizeof void *
405 AC_CHECK_SIZEOF(void *)
406 AC_C_BIGENDIAN
407
408
409 dnl define install prefix
410 if test "x$prefix" = "xNONE"; then
411     CACAO_PREFIX=$ac_default_prefix
412 else
413     CACAO_PREFIX=$prefix
414 fi
415 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
416 AC_SUBST(CACAO_PREFIX)
417
418 dnl define libdir prefix
419 if test "x$libdir" = "xNONE"; then
420     CACAO_LIBDIR=$ac_default_libdir
421 else
422     CACAO_LIBDIR=$libdir
423 fi
424 dnl expand CACAO_LIBDIR to something that is usable in C code
425 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
426 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
427 AC_SUBST(CACAO_LIBDIR)
428
429
430 AC_CHECK_ENABLE_DL
431 AC_CHECK_ENABLE_JAVA
432
433 AC_CHECK_ENABLE_JIT
434 AC_CHECK_ENABLE_INTRP
435
436 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
437     AC_ERROR(You have to enable at least the JIT or the interpreter.)
438 fi
439
440 AC_CHECK_SOFTFLOAT
441 AC_CHECK_SOFT_FLOAT_CMP
442 AC_CHECK_SOFT_DOUBLE_CMP
443
444 AC_CHECK_ENABLE_GC
445 AC_CHECK_ENABLE_DEBUG
446 AC_CHECK_ENABLE_DUMP
447 AC_CHECK_ENABLE_MEMCHECK
448 AC_CHECK_ENABLE_HANDLES
449 AC_CHECK_ENABLE_VMLOG
450 AC_CHECK_ENABLE_DISASSEMBLER
451 AC_CHECK_ENABLE_STATISTICS
452 AC_CHECK_ENABLE_VERIFIER
453 AC_CHECK_ENABLE_RT_TIMING
454 AC_CHECK_ENABLE_CYCLE_STATS
455 AC_CHECK_ENABLE_JVMTI
456 AC_CHECK_ENABLE_THREADS
457 if test x"${ENABLE_THREADS}" != "xno"; then
458     AC_CHECK_USE___THREAD
459 fi
460 AC_CHECK_ENABLE_IFCONV
461 AC_CHECK_ENABLE_INLINING
462 AC_CHECK_ENABLE_INLINING_DEBUG
463 AC_CHECK_ENABLE_REPLACEMENT
464
465 dnl check for loop optimization
466 AC_MSG_CHECKING(whether loop optimization should be supported)
467 AC_ARG_ENABLE([loop],
468               [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
469               [case "${enableval}" in
470                    yes) ENABLE_LOOP=yes;;
471                    *) ENABLE_LOOP=no;;
472                esac],
473               [ENABLE_LOOP=no])
474 AC_MSG_RESULT(${ENABLE_LOOP})
475 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
476
477 if test x"${ENABLE_LOOP}" = "xyes"; then
478     AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
479 fi
480
481
482 dnl check if linear scan register allocator(lsra) with SSA should be used
483 AC_MSG_CHECKING(whether lsra with ssa should be supported)
484 AC_ARG_ENABLE([ssa],
485               [AS_HELP_STRING(--disable-ssa,disable ssa [[default=disabled]])],
486               [case "${enableval}" in
487                    no) ENABLE_SSA=no;;
488                    *) ENABLE_SSA=yes;;
489                esac],
490               [ENABLE_SSA=no])
491 AC_MSG_RESULT(${ENABLE_SSA})
492 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
493 AM_CONDITIONAL([ENABLE_ESCAPE], test x"${ENABLE_SSA}" = "xyes")
494 AM_CONDITIONAL([ENABLE_ESCAPE_CHECK], test x"${ENABLE_SSA}" = "xyes")
495 AM_CONDITIONAL([ENABLE_TLH], test x"${ENABLE_SSA}" = "xyes")
496
497 if test x"${ENABLE_SSA}" = "xyes"; then
498     AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
499     AC_DEFINE([ENABLE_ESCAPE], 1, [enable escape analysis with ssa])
500     AC_DEFINE([ENABLE_ESCAPE_CHECK], 1, [enable generating code to validate escape analysis results])
501     AC_DEFINE([ENABLE_TLH], 1, [enable thread local heap])
502     ENABLE_LSRA="no"
503 fi
504
505
506 dnl check if linear scan register allocator(lsra) should be used
507 AC_MSG_CHECKING(whether lsra should be supported)
508 AC_ARG_ENABLE([lsra],
509               [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
510               [case "${enableval}" in
511                    yes) ENABLE_LSRA=yes;;
512                    *) ENABLE_LSRA=no;;
513                esac],
514               [ENABLE_LSRA=no])
515    
516 if test x"${ENABLE_LSRA}" = "xyes"; then
517     if test x"${ENABLE_SSA}" = "xyes"; then
518         ENABLE_LSRA="no"
519     fi
520 fi
521 AC_MSG_RESULT(${ENABLE_LSRA})
522 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
523  
524 if test x"${ENABLE_LSRA}" = "xyes"; then
525     AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
526 fi
527
528 dnl check if profiling should be supported
529 AC_MSG_CHECKING(whether profiling should be supported)
530 AC_ARG_ENABLE([profiling],
531               [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
532               [case "${enableval}" in
533                    yes) ENABLE_PROFILING=yes;;
534                    *) ENABLE_PROFILING=no;;
535                esac],
536               [ENABLE_PROFILING=no])
537 AC_MSG_RESULT(${ENABLE_PROFILING})
538 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
539    
540 if test x"${ENABLE_PROFILING}" = "xyes"; then
541     AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
542 fi
543
544
545 dnl check for instruction scheduler
546 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
547
548 AC_MSG_CHECKING(whether instruction scheduler should be supported)
549 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
550         case "${ARCH_DIR}" in
551                 xdspcore )
552                         ;;
553                 * )
554                         AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
555                         ;;
556         esac
557
558         AC_MSG_RESULT(yes)
559         AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
560         AM_CONDITIONAL([USE_SCHEDULER], [true])
561 else
562         AC_MSG_RESULT(no)
563         AM_CONDITIONAL([USE_SCHEDULER], [false])
564 fi
565
566 AC_CHECK_ENABLE_OPAGENT
567
568 AC_CHECK_ENABLE_ZLIB
569
570 dnl check for stuff to be built
571 AC_CHECK_ENABLE_JNI
572 AC_CHECK_ENABLE_LIBJVM
573
574 dnl ATTENTION: These check must be after setting
575 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
576 dnl because libtool uses them to build the correct libraries.
577 AC_LIBTOOL_DLOPEN
578 AC_PROG_LIBTOOL
579
580 AC_CHECK_ENABLE_STATICVM
581 AC_CHECK_ENABLE_ANNOTATIONS
582 AC_CHECK_ENABLE_ASSERTION
583
584 dnl This one depends on AC_CHECK_ENABLE_ZLIB.
585 AC_CHECK_WITH_VM_ZIP
586 AC_CHECK_WITH_HGREV
587
588 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY
589
590 dnl Now we check for jre-layout so we can skip some checks that are
591 dnl not required.
592 AC_CHECK_ENABLE_JRE_LAYOUT
593
594 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_PREFIX
595 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_CLASSES
596 AC_CHECK_WITH_BUILD_JAVA_RUNTIME_LIBRARY_CLASSES
597
598 if test x"${ENABLE_JRE_LAYOUT}" = "xno"; then
599    AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_LIBDIR
600 fi
601
602 dnl The check for jni_md.h must be before jni.h.
603 AC_CHECK_WITH_JNI_MD_H
604 AC_CHECK_WITH_JNI_H
605
606 dnl The jvmti.h header is only required if JVMTI is enabled.
607 if test x"${ENABLE_JVMTI}" = "xyes"; then
608     AC_CHECK_WITH_JVMTI_H
609 fi
610
611 dnl JVM, HPI, and JMM is only required for OpenJDK.
612 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
613     openjdk)
614         AC_CHECK_WITH_JVM_MD_H
615         AC_CHECK_WITH_JVM_H
616         AC_CHECK_WITH_HPI_MD_H
617         AC_CHECK_WITH_HPI_H
618         AC_CHECK_WITH_JMM_H
619         ;;
620     *)
621         ;;
622 esac
623
624 dnl check for some programs we need
625
626 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
627     cldc1.1 | gnuclasspath)
628         AC_PROG_JAVAC
629         AC_PROG_JAR
630         ;;
631     openjdk)
632         ;;
633     *)
634         AC_MSG_ERROR(unknown classpath configuration ${WITH_JAVA_RUNTIME_LIBRARY})
635         ;;
636 esac
637
638 AC_CHECK_WITH_JASMIN_JAR
639 AC_CHECK_WITH_JUNIT_JAR
640
641 AC_CHECK_HEADERS(
642         [regex.h], 
643         [
644                 dnl If debug build and regex.h available, enable debug filter
645                 if test x"${NDEBUG}" = "xno"; then
646                         AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
647                 fi
648                 dnl If vmlog enambled and regex.h available, enable vmlogfilter
649                 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
650         ],
651         [
652                 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
653         ]
654 )
655
656 dnl python
657
658 AZ_PYTHON_DEFAULT
659 AZ_PYTHON_ENABLE
660 AZ_PYTHON_WITH
661 AZ_PYTHON_VERSION_ENSURE( [2.4] )
662 AZ_PYTHON_CSPEC
663 AZ_PYTHON_LSPEC
664
665 AC_CHECK_ENABLE_GCC_PR40134
666
667 AC_CHECK_ENABLE_PIC_ASM
668
669 dnl Define version numbers.
670 AC_VERSION_DETAIL
671 AC_VERSION_CONFIG
672
673 dnl Finally pass flags to Makefiles.
674 CFLAGS="$OPT_CFLAGS"
675 CXXFLAGS="$OPT_CXXFLAGS"
676
677 AM_CFLAGS="$CC_FLAGS $ARCH_FLAGS $OS_FLAGS"
678 AM_CXXFLAGS="$CXX_FLAGS $ARCH_FLAGS $OS_FLAGS"
679 AM_CPPFLAGS="$CPPFLAGS"
680
681 AC_SUBST(AM_CFLAGS)
682 AC_SUBST(AM_CXXFLAGS)
683 AC_SUBST(AM_CPPFLAGS)
684
685
686 AC_CONFIG_FILES([Makefile]
687                 [contrib/Makefile]
688                 [contrib/setenvinstalled]
689                 [contrib/setenvsource]
690                 [contrib/vmlog/Makefile]
691                 [contrib/vmlog/t/Makefile]
692                 [doc/Makefile]
693                 [doc/doxygen/Makefile]
694                 [doc/handbook/Makefile]
695                 [man/Makefile]
696                 [src/Makefile]
697                 [src/cacao/Makefile]
698                 [src/classes/Makefile]
699                 [src/fdlibm/Makefile]
700                 [src/mm/Makefile]
701                 [src/mm/cacao-gc/Makefile]
702                 [src/native/Makefile]
703                 [src/native/jvmti/Makefile]
704                 [src/native/vm/Makefile]
705                 [src/native/vm/cldc1.1/Makefile]
706                 [src/native/vm/gnuclasspath/Makefile]
707                 [src/native/vm/openjdk/Makefile]
708                 [src/scripts/Makefile]
709                 [src/scripts/java]
710                 [src/threads/Makefile]
711                 [src/threads/none/Makefile]
712                 [src/threads/posix/Makefile]
713                 [src/toolbox/Makefile]
714                 [src/vm/Makefile]
715                 [src/vm/jit/Makefile]
716                 [src/vm/jit/allocator/Makefile]
717                 [src/vm/jit/alpha/Makefile]
718                 [src/vm/jit/alpha/freebsd/Makefile]
719                 [src/vm/jit/alpha/linux/Makefile]
720                 [src/vm/jit/arm/Makefile]
721                 [src/vm/jit/arm/linux/Makefile]
722                 [src/vm/jit/i386/Makefile]
723                 [src/vm/jit/i386/cygwin/Makefile]
724                 [src/vm/jit/i386/darwin/Makefile]
725                 [src/vm/jit/i386/freebsd/Makefile]
726                 [src/vm/jit/i386/linux/Makefile]
727                 [src/vm/jit/i386/solaris/Makefile]
728                 [src/vm/jit/intrp/Makefile]
729                 [src/vm/jit/inline/Makefile]
730                 [src/vm/jit/ir/Makefile]
731                 [src/vm/jit/loop/Makefile]
732                 [src/vm/jit/m68k/Makefile]
733                 [src/vm/jit/m68k/linux/Makefile]
734                 [src/vm/jit/mips/Makefile]
735                 [src/vm/jit/mips/irix/Makefile]
736                 [src/vm/jit/mips/linux/Makefile]
737                 [src/vm/jit/mips/uclinux/Makefile]
738                 [src/vm/jit/optimizing/Makefile]
739                 [src/vm/jit/parisc/Makefile]
740                 [src/vm/jit/parisc/linux/Makefile]
741                 [src/vm/jit/powerpc/Makefile]
742                 [src/vm/jit/powerpc/darwin/Makefile]
743                 [src/vm/jit/powerpc/linux/Makefile]
744                 [src/vm/jit/powerpc/netbsd/Makefile]
745                 [src/vm/jit/powerpc64/Makefile]
746                 [src/vm/jit/powerpc64/linux/Makefile]
747                 [src/vm/jit/s390/Makefile]
748                 [src/vm/jit/schedule/Makefile]
749                 [src/vm/jit/sparc64/Makefile]
750                 [src/vm/jit/sparc64/linux/Makefile]
751                 [src/vm/jit/sparc64/solaris/Makefile]
752                 [src/vm/jit/verify/Makefile]
753                 [src/vm/jit/x86_64/Makefile]
754                 [src/vm/jit/x86_64/freebsd/Makefile]
755                 [src/vm/jit/x86_64/linux/Makefile]
756                 [src/vm/jit/x86_64/solaris/Makefile]
757                 [tests/Makefile]
758                 [tests/regression/Makefile]
759                 [tests/regression/assertion/Makefile]
760                 [tests/regression/base/Makefile]
761                 [tests/regression/bugzilla/Makefile]
762                 [tests/regression/jasmin/Makefile]
763                 [tests/regression/native/Makefile]
764                 [tests/regression/resolving/Makefile]
765                 [tests/regression/resolving/classes1/Makefile]
766                 [tests/regression/resolving/classes2/Makefile]
767                 [tests/regression/resolving/classes3/Makefile]
768 )
769
770
771 dnl We only build the shared library objects but we use it as
772 dnl noinst_LTLIBRARIES.
773 ac_configure_args="$ac_configure_args --disable-static"
774 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
775
776
777 AC_OUTPUT
778
779
780 ## Local variables:
781 ## mode: m4
782 ## indent-tabs-mode: t
783 ## c-basic-offset: 4
784 ## tab-width: 8
785 ## compile-command: "automake --add-missing"
786 ## End: