AC_INIT(cacao, 1.1.0pre, cacao@cacaojvm.org)
-AC_CONFIG_SRCDIR(src/cacao/cacao.c)
+AC_CONFIG_SRCDIR(src/cacao/cacao.cpp)
AC_CANONICAL_HOST
AC_PREREQ(2.59)
AM_INIT_AUTOMAKE([1.9.0 dist-bzip2 tar-ustar])
AC_PREFIX_DEFAULT(/usr/local/cacao)
-dnl Set optimization and debugging for all architectures and systems.
-if test x"$CFLAGS" = "x"; then
- OPT_CFLAGS="-O0 -g"
-else
- OPT_CFLAGS=$CFLAGS
-fi
-
-if test x"$CXXFLAGS" = "x"; then
- OPT_CXXFLAGS="-O0 -g"
-else
- OPT_CXXFLAGS=$CXXFLAGS
-fi
-
-dnl system type
+dnl Host CPU type.
case "$host_cpu" in
alpha | alphaev56 | alphapca56 )
ARCH_DIR="alpha"
JAVA_ARCH="alpha"
;;
-arm | armv4 | armv4tl | armv5b | armv5l )
+arm | armv4 | armv4tl | armv5b | armv5l | armv5tel | armv5tejl )
ARCH_DIR="arm"
ARCH_FLAGS="-D__ARM__"
JAVA_ARCH="arm"
i386 | i486 | i586 | i686 )
ARCH_DIR="i386"
- ARCH_FLAGS="-D__I386__"
+ ARCH_FLAGS="-m32 -D__I386__"
JAVA_ARCH="i386"
;;
JAVA_ARCH="m68k"
;;
-mips | mipsel )
+mips )
ARCH_DIR="mips"
ARCH_FLAGS="-D__MIPS__"
- dnl Is this correct for mipsel?
JAVA_ARCH="mips"
;;
+mipsel )
+ ARCH_DIR="mips"
+ ARCH_FLAGS="-D__MIPS__"
+ JAVA_ARCH="mipsel"
+ ;;
+
powerpc )
ARCH_DIR="powerpc"
- ARCH_FLAGS="-D__POWERPC__"
+ ARCH_FLAGS="-m32 -D__POWERPC__"
JAVA_ARCH="ppc"
;;
powerpc64 )
ARCH_DIR="powerpc64"
- ARCH_FLAGS="-D__POWERPC64__"
+ ARCH_FLAGS="-m64 -D__POWERPC64__"
JAVA_ARCH="ppc64"
;;
;;
* )
- AC_MSG_ERROR($host_cpu systems are not supported at this time)
+ AC_MSG_ERROR([$host_cpu systems are currently not supported.])
;;
esac
-dnl host type
+
+dnl Host operating system type.
case "$host_os" in
*cygwin* )
OS_DIR="cygwin"
OS_FLAGS="-D__WINDOWS__ -D__CYGWIN__"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*darwin* )
OS_DIR="darwin"
OS_FLAGS="-D__DARWIN__"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*kfreebsd*-gnu)
OS_DIR="freebsd"
OS_FLAGS="-D__FREEBSD__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*freebsd* )
OS_DIR="freebsd"
OS_FLAGS="-D__FREEBSD__ -D_XOPEN_SOURCE_EXTENDED"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*irix* )
OS_DIR="irix"
OS_FLAGS="-D__IRIX__"
- CC_FLAGS=""
- CXX_FLAGS=""
INTRP_CFLAGS="$ARCH_FLAGS $OS_FLAGS"
;;
*uclinux | *elf )
OS_DIR="uclinux"
OS_FLAGS="-D__LINUX__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*linux* | *Linux* )
OS_DIR="linux"
OS_FLAGS="-D__LINUX__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
*netbsd* )
OS_DIR="netbsd"
OS_FLAGS="-D__NETBSD__ -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
dnl not set when cpp is called with -std=c99, therefore we add them
dnl here.
OS_FLAGS="-D__SOLARIS__ -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_BSD_SOURCE"
- CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE=600"
- CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long"
+ CC_FLAGS="-D_XOPEN_SOURCE=600"
+ CXX_FLAGS="-D_XOPEN_SOURCE=500"
INTRP_CFLAGS="-Wall -Wno-long-long $ARCH_FLAGS $OS_FLAGS"
;;
* )
+ AC_MSG_ERROR([$host_os operating systems are currently not supported.])
;;
esac
-dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
-dnl we set it properly at the end of this file
+dnl Set optimization and debugging for all architectures and systems.
+dnl NOTE: Setting the CFLAGS/CXXFLAGS only works before calling AC_PROG_CC/AC_PROG_CXX.
+if test x"$CFLAGS" = "x"; then
+ OPT_CFLAGS="-g -O0"
+else
+ OPT_CFLAGS=$CFLAGS
+fi
+
+if test x"$CXXFLAGS" = "x"; then
+ OPT_CXXFLAGS="-g -O0"
+else
+ OPT_CXXFLAGS=$CXXFLAGS
+fi
+
+dnl Check for compiler.
+AC_PROG_CC
+AC_PROG_CXX
+
+dnl Check compiler vendor.
+AX_COMPILER_VENDOR
+
+dnl Set compiler flags depending on the compiler vendor.
+case "$ax_cv_c_compiler_vendor" in
+gnu )
+ CC_FLAGS="-std=c99 -pedantic -Wall -Wno-long-long $CC_FLAGS"
+ CXX_FLAGS="-std=c++98 -pedantic -Wall -Wno-long-long $CXX_FLAGS"
+ ;;
+
+sgi )
+ CC_FLAGS="-c99 $CC_FLAGS"
+ CXX_FLAGS="$CXX_FLAGS"
+ ;;
+
+sun )
+ CC_FLAGS="-xc99 $CC_FLAGS"
+ CXX_FLAGS="$CXX_FLAGS"
+ ;;
+
+* )
+ AC_MSG_ERROR([$ax_cv_c_compiler_vendor compilers are currently not supported.])
+ ;;
+esac
+
+dnl Temporary set the CFLAGS for configure tests (e.g. inline keyword)
+dnl we set it properly at the end of this file.
CFLAGS="$OPT_CFLAGS $ARCH_FLAGS $OS_FLAGS $CC_FLAGS"
CXXFLAGS="$OPT_CXXFLAGS $ARCH_FLAGS $OS_FLAGS $CXX_FLAGS"
AC_SUBST(OS_DIR)
AC_SUBST(USE_SCHEDULER)
-
dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_CXX
AM_PROG_AS
AC_PROG_LD
AC_PROG_LD_GNU
AC_PROG_MAKE_SET
AM_PROG_MKDIR_P
+AM_CONDITIONAL([WITH_GNU_LD], [test x"$with_gnu_ld" = "xyes"])
+
dnl Checks for header files.
AC_HEADER_DIRENT
AC_HEADER_STDC
dnl keep them alpha-sorted!
AC_CHECK_HEADERS([assert.h])
AC_CHECK_HEADERS([errno.h])
+AC_CHECK_HEADERS([execinfo.h])
AC_CHECK_HEADERS([fcntl.h])
AC_CHECK_HEADERS([libgen.h])
AC_CHECK_HEADERS([netdb.h])
+AC_CHECK_HEADERS([signal.h])
+AC_CHECK_HEADERS([stdarg.h])
AC_CHECK_HEADERS([stdint.h])
AC_CHECK_HEADERS([stdio.h])
AC_CHECK_HEADERS([stdlib.h])
dnl Checks for libraries (NOTE: Should be done before function checks,
dnl as some functions may be in libraries we check for).
+case "${OS_DIR}" in
+ solaris )
+ AC_CHECK_LIB([socket], [gethostname],, [AC_MSG_ERROR(cannot find libsocket)])
+ ;;
+esac
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNCS([access])
AC_CHECK_FUNCS([atoi])
AC_CHECK_FUNCS([atol])
+AC_CHECK_FUNCS([backtrace])
+AC_CHECK_FUNCS([backtrace_symbols])
AC_CHECK_FUNCS([calloc])
AC_CHECK_FUNCS([close])
AC_CHECK_FUNCS([confstr])
AC_CHECK_FUNCS([fsync])
AC_CHECK_FUNCS([ftruncate])
AC_CHECK_FUNCS([getcwd])
+AC_CHECK_FUNCS([getenv])
AC_CHECK_FUNCS([gethostbyname])
AC_CHECK_FUNCS([gethostname])
AC_CHECK_FUNCS([getpagesize])
AC_CHECK_FUNCS([mmap])
AC_CHECK_FUNCS([mprotect])
AC_CHECK_FUNCS([open])
+AC_CHECK_FUNCS([printf])
AC_CHECK_FUNCS([read])
AC_CHECK_FUNCS([readlink])
AC_CHECK_FUNCS([realloc])
AC_CHECK_FUNCS([shutdown])
AC_CHECK_FUNCS([socket])
AC_CHECK_FUNCS([stat])
+AC_CHECK_FUNCS([str2sig])
AC_CHECK_FUNCS([strcat])
AC_CHECK_FUNCS([strchr])
AC_CHECK_FUNCS([strcpy])
+AC_CHECK_FUNCS([strcmp])
AC_CHECK_FUNCS([strdup])
AC_CHECK_FUNCS([strerror])
AC_CHECK_FUNCS([strlen])
AC_CHECK_ENABLE_CYCLE_STATS
AC_CHECK_ENABLE_JVMTI
AC_CHECK_ENABLE_THREADS
+if test x"${ENABLE_THREADS}" != "xno"; then
+ AC_CHECK_USE___THREAD
+fi
AC_CHECK_ENABLE_IFCONV
AC_CHECK_ENABLE_INLINING
AC_CHECK_ENABLE_INLINING_DEBUG
AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
AM_CONDITIONAL([ENABLE_ESCAPE], test x"${ENABLE_SSA}" = "xyes")
AM_CONDITIONAL([ENABLE_ESCAPE_CHECK], test x"${ENABLE_SSA}" = "xyes")
+AM_CONDITIONAL([ENABLE_TLH], test x"${ENABLE_SSA}" = "xyes")
if test x"${ENABLE_SSA}" = "xyes"; then
AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
AC_DEFINE([ENABLE_ESCAPE], 1, [enable escape analysis with ssa])
AC_DEFINE([ENABLE_ESCAPE_CHECK], 1, [enable generating code to validate escape analysis results])
+ AC_DEFINE([ENABLE_TLH], 1, [enable thread local heap])
ENABLE_LSRA="no"
fi
AM_CONDITIONAL([USE_SCHEDULER], [false])
fi
+AC_CHECK_ENABLE_OPAGENT
AC_CHECK_ENABLE_ZLIB
AC_CHECK_ENABLE_ANNOTATIONS
AC_CHECK_ENABLE_ASSERTION
+dnl This one depends on AC_CHECK_ENABLE_ZLIB.
+AC_CHECK_WITH_VM_ZIP
-dnl where is CACAO's vm.zip
-AC_MSG_CHECKING(where CACAO's vm.zip is installed)
-AC_ARG_WITH([vm-zip],
- [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]])],
- [CACAO_VM_ZIP=${withval}],
- [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
-AC_MSG_RESULT(${CACAO_VM_ZIP})
-AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
-AC_SUBST(CACAO_VM_ZIP)
-
-
-AC_CHECK_WITH_CACAOH
AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY
dnl Now we check for jre-layout so we can skip some checks that are
AC_CHECK_WITH_JNI_MD_H
AC_CHECK_WITH_JNI_H
-dnl HPI is only required for OpenJDK
+dnl JVM, HPI, and JMM is only required for OpenJDK.
case "${WITH_JAVA_RUNTIME_LIBRARY}" in
openjdk)
+ AC_CHECK_WITH_JVM_MD_H
+ AC_CHECK_WITH_JVM_H
AC_CHECK_WITH_HPI_MD_H
AC_CHECK_WITH_HPI_H
+ AC_CHECK_WITH_JMM_H
;;
*)
;;
[man/Makefile]
[src/Makefile]
[src/cacao/Makefile]
- [src/cacaoh/Makefile]
[src/classes/Makefile]
[src/fdlibm/Makefile]
[src/mm/Makefile]
[src/vm/jit/i386/darwin/Makefile]
[src/vm/jit/i386/freebsd/Makefile]
[src/vm/jit/i386/linux/Makefile]
+ [src/vm/jit/i386/solaris/Makefile]
[src/vm/jit/intrp/Makefile]
[src/vm/jit/inline/Makefile]
[src/vm/jit/ir/Makefile]
[src/vm/jit/x86_64/Makefile]
[src/vm/jit/x86_64/freebsd/Makefile]
[src/vm/jit/x86_64/linux/Makefile]
- [src/vmcore/Makefile]
+ [src/vm/jit/x86_64/solaris/Makefile]
[tests/Makefile]
[tests/regression/Makefile]
[tests/regression/assertion/Makefile]