aboutsummaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2013-05-08 12:52:58 +0200
committerGuido Günther <agx@sigxcpu.org>2013-05-08 12:52:58 +0200
commit9a8e56049ebf9f0878c7fe3efc0921df8aa6a0ba (patch)
tree7d61a00fa8d6ec4667663370cc42b04be03ec569 /acinclude.m4
Imported Upstream version 7u21-2.3.9upstream/7u21-2.3.9upstream
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m42467
1 files changed, 2467 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..7238f5f
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,2467 @@
+AC_DEFUN([IT_SET_ARCH_SETTINGS],
+[
+ case "${host_cpu}" in
+ x86_64)
+ BUILD_ARCH_DIR=amd64
+ INSTALL_ARCH_DIR=amd64
+ JRE_ARCH_DIR=amd64
+ ARCHFLAG="-m64"
+ ;;
+ i?86)
+ BUILD_ARCH_DIR=i586
+ INSTALL_ARCH_DIR=i386
+ JRE_ARCH_DIR=i386
+ ARCH_PREFIX=${LINUX32}
+ ARCHFLAG="-m32"
+ ;;
+ alpha*)
+ BUILD_ARCH_DIR=alpha
+ INSTALL_ARCH_DIR=alpha
+ JRE_ARCH_DIR=alpha
+ ;;
+ arm*)
+ BUILD_ARCH_DIR=arm
+ INSTALL_ARCH_DIR=arm
+ JRE_ARCH_DIR=arm
+ ;;
+ mips)
+ BUILD_ARCH_DIR=mips
+ INSTALL_ARCH_DIR=mips
+ JRE_ARCH_DIR=mips
+ ;;
+ mipsel)
+ BUILD_ARCH_DIR=mipsel
+ INSTALL_ARCH_DIR=mipsel
+ JRE_ARCH_DIR=mipsel
+ ;;
+ powerpc)
+ BUILD_ARCH_DIR=ppc
+ INSTALL_ARCH_DIR=ppc
+ JRE_ARCH_DIR=ppc
+ ARCH_PREFIX=${LINUX32}
+ ARCHFLAG="-m32"
+ ;;
+ powerpc64)
+ BUILD_ARCH_DIR=ppc64
+ INSTALL_ARCH_DIR=ppc64
+ JRE_ARCH_DIR=ppc64
+ ARCHFLAG="-m64"
+ ;;
+ sparc)
+ BUILD_ARCH_DIR=sparc
+ INSTALL_ARCH_DIR=sparc
+ JRE_ARCH_DIR=sparc
+ CROSS_TARGET_ARCH=sparc
+ ARCH_PREFIX=${LINUX32}
+ ARCHFLAG="-m32"
+ ;;
+ sparc64)
+ BUILD_ARCH_DIR=sparcv9
+ INSTALL_ARCH_DIR=sparcv9
+ JRE_ARCH_DIR=sparc64
+ ARCHFLAG="-m64"
+ ;;
+ s390)
+ BUILD_ARCH_DIR=s390
+ INSTALL_ARCH_DIR=s390
+ JRE_ARCH_DIR=s390
+ ARCH_PREFIX=${LINUX32}
+ ARCHFLAG="-m31"
+ ;;
+ s390x)
+ BUILD_ARCH_DIR=s390x
+ INSTALL_ARCH_DIR=s390x
+ JRE_ARCH_DIR=s390x
+ CROSS_TARGET_ARCH=s390x
+ ARCHFLAG="-m64"
+ ;;
+ sh*)
+ BUILD_ARCH_DIR=sh
+ INSTALL_ARCH_DIR=sh
+ JRE_ARCH_DIR=sh
+ CROSS_TARGET_ARCH=sh
+ ;;
+ *)
+ BUILD_ARCH_DIR=`uname -m`
+ INSTALL_ARCH_DIR=$BUILD_ARCH_DIR
+ JRE_ARCH_DIR=$INSTALL_ARCH_DIR
+ ;;
+ esac
+ AC_SUBST(BUILD_ARCH_DIR)
+ AC_SUBST(INSTALL_ARCH_DIR)
+ AC_SUBST(JRE_ARCH_DIR)
+ AC_SUBST(ARCH_PREFIX)
+ AC_SUBST(ARCHFLAG)
+])
+
+AC_DEFUN([IT_SET_OS_DIRS],
+[
+ case "${host_os}" in
+ *linux*)
+ BUILD_OS_DIR=linux
+ OS_PATH=
+ ;;
+ *solaris*)
+ BUILD_OS_DIR=solaris
+ OS_PATH=/opt/SunStudioExpress/bin:/opt/SUNWpro/bin:/usr/gnu/bin
+ ;;
+ *darwin*|*bsd*)
+ BUILD_OS_DIR=bsd
+ OS_PATH=
+ ;;
+ *)
+ AC_MSG_ERROR([unsupported operating system ${host_os}])
+ ;;
+ esac
+ AC_SUBST(BUILD_OS_DIR)
+ AC_SUBST(OS_PATH)
+])
+
+AC_DEFUN([IT_FIND_COMPILER],
+[
+ IT_FIND_JAVAC
+ IT_FIND_ECJ
+ IT_USING_ECJ
+
+ AC_SUBST(ECJ)
+ AC_SUBST(JAVAC)
+])
+
+AC_DEFUN_ONCE([IT_FIND_ECJ],
+[
+ ECJ_DEFAULT=/usr/bin/ecj
+ AC_MSG_CHECKING([if an ecj binary was specified])
+ AC_ARG_WITH([ecj],
+ [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
+ [
+ if test "x${withval}" = "xyes"; then
+ ECJ=no
+ else
+ ECJ="${withval}"
+ fi
+ ],
+ [
+ ECJ=no
+ ])
+ AC_MSG_RESULT(${ECJ})
+ if test "x${ECJ}" = "xno"; then
+ ECJ=${ECJ_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $ECJ is a valid executable file])
+ if test -x "${ECJ}" && test -f "${ECJ}"; then
+ AC_MSG_RESULT([yes])
+ else
+ ECJ=""
+ AC_PATH_PROG(ECJ, "ecj")
+ if test -z "${ECJ}"; then
+ AC_PATH_PROG(ECJ, "ecj-3.1")
+ fi
+ if test -z "${ECJ}"; then
+ AC_PATH_PROG(ECJ, "ecj-3.2")
+ fi
+ if test -z "${ECJ}"; then
+ AC_PATH_PROG(ECJ, "ecj-3.3")
+ fi
+ if test -z "${ECJ}"; then
+ AC_PATH_PROG(ECJ, "ecj-3.4")
+ fi
+ fi
+])
+
+AC_DEFUN_ONCE([IT_FIND_JAVAC],
+[
+ JAVAC_DEFAULT=${SYSTEM_JDK_DIR}/bin/javac
+ AC_MSG_CHECKING([if a javac binary was specified])
+ AC_ARG_WITH([javac],
+ [AS_HELP_STRING([--with-javac[[=PATH]]],the path to a javac binary)],
+ [
+ if test "x${withval}" = "xyes"; then
+ JAVAC=no
+ else
+ JAVAC="${withval}"
+ fi
+ ],
+ [
+ JAVAC=no
+ ])
+ AC_MSG_RESULT(${JAVAC})
+ if test "x${JAVAC}" = "xno"; then
+ JAVAC=${JAVAC_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $JAVAC is a valid executable file])
+ if test -x "${JAVAC}" && test -f "${JAVAC}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ JAVAC=""
+ AC_PATH_PROG(JAVAC, "javac")
+ fi
+ AC_SUBST(JAVAC)
+ ])
+])
+
+AC_DEFUN_ONCE([IT_FIND_JAVA],
+[
+ JAVA_DEFAULT=${SYSTEM_JDK_DIR}/bin/java
+ AC_MSG_CHECKING([if a java binary was specified])
+ AC_ARG_WITH([java],
+ [AS_HELP_STRING([--with-java[[=PATH]]],specify location of a 1.5 Java VM)],
+ [
+ if test "x${withval}" = "xyes"; then
+ JAVA=no
+ else
+ JAVA="${withval}"
+ fi
+ ],
+ [
+ JAVA=no
+ ])
+ AC_MSG_RESULT(${JAVA})
+ if test "x${JAVA}" = "xno"; then
+ JAVA=${JAVA_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $JAVA is a valid executable file])
+ if test -x "${JAVA}" && test -f "${JAVA}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ JAVA=""
+ AC_PATH_PROG(JAVA, "java")
+ if test -z "${JAVA}"; then
+ AC_PATH_PROG(JAVA, "gij")
+ fi
+ if test -z "${JAVA}"; then
+ AC_PATH_PROG(JAVA, "cacao")
+ fi
+ if test -z "${JAVA}"; then
+ AC_MSG_ERROR("A 1.5-compatible Java VM is required.")
+ fi
+ fi
+ AC_SUBST(JAVA)
+])
+
+AC_DEFUN_ONCE([IT_CP_SUPPORTS_REFLINK],
+[
+ AC_CACHE_CHECK([if cp supports --reflink], it_cv_reflink, [
+ touch tmp.$$
+ if cp --reflink=auto tmp.$$ tmp2.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_reflink=yes;
+ else
+ it_cv_reflink=no;
+ fi
+ rm -f tmp.$$ tmp2.$$
+ ])
+ AM_CONDITIONAL([CP_SUPPORTS_REFLINK], test x"${it_cv_reflink}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_WITH_OPENJDK_SRC_DIR],
+[
+ DEFAULT_SRC_DIR=${abs_top_builddir}/openjdk
+ AC_MSG_CHECKING([for an OpenJDK source directory])
+ AC_ARG_WITH([openjdk-src-dir],
+ [AS_HELP_STRING([--with-openjdk-src-dir=DIR],specify the location of the OpenJDK source tree)],
+ [
+ OPENJDK_SRC_DIR=${withval}
+ with_external_src_dir=true
+ ],
+ [
+ OPENJDK_SRC_DIR=${DEFAULT_SRC_DIR}
+ with_external_src_dir=false
+ ])
+ AC_MSG_RESULT(${OPENJDK_SRC_DIR})
+ AC_SUBST(OPENJDK_SRC_DIR)
+ if test "x${with_external_src_dir}" = "xtrue"; then
+ AC_MSG_CHECKING([if ${OPENJDK_SRC_DIR}/README exists])
+ if test -f ${OPENJDK_SRC_DIR}/README; then
+ openjdk_src_dir_valid=yes;
+ else
+ openjdk_src_dir_valid="no, resetting to ${DEFAULT_SRC_DIR}";
+ OPENJDK_SRC_DIR=${DEFAULT_SRC_DIR}
+ with_external_src_dir=false
+ fi
+ AC_MSG_RESULT(${openjdk_src_dir_valid})
+ if test "x${openjdk_src_dir_valid}" = "xyes"; then
+ AC_MSG_CHECKING([if we can hard link rather than copy the OpenJDK source directory])
+ if cp -l ${OPENJDK_SRC_DIR}/README tmp.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
+ openjdk_src_dir_hardlinkable=yes;
+ else
+ openjdk_src_dir_hardlinkable=no;
+ fi
+ AC_MSG_RESULT(${openjdk_src_dir_hardlinkable})
+ rm -f tmp.$$
+ fi
+ fi
+ AM_CONDITIONAL(OPENJDK_SRC_DIR_FOUND, test "x${with_external_src_dir}" = "xtrue")
+ AM_CONDITIONAL(OPENJDK_SRC_DIR_HARDLINKABLE, test "x${openjdk_src_dir_hardlinkable}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_CAN_HARDLINK_TO_SOURCE_TREE],
+[
+ AC_CACHE_CHECK([if we can hard link rather than copy from ${abs_top_srcdir}], it_cv_hardlink_src, [
+ if cp -l ${abs_top_srcdir}/README tmp.$$ >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_hardlink_src=yes;
+ else
+ it_cv_hardlink_src=no;
+ fi
+ rm -f tmp.$$
+ ])
+ AM_CONDITIONAL([SRC_DIR_HARDLINKABLE], test x"${it_cv_hardlink_src}" = "xyes")
+])
+
+AC_DEFUN([IT_FIND_ECJ_JAR],
+[
+ AC_MSG_CHECKING([for an ecj JAR file])
+ AC_ARG_WITH([ecj-jar],
+ [AS_HELP_STRING([--with-ecj-jar[[=PATH]]],specify location of an ECJ JAR file)],
+ [
+ if test -f "${withval}"; then
+ ECJ_JAR="${withval}"
+ fi
+ ],
+ [
+ ECJ_JAR=
+ ])
+ if test -z "${ECJ_JAR}"; then
+ for jar in /usr/share/java/eclipse-ecj.jar \
+ /usr/share/java/ecj.jar \
+ /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar; do
+ if test -e $jar; then
+ ECJ_JAR=$jar
+ break
+ fi
+ done
+ if test -z "${ECJ_JAR}"; then
+ ECJ_JAR=no
+ fi
+ fi
+ AC_MSG_RESULT(${ECJ_JAR})
+ if test "x${ECJ_JAR}" = "xno"; then
+ if test "x${JAVAC}" = "x"; then
+ AC_MSG_ERROR("No compiler or ecj JAR file was found.")
+ fi
+ fi
+ AC_SUBST(ECJ_JAR)
+])
+
+AC_DEFUN([IT_CHECK_GCC_VERSION],
+[
+ AC_MSG_CHECKING([version of GCC])
+ gcc_ver=`${CC} -dumpversion`
+ gcc_major_ver=`echo ${gcc_ver}|cut -d'.' -f1`
+ gcc_minor_ver=`echo ${gcc_ver}|cut -d'.' -f2`
+ AM_CONDITIONAL(GCC_OLD, test ! ${gcc_major_ver} -ge 4 -a ${gcc_minor_ver} -ge 3)
+ AC_MSG_RESULT([${gcc_ver} (major version ${gcc_major_ver}, minor version ${gcc_minor_ver})])
+])
+
+AC_DEFUN([IT_FIND_JAVAH],
+[
+ JAVAH_DEFAULT=${SYSTEM_JDK_DIR}/bin/javah
+ AC_MSG_CHECKING([if a javah executable is specified])
+ AC_ARG_WITH([javah],
+ [AS_HELP_STRING([--with-javah[[=PATH]]],specify location of javah)],
+ [
+ if test "x${withval}" = "xyes"; then
+ JAVAH=no
+ else
+ JAVAH="${withval}"
+ fi
+ ],
+ [
+ JAVAH=no
+ ])
+ AC_MSG_RESULT(${JAVAH})
+ if test "x${JAVAH}" == "xno"; then
+ JAVAH=${JAVAH_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $JAVAH is a valid executable file])
+ if test -x "${JAVAH}" && test -f "${JAVAH}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ JAVAH=""
+ AC_PATH_PROG(JAVAH, "javah")
+ if test -z "${JAVAH}"; then
+ AC_PATH_PROG(JAVAH, "gjavah")
+ fi
+ if test -z "${JAVAH}"; then
+ AC_MSG_ERROR("A Java header generator was not found.")
+ fi
+ fi
+ AC_SUBST(JAVAH)
+])
+
+AC_DEFUN([IT_FIND_JAR],
+[
+ JAR_DEFAULT=${SYSTEM_JDK_DIR}/bin/jar
+ AC_MSG_CHECKING([if a jar executable is specified])
+ AC_ARG_WITH([jar],
+ [AS_HELP_STRING([--with-jar[[=PATH]]],specify location of jar)],
+ [
+ if test "x${withval}" = "xyes"; then
+ JAR=no
+ else
+ JAR="${withval}"
+ fi
+ ],
+ [
+ JAR=no
+ ])
+ AC_MSG_RESULT(${JAR})
+ if test "x${JAR}" == "xno"; then
+ JAR=${JAR_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $JAR is a valid executable file])
+ if test -x "${JAR}" && test -f "${JAR}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ JAR=""
+ AC_PATH_PROG(JAR, "jar")
+ if test -z "${JAR}"; then
+ AC_PATH_PROG(JAR, "gjar")
+ fi
+ if test -z "${JAR}"; then
+ AC_MSG_ERROR("No Java archive tool was found.")
+ fi
+ fi
+ AC_MSG_CHECKING([whether jar supports @<file> argument])
+ touch _config.txt
+ cat >_config.list <<EOF
+_config.txt
+EOF
+ if $JAR cf _config.jar @_config.list >&AS_MESSAGE_LOG_FD 2>&1; then
+ JAR_KNOWS_ATFILE=1
+ AC_MSG_RESULT(yes)
+ else
+ JAR_KNOWS_ATFILE=
+ AC_MSG_RESULT(no)
+ fi
+ AC_MSG_CHECKING([whether jar supports stdin file arguments])
+ if cat _config.list | $JAR cf@ _config.jar >&AS_MESSAGE_LOG_FD 2>&1; then
+ JAR_ACCEPTS_STDIN_LIST=1
+ AC_MSG_RESULT(yes)
+ else
+ JAR_ACCEPTS_STDIN_LIST=
+ AC_MSG_RESULT(no)
+ fi
+ rm -f _config.list _config.jar
+ AC_MSG_CHECKING([whether jar supports -J options at the end])
+ if $JAR cf _config.jar _config.txt -J-Xmx896m >&AS_MESSAGE_LOG_FD 2>&1; then
+ JAR_KNOWS_J_OPTIONS=1
+ AC_MSG_RESULT(yes)
+ else
+ JAR_KNOWS_J_OPTIONS=
+ AC_MSG_RESULT(no)
+ fi
+ rm -f _config.txt _config.jar
+ AC_SUBST(JAR)
+ AC_SUBST(JAR_KNOWS_ATFILE)
+ AC_SUBST(JAR_ACCEPTS_STDIN_LIST)
+ AC_SUBST(JAR_KNOWS_J_OPTIONS)
+])
+
+AC_DEFUN([IT_FIND_RMIC],
+[
+ RMIC_DEFAULT=${SYSTEM_JDK_DIR}/bin/rmic
+ AC_MSG_CHECKING(if an rmic executable is specified)
+ AC_ARG_WITH([rmic],
+ [AS_HELP_STRING([--with-rmic[[=PATH]]],specify location of rmic)],
+ [
+ if test "x${withval}" = "xyes"; then
+ RMIC=no
+ else
+ RMIC="${withval}"
+ fi
+ ],
+ [
+ RMIC=no
+ ])
+ AC_MSG_RESULT(${RMIC})
+ if test "x${RMIC}" = "xno"; then
+ RMIC=${RMIC_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $RMIC is a valid executable file])
+ if test -x "${RMIC}" && test -f "${RMIC}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ RMIC=""
+ AC_PATH_PROG(RMIC, "rmic")
+ if test -z "${RMIC}"; then
+ AC_PATH_PROG(RMIC, "grmic")
+ fi
+ if test -z "${RMIC}"; then
+ AC_MSG_ERROR("An RMI compiler was not found.")
+ fi
+ fi
+ AC_SUBST(RMIC)
+])
+
+AC_DEFUN([IT_FIND_NATIVE2ASCII],
+[
+ NATIVE2ASCII_DEFAULT=${SYSTEM_JDK_DIR}/bin/native2ascii
+ AC_MSG_CHECKING([if a native2ascii binary was specified])
+ AC_ARG_WITH([native2ascii],
+ [AS_HELP_STRING(--with-native2ascii,specify location of the native2ascii converter)],
+ [
+ if test "x${withval}" = "xyes"; then
+ NATIVE2ASCII=no
+ else
+ NATIVE2ASCII="${withval}"
+ fi
+ ],
+ [
+ NATIVE2ASCII=no
+ ])
+ AC_MSG_RESULT(${NATIVE2ASCII})
+ if test "x${NATIVE2ASCII}" = "xno"; then
+ NATIVE2ASCII=${NATIVE2ASCII_DEFAULT}
+ fi
+ AC_MSG_CHECKING([if $NATIVE2ASCII is a valid executable file])
+ if test -x "${NATIVE2ASCII}" && test -f "${NATIVE2ASCII}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ NATIVE2ASCII=""
+ AC_PATH_PROG(NATIVE2ASCII, "native2ascii")
+ if test -z "${NATIVE2ASCII}"; then
+ AC_PATH_PROG(NATIVE2ASCII, "gnative2ascii")
+ fi
+ if test -z "${NATIVE2ASCII}"; then
+ AC_MSG_ERROR("A native2ascii converter was not found.")
+ fi
+ fi
+ AC_SUBST([NATIVE2ASCII])
+])
+
+AC_DEFUN([IT_WITH_OPENJDK_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for an OpenJDK source zip])
+ AC_ARG_WITH([openjdk-src-zip],
+ [AS_HELP_STRING([--with-openjdk-src-zip[[=PATH]]],specify the location of the OpenJDK source zip)],
+ [
+ ALT_OPENJDK_SRC_ZIP=${withval}
+ if test "x${ALT_OPENJDK_SRC_ZIP}" = "xno"; then
+ ALT_OPENJDK_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_OPENJDK_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid OpenJDK source zip specified: ${ALT_OPENJDK_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_OPENJDK_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_OPENJDK_SRC_ZIP, test "x${ALT_OPENJDK_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_OPENJDK_SRC_ZIP})
+ AC_SUBST(ALT_OPENJDK_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_ALT_JAR_BINARY],
+[
+ AC_MSG_CHECKING([for an alternate jar command])
+ AC_ARG_WITH([alt-jar],
+ [AS_HELP_STRING(--with-alt-jar=PATH, specify the location of an alternate jar binary to use for building)],
+ [
+ ALT_JAR_CMD=${withval}
+ AM_CONDITIONAL(USE_ALT_JAR, test x = x)
+ ],
+ [
+ ALT_JAR_CMD="not specified"
+ AM_CONDITIONAL(USE_ALT_JAR, test x != x)
+ ])
+ AC_MSG_RESULT(${ALT_JAR_CMD})
+ AC_SUBST(ALT_JAR_CMD)
+])
+
+AC_DEFUN([IT_FIND_RHINO_JAR],
+[
+ AC_MSG_CHECKING([whether to include Javascript support via Rhino])
+ AC_ARG_WITH([rhino],
+ [AS_HELP_STRING([--with-rhino[[=PATH]]],specify location of the rhino jar)],
+ [
+ case "${withval}" in
+ yes)
+ RHINO_JAR=yes
+ ;;
+ no)
+ RHINO_JAR=no
+ ;;
+ *)
+ if test -f "${withval}"; then
+ RHINO_JAR="${withval}"
+ else
+ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR("The rhino jar ${withval} was not found.")
+ fi
+ ;;
+ esac
+ ],
+ [
+ RHINO_JAR=yes
+ ])
+ if test x"${RHINO_JAR}" = "xyes"; then
+ if test -e "/usr/share/java/rhino.jar"; then
+ RHINO_JAR=/usr/share/java/rhino.jar
+ elif test -e "/usr/share/java/js.jar"; then
+ RHINO_JAR=/usr/share/java/js.jar
+ elif test -e "/usr/share/rhino-1.6/lib/js.jar"; then
+ RHINO_JAR=/usr/share/rhino-1.6/lib/js.jar
+ fi
+ if test x"${RHINO_JAR}" = "xyes"; then
+ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR("A rhino jar was not found in /usr/share/java as either rhino.jar or js.jar.")
+ fi
+ fi
+ AC_MSG_RESULT(${RHINO_JAR})
+ AM_CONDITIONAL(WITH_RHINO, test x"${RHINO_JAR}" != "xno")
+dnl Clear RHINO_JAR if it doesn't contain a valid filename
+ if test x"${RHINO_JAR}" = "xno"; then
+ RHINO_JAR=
+ fi
+ AC_SUBST(RHINO_JAR)
+])
+
+AC_DEFUN([IT_DISABLE_OPTIMIZATIONS],
+[
+ AC_MSG_CHECKING([whether to disable optimizations and build with -O0 -g])
+ AC_ARG_ENABLE([optimizations],
+ [AS_HELP_STRING(--disable-optimizations,build with -O0 -g [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ disable_optimizations=yes
+ ;;
+ *)
+ disable_optimizations=no
+ ;;
+ esac
+ ],
+ [
+ disable_optimizations=no
+ ])
+ AC_MSG_RESULT([$disable_optimizations])
+ AM_CONDITIONAL([DISABLE_OPTIMIZATIONS], test x"${disable_optimizations}" = "xyes")
+])
+
+AC_DEFUN([IT_FIND_TOOL],
+[AC_PATH_TOOL([$1],[$2])
+ if test x"$$1" = x ; then
+ AC_MSG_ERROR([$2 program not found in PATH])
+ fi
+ AC_SUBST([$1])
+])
+
+AC_DEFUN_ONCE([IT_ENABLE_ZERO_BUILD],
+[
+ AC_REQUIRE([IT_SET_ARCH_SETTINGS])
+ AC_MSG_CHECKING([whether to use the zero-assembler port])
+ use_zero=no
+ AC_ARG_ENABLE([zero],
+ [AS_HELP_STRING(--enable-zero,
+ use zero-assembler port on non-zero platforms)],
+ [
+ case "${enableval}" in
+ no)
+ use_zero=no
+ ;;
+ *)
+ use_zero=yes
+ ;;
+ esac
+ ],
+ [
+ if test "x${use_shark}" = "xyes"; then
+ use_zero=yes;
+ else
+ case "${host}" in
+ i?86-*-*) ;;
+ sparc*-*-*) ;;
+ x86_64-*-*) ;;
+ *)
+ if test "x${ENABLE_CACAO}" != xno || \
+ test "x${ENABLE_JAMVM}" = xyes; then
+ use_zero=no
+ else
+ use_zero=yes
+ fi
+ ;;
+ esac
+ fi
+ ])
+ AC_MSG_RESULT($use_zero)
+ AM_CONDITIONAL(ZERO_BUILD, test "x${use_zero}" = xyes)
+
+ ZERO_LIBARCH="${INSTALL_ARCH_DIR}"
+ dnl can't use AC_CHECK_SIZEOF on multilib
+ case "${ZERO_LIBARCH}" in
+ i386|ppc|s390|sparc)
+ ZERO_BITSPERWORD=32
+ ;;
+ amd64|ppc64|s390x|sparc64)
+ ZERO_BITSPERWORD=64
+ ;;
+ *)
+ AC_CHECK_SIZEOF(void *)
+ ZERO_BITSPERWORD=`expr "${ac_cv_sizeof_void_p}" "*" 8`
+ esac
+ AC_C_BIGENDIAN([ZERO_ENDIANNESS="big"], [ZERO_ENDIANNESS="little"])
+ case "${ZERO_LIBARCH}" in
+ i386)
+ ZERO_ARCHDEF="IA32"
+ ;;
+ ppc*)
+ ZERO_ARCHDEF="PPC"
+ ;;
+ s390*)
+ ZERO_ARCHDEF="S390"
+ ;;
+ sparc*)
+ ZERO_ARCHDEF="SPARC"
+ ;;
+ *)
+ ZERO_ARCHDEF=`echo ${ZERO_LIBARCH} | tr a-z A-Z`
+ esac
+ AC_SUBST(ZERO_LIBARCH)
+ AC_SUBST(ZERO_BITSPERWORD)
+ AC_SUBST(ZERO_ENDIANNESS)
+ AC_SUBST(ZERO_ARCHDEF)
+])
+
+AC_DEFUN([IT_SET_SHARK_BUILD],
+[
+ AC_MSG_CHECKING(whether to use the Shark JIT)
+ shark_selected=no
+ AC_ARG_ENABLE([shark], [AS_HELP_STRING(--enable-shark, use Shark JIT)],
+ [
+ case "${enableval}" in
+ no)
+ ;;
+ *)
+ shark_selected=yes
+ ;;
+ esac
+ ])
+
+ use_shark=no
+ if test "x${shark_selected}" = "xyes"; then
+ use_shark=yes
+ fi
+ AC_MSG_RESULT($use_shark)
+
+ AM_CONDITIONAL(SHARK_BUILD, test "x${use_shark}" = xyes)
+])
+
+AC_DEFUN([IT_ENABLE_CACAO],
+[
+ AC_MSG_CHECKING(whether to use CACAO as VM)
+ AC_ARG_ENABLE([cacao],
+ [AS_HELP_STRING(--enable-cacao,use CACAO as VM [[default=no]])],
+ [
+ ENABLE_CACAO="${enableval}"
+ ],
+ [
+ ENABLE_CACAO=no
+ ])
+
+ AC_MSG_RESULT(${ENABLE_CACAO})
+ AM_CONDITIONAL(ENABLE_CACAO, test x"${ENABLE_CACAO}" = "xyes")
+ AC_SUBST(ENABLE_CACAO)
+])
+
+AC_DEFUN([IT_WITH_CACAO_HOME],
+[
+ AC_MSG_CHECKING([for a CACAO home directory])
+ AC_ARG_WITH([cacao-home],
+ [AS_HELP_STRING([--with-cacao-home[[=PATH]]],
+ [CACAO home directory [[PATH=/usr/local/cacao]]])],
+ [
+ case "${withval}" in
+ yes)
+ CACAO_IMPORT_PATH=/usr/local/cacao
+ ;;
+ *)
+ CACAO_IMPORT_PATH=${withval}
+ ;;
+ esac
+ AM_CONDITIONAL(USE_SYSTEM_CACAO, true)
+ ],
+ [
+ CACAO_IMPORT_PATH="\$(abs_top_builddir)/cacao/install"
+ AM_CONDITIONAL(USE_SYSTEM_CACAO, false)
+ ])
+ AC_MSG_RESULT(${CACAO_IMPORT_PATH})
+ AC_SUBST(CACAO_IMPORT_PATH)
+])
+
+AC_DEFUN([IT_WITH_CACAO_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a CACAO source zip])
+ AC_ARG_WITH([cacao-src-zip],
+ [AS_HELP_STRING(--with-cacao-src-zip=PATH,specify the location of the CACAO source zip)],
+ [
+ ALT_CACAO_SRC_ZIP=${withval}
+ if test "x${ALT_CACAO_SRC_ZIP}" = "xno"; then
+ ALT_CACAO_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_CACAO_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid CACAO source zip specified: ${ALT_CACAO_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_CACAO_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_CACAO_SRC_ZIP, test "x${ALT_CACAO_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_CACAO_SRC_ZIP})
+ AC_SUBST(ALT_CACAO_SRC_ZIP)
+])
+
+AC_DEFUN([IT_ENABLE_HG],
+[
+ AC_REQUIRE([IT_WITH_PROJECT])
+ AC_MSG_CHECKING(whether to retrieve the source code from Mercurial)
+ AC_ARG_ENABLE([hg],
+ [AS_HELP_STRING(--enable-hg,download source code from Mercurial [[default=depends on project]])],
+ [
+ case "${enableval}" in
+ no)
+ enable_hg=no
+ ;;
+ *)
+ enable_hg=yes
+ ;;
+ esac
+ ],
+ [
+ case "${project}" in
+ icedtea)
+ enable_hg=no
+ ;;
+ *)
+ enable_hg=yes
+ ;;
+ esac
+ ])
+ AC_MSG_RESULT([${enable_hg}])
+ AM_CONDITIONAL([USE_HG], test x"${enable_hg}" = "xyes")
+])
+
+AC_DEFUN([IT_WITH_VERSION_SUFFIX],
+[
+ AC_MSG_CHECKING(if a version suffix has been specified)
+ AC_ARG_WITH([version-suffix],
+ [AS_HELP_STRING(--with-version-suffix=TEXT,appends the given text to the JDK version)],
+ [
+ case "${withval}" in
+ yes)
+ version_suffix=
+ AC_MSG_RESULT([no])
+ ;;
+ no)
+ version_suffix=
+ AC_MSG_RESULT([no])
+ ;;
+ *)
+ version_suffix=${withval}
+ AC_MSG_RESULT([${version_suffix}])
+ ;;
+ esac
+ ],
+ [
+ version_suffix=
+ AC_MSG_RESULT([no])
+ ])
+ AC_SUBST(VERSION_SUFFIX, $version_suffix)
+])
+
+AC_DEFUN([IT_WITH_PROJECT],
+[
+ AC_MSG_CHECKING(which OpenJDK project is being used)
+ AC_ARG_WITH([project],
+ [AS_HELP_STRING(--with-project=PROJECT,choose the OpenJDK project to use: icedtea jdk7 closures cvmi caciocavallo bsd nio2 [[PROJECT=icedtea]])],
+ [
+ case "${withval}" in
+ yes)
+ project=icedtea
+ ;;
+ no)
+ AC_MSG_ERROR([argument passed to --with-project should be a supported OpenJDK project (see help)])
+ ;;
+ *)
+ project=${withval}
+ ;;
+ esac
+ ],
+ [
+ project=icedtea
+ ])
+ AC_MSG_RESULT([${project}])
+ AC_SUBST(PROJECT_NAME, $project)
+ AM_CONDITIONAL([USE_CLOSURES], test x"${project}" = "xclosures")
+ AM_CONDITIONAL([USE_CVMI], test x"${project}" = "xcvmi")
+ AM_CONDITIONAL([USE_CACIOCAVALLO], test x"${project}" = "xcaciocavallo")
+ AM_CONDITIONAL([USE_BSD], test x"${project}" = "xbsd")
+ AM_CONDITIONAL([USE_NIO2], test x"${project}" = "xnio2")
+ AM_CONDITIONAL([USE_JDK7], test x"${project}" = "xjdk7")
+])
+
+AC_DEFUN([IT_WITH_GCJ],
+[
+ AC_MSG_CHECKING([whether to compile ecj natively])
+ AC_ARG_WITH([gcj],
+ [AS_HELP_STRING([--with-gcj[[=PATH]]],location of gcj for natively compiling ecj)],
+ [
+ GCJ="${withval}"
+ ],
+ [
+ GCJ="no"
+ ])
+ AC_MSG_RESULT([${GCJ}])
+ if test "x${GCJ}" = xyes; then
+ AC_PATH_TOOL([GCJ],[gcj])
+ fi
+ AM_CONDITIONAL([BUILD_NATIVE_ECJ], test x"${GCJ}" != xno)
+ AC_SUBST([GCJ])
+])
+
+AC_DEFUN([IT_WITH_HOTSPOT_BUILD],
+[
+ AC_REQUIRE([IT_ENABLE_ZERO_BUILD])
+ if test "x${use_zero}" = "xyes"; then
+ DEFAULT_BUILD="zero"
+ else
+ DEFAULT_BUILD="default"
+ fi
+ AC_MSG_CHECKING([which HotSpot build to use])
+ AC_ARG_WITH([hotspot-build],
+ [AS_HELP_STRING(--with-hotspot-build=BUILD,the HotSpot build to use [[BUILD=default]])],
+ [
+ HSBUILD="${withval}"
+ ],
+ [
+ HSBUILD="${DEFAULT_BUILD}"
+ ])
+ if test "x${HSBUILD}" = xyes; then
+ HSBUILD="${DEFAULT_BUILD}"
+ elif test "x${HSBUILD}" = xno; then
+ HSBUILD="default"
+ fi
+ AC_MSG_RESULT([${HSBUILD}])
+ AC_SUBST([HSBUILD])
+ AM_CONDITIONAL(WITH_ALT_HSBUILD, test "x${HSBUILD}" != "xdefault")
+])
+
+AC_DEFUN([IT_WITH_HOTSPOT_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a HotSpot source zip])
+ AC_ARG_WITH([hotspot-src-zip],
+ [AS_HELP_STRING(--with-hotspot-src-zip=PATH,specify the location of the HotSpot source zip)],
+ [
+ ALT_HOTSPOT_SRC_ZIP=${withval}
+ if test "x${ALT_HOTSPOT_SRC_ZIP}" = "xno"; then
+ ALT_HOTSPOT_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_HOTSPOT_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid HotSpot source zip specified: ${ALT_HOTSPOT_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_HOTSPOT_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_HOTSPOT_SRC_ZIP, test "x${ALT_HOTSPOT_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_HOTSPOT_SRC_ZIP})
+ AC_SUBST(ALT_HOTSPOT_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_CORBA_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a CORBA source zip])
+ AC_ARG_WITH([corba-src-zip],
+ [AS_HELP_STRING(--with-corba-src-zip=PATH,specify the location of the CORBA source zip)],
+ [
+ ALT_CORBA_SRC_ZIP=${withval}
+ if test "x${ALT_CORBA_SRC_ZIP}" = "xno"; then
+ ALT_CORBA_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_CORBA_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid CORBA source zip specified: ${ALT_CORBA_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_CORBA_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_CORBA_SRC_ZIP, test "x${ALT_CORBA_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_CORBA_SRC_ZIP})
+ AC_SUBST(ALT_CORBA_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_JAXP_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a JAXP source zip])
+ AC_ARG_WITH([jaxp-src-zip],
+ [AS_HELP_STRING(--with-jaxp-src-zip=PATH,specify the location of the JAXP source zip)],
+ [
+ ALT_JAXP_SRC_ZIP=${withval}
+ if test "x${ALT_JAXP_SRC_ZIP}" = "xno"; then
+ ALT_JAXP_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_JAXP_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid JAXP source zip specified: ${ALT_JAXP_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_JAXP_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_JAXP_SRC_ZIP, test "x${ALT_JAXP_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_JAXP_SRC_ZIP})
+ AC_SUBST(ALT_JAXP_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_JAXWS_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a JAXWS source zip])
+ AC_ARG_WITH([jaxws-src-zip],
+ [AS_HELP_STRING(--with-jaxws-src-zip=PATH,specify the location of the JAXWS source zip)],
+ [
+ ALT_JAXWS_SRC_ZIP=${withval}
+ if test "x${ALT_JAXWS_SRC_ZIP}" = "xno"; then
+ ALT_JAXWS_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_JAXWS_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid JAXWS source zip specified: ${ALT_JAXWS_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_JAXWS_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_JAXWS_SRC_ZIP, test "x${ALT_JAXWS_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_JAXWS_SRC_ZIP})
+ AC_SUBST(ALT_JAXWS_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_JDK_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a JDK source zip])
+ AC_ARG_WITH([jdk-src-zip],
+ [AS_HELP_STRING(--with-jdk-src-zip=PATH,specify the location of the JDK source zip)],
+ [
+ ALT_JDK_SRC_ZIP=${withval}
+ if test "x${ALT_JDK_SRC_ZIP}" = "xno"; then
+ ALT_JDK_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_JDK_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid JDK source zip specified: ${ALT_JDK_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_JDK_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_JDK_SRC_ZIP, test "x${ALT_JDK_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_JDK_SRC_ZIP})
+ AC_SUBST(ALT_JDK_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_LANGTOOLS_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a langtools source zip])
+ AC_ARG_WITH([langtools-src-zip],
+ [AS_HELP_STRING(--with-langtools-src-zip=PATH,specify the location of the langtools source zip)],
+ [
+ ALT_LANGTOOLS_SRC_ZIP=${withval}
+ if test "x${ALT_LANGTOOLS_SRC_ZIP}" = "xno"; then
+ ALT_LANGTOOLS_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_LANGTOOLS_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid langtools source zip specified: ${ALT_LANGTOOLS_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_LANGTOOLS_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_LANGTOOLS_SRC_ZIP, test "x${ALT_LANGTOOLS_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_LANGTOOLS_SRC_ZIP})
+ AC_SUBST(ALT_LANGTOOLS_SRC_ZIP)
+])
+
+AC_DEFUN([IT_WITH_HG_REVISION],
+[
+ AC_MSG_CHECKING([which Mercurial revision to use])
+ AC_ARG_WITH([hg-revision],
+ [AS_HELP_STRING(--with-hg-revision=REV,the Mercurial revision to use [[REV=tip]])],
+ [
+ HGREV="${withval}"
+ AC_MSG_RESULT([${HGREV}])
+ ],
+ [
+ HGREV=""
+ AC_MSG_RESULT([tip])
+ ])
+ AC_SUBST([HGREV])
+ AM_CONDITIONAL(WITH_HGREV, test "x${HGREV}" != "x")
+])
+
+AC_DEFUN([IT_CHECK_IF_BOOTSTRAPPING],
+[
+ AC_MSG_CHECKING([whether to build a bootstrap version first])
+ AC_ARG_ENABLE([bootstrap],
+ [AS_HELP_STRING(--disable-bootstrap, don't build a bootstrap version [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ enable_bootstrap=no
+ ;;
+ *)
+ enable_bootstrap=yes
+ ;;
+ esac
+ ],
+ [
+ enable_bootstrap=yes
+ ])
+ AC_MSG_RESULT([${enable_bootstrap}])
+ AM_CONDITIONAL([BOOTSTRAPPING], test x"${enable_bootstrap}" = "xyes")
+])
+
+AC_DEFUN([IT_CHECK_FOR_JDK],
+[
+ AC_MSG_CHECKING([for a JDK home directory])
+ AC_ARG_WITH([jdk-home],
+ [AS_HELP_STRING([--with-jdk-home[[=PATH]]],
+ [jdk home directory (default is first predefined JDK found)])],
+ [
+ if test "x${withval}" = xyes
+ then
+ SYSTEM_JDK_DIR=
+ elif test "x${withval}" = xno
+ then
+ SYSTEM_JDK_DIR=
+ else
+ SYSTEM_JDK_DIR=${withval}
+ fi
+ ],
+ [
+ SYSTEM_JDK_DIR=
+ ])
+ if test -z "${SYSTEM_JDK_DIR}"; then
+ if test "x${enable_bootstrap}" = "xyes"; then
+ BOOTSTRAP_VMS="/usr/lib/jvm/java-gcj /usr/lib/jvm/gcj-jdk /usr/lib/jvm/cacao";
+ else
+ ICEDTEA6_VMS="/usr/lib/jvm/icedtea6 /usr/lib/jvm/java-6-openjdk"
+ fi
+ ICEDTEA7_VMS="/usr/lib/jvm/icedtea7 /usr/lib/jvm/java-1.7.0-openjdk"
+ for dir in ${BOOTSTRAP_VMS} ${ICEDTEA7_VMS} ${ICEDTEA6_VMS} \
+ /usr/lib/jvm/java-openjdk /usr/lib/jvm/openjdk /usr/lib/jvm/java-icedtea ; do
+ if test -d $dir; then
+ SYSTEM_JDK_DIR=$dir
+ break
+ fi
+ done
+ fi
+ AC_MSG_RESULT(${SYSTEM_JDK_DIR})
+ if ! test -d "${SYSTEM_JDK_DIR}"; then
+ AC_MSG_ERROR("A JDK JDK home directory could not be found.")
+ fi
+ AC_SUBST(SYSTEM_JDK_DIR)
+])
+
+AC_DEFUN([IT_JAVAH],[
+AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 39408], it_cv_cp39408_javah, [
+SUPERCLASS=Test.java
+SUBCLASS=TestImpl.java
+SUB=$(echo $SUBCLASS|sed 's#\.java##')
+SUBHEADER=$(echo $SUBCLASS|sed 's#\.java#.h#')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $SUPERCLASS
+/* [#]line __oline__ "configure" */
+public class Test
+{
+ public static final int POTATO = 0;
+ public static final int CABBAGE = 1;
+}
+EOF
+cat << \EOF > $SUBCLASS
+/* [#]line __oline__ "configure" */
+public class TestImpl
+ extends Test
+{
+ public native void doStuff();
+}
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $SUBCLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVAH -classpath . $SUB >&AS_MESSAGE_LOG_FD 2>&1; then
+ if cat $SUBHEADER | grep POTATO >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_cp39408_javah=no;
+ else
+ it_cv_cp39408_javah=yes;
+ fi
+ else
+ AC_MSG_ERROR([The Java header generator $JAVAH failed])
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $SUBCLASS >&AC_FD_CC
+ fi
+else
+ AC_MSG_ERROR([The Java compiler $JAVAC failed])
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $SUBCLASS >&AC_FD_CC
+fi
+])
+AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 40188], it_cv_cp40188_javah, [
+ if test -e $SUBHEADER ; then
+ if cat $SUBHEADER | grep TestImpl_POTATO >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_cp40188_javah=no;
+ else
+ it_cv_cp40188_javah=yes;
+ fi
+ fi
+])
+AC_CACHE_CHECK([if $JAVAH supports -X options], it_cv_javahx, [
+ if $JAVAH -Xbootclasspath:${SYSTEM_JDK_DIR}/jre/lib/rt.jar -classpath . $SUB >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_javahx=yes
+ else
+ it_cv_javahx=no
+ fi
+])
+rm -f $SUBCLASS $SUPERCLASS $SUBHEADER *.class
+AC_CACHE_CHECK([if $JAVAH exhibits Classpath bug 45526], it_cv_cp45526_javah, [
+SRC=Test.java
+CLASSFILE=$(echo $SRC|sed 's#\.java##')
+HEADER=$(echo $SRC|sed 's#\.java#.h#')
+cat << \EOF > $SRC
+/* [#]line __oline__ "configure" */
+public class Test
+{
+ public native void doStuff();
+
+ public class Inner
+ {
+ public native int doMoreStuff(long ptr);
+ }
+}
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $SRC >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVAH -classpath . $CLASSFILE >&AS_MESSAGE_LOG_FD 2>&1; then
+ if test -e Test_Inner.h ; then
+ it_cv_cp45526_javah=no;
+ else
+ it_cv_cp45526_javah=yes;
+ fi
+ else
+ AC_MSG_ERROR([The Java header generator $JAVAH failed])
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $SUBCLASS >&AC_FD_CC
+ fi
+else
+ AC_MSG_ERROR([The Java compiler $JAVAC failed])
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $SUBCLASS >&AC_FD_CC
+fi
+])
+rm -f $SRC *.class *.h
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([CP39408_JAVAH], test x"${it_cv_cp39408_javah}" = "xyes")
+AM_CONDITIONAL([CP40188_JAVAH], test x"${it_cv_cp40188_javah}" = "xyes")
+AM_CONDITIONAL([CP45526_JAVAH], test x"${it_cv_cp45526_javah}" = "xyes")
+AM_CONDITIONAL([JAVAH_SUPPORTS_X_OPTIONS], test x"${it_cv_javahx}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_CHECK_ADDITIONAL_VMS],
+[
+AC_MSG_CHECKING([for additional virtual machines to build])
+AC_ARG_WITH(additional-vms,
+ AC_HELP_STRING([--with-additional-vms=VM-LIST],
+ [build additional virtual machines. Valid value is a comma separated string with the backend names `cacao', `jamvm', `zero' and `shark'.]),
+[
+if test "x${withval}" != x ; then
+ with_additional_vms=${withval}
+ for vm in `echo ${with_additional_vms} | sed 's/,/ /g'`; do
+ case "x$vm" in
+ xcacao) add_vm_cacao=yes;;
+ xzero) add_vm_zero=yes;;
+ xshark) add_vm_shark=yes;;
+ xjamvm) add_vm_jamvm=yes;;
+ *) AC_MSG_ERROR([proper usage is --with-additional-vms=vm1,vm2,...])
+ esac
+ done
+fi])
+
+if test "x${with_additional_vms}" = x; then
+ with_additional_vms="none";
+fi
+AC_MSG_RESULT($with_additional_vms)
+
+AM_CONDITIONAL(ADD_JAMVM_BUILD, test x$add_vm_jamvm != x)
+AM_CONDITIONAL(ADD_CACAO_BUILD, test x$add_vm_cacao != x)
+AM_CONDITIONAL(ADD_ZERO_BUILD, test x$add_vm_zero != x || test x$add_vm_shark != x)
+AM_CONDITIONAL(ADD_SHARK_BUILD, test x$add_vm_shark != x)
+AM_CONDITIONAL(BUILD_CACAO, test x$add_vm_cacao != x || test "x${ENABLE_CACAO}" = xyes)
+AM_CONDITIONAL(BUILD_JAMVM, test x$add_vm_jamvm != x || test "x${ENABLE_JAMVM}" = xyes)
+
+if test "x${ENABLE_JAMVM}" = xyes && test "x${ADD_JAMVM_BUILD_TRUE}" = x; then
+ AC_MSG_ERROR([additional vm is the default vm])
+fi
+if test "x${ENABLE_CACAO}" = xyes && test "x${ADD_CACAO_BUILD_TRUE}" = x; then
+ AC_MSG_ERROR([additional vm is the default vm])
+fi
+if test "x${ZERO_BUILD_TRUE}" = x && test "x${ADD_ZERO_BUILD_TRUE}" = x && test "x${ADD_SHARK_BUILD_TRUE}" != x; then
+ AC_MSG_ERROR([additional vm is the default vm])
+fi
+if test "x${SHARK_BUILD_TRUE}" = x && test "x${ADD_SHARK_BUILD_TRUE}" = x; then
+ AC_MSG_ERROR([additional vm is the default vm])
+fi
+if test "x${USE_SYSTEM_CACAO_TRUE}" = x; then
+ AC_MSG_ERROR([cannot build with system cacao as additional vm])
+fi
+if test "x${ADD_ZERO_BUILD_TRUE}" = x && test "x${abs_top_builddir}" = "x${abs_top_srcdir}"; then
+ AC_MSG_ERROR([build of additional zero/shark VM requires build with srcdir != builddir])
+fi
+])
+
+AC_DEFUN([IT_LIBRARY_CHECK],[
+AC_CACHE_CHECK([if java.io.PrintStream is missing the 1.5 constructors (PR40616)], it_cv_cp40616, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.io.File;
+import java.io.PrintStream;
+
+public class Test
+{
+ public static void main(String[] args)
+ throws Exception
+ {
+ PrintStream p = new PrintStream(new File("bluh"), "UTF-8");
+ p.close();
+ }
+}]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1 ; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1 ; then
+ it_cv_cp40616=no;
+ else
+ it_cv_cp40616=yes;
+ fi
+else
+ it_cv_cp40616=yes;
+fi
+])
+rm -f $CLASS *.class bluh
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([CP40616], test x"${it_cv_cp40616}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_PR40630_CHECK],[
+if test "x${it_cv_JAVA_UTIL_SCANNER}" = "xno"; then
+ AC_CACHE_CHECK([if java.util.Scanner exhibits Classpath bug 40630], it_cv_cp40630, [
+ CLASS=Test.java
+ BYTECODE=$(echo $CLASS|sed 's#\.java##')
+ mkdir tmp.$$
+ cd tmp.$$
+ cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.util.Scanner;
+
+public class Test
+{
+ public static void main(String[] args)
+ throws Exception
+ {
+ Scanner s = new Scanner("Blah\nBlah\n\nBlah\n\n");
+ for (int i = 0; i < 5; ++i)
+ s.nextLine();
+ s.hasNextLine();
+ }
+}]
+EOF
+ if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_cp40630=no;
+ else
+ it_cv_cp40630=yes;
+ fi
+ else
+ it_cv_cp40630=yes;
+ fi
+ rm -f $CLASS *.class
+ cd ..
+ rmdir tmp.$$
+ ])
+fi
+AM_CONDITIONAL([CP40630], test x"${it_cv_cp40630}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_USING_ECJ],[
+AC_CACHE_CHECK([if we are using ecj as javac], it_cv_ecj, [
+if $JAVAC -version 2>&1| grep '^Eclipse' >&AS_MESSAGE_LOG_FD ; then
+ it_cv_ecj=yes;
+else
+ it_cv_ecj=no;
+fi
+])
+USING_ECJ=$it_cv_ecj
+AC_SUBST(USING_ECJ)
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_CHECK_ENABLE_WARNINGS],
+[
+ AC_MSG_CHECKING(whether to enable Java compiler warnings)
+ AC_ARG_ENABLE([warnings],
+ [AS_HELP_STRING(--enable-warnings,produce warnings from javac/ecj [[default=no]])],
+ [
+ ENABLE_WARNINGS="${enableval}"
+ ],
+ [
+ ENABLE_WARNINGS=no
+ ])
+
+ AC_MSG_RESULT(${ENABLE_WARNINGS})
+ AM_CONDITIONAL(ENABLE_WARNINGS, test x"${ENABLE_WARNINGS}" = "xyes")
+ AC_SUBST(ENABLE_WARNINGS)
+])
+
+AC_DEFUN([IT_WITH_TZDATA_DIR],
+[
+ DEFAULT="/usr/share/javazi"
+ AC_MSG_CHECKING([which Java timezone data directory to use])
+ AC_ARG_WITH([tzdata-dir],
+ [AS_HELP_STRING([--with-tzdata-dir[[=DIR]]],set the Java timezone data directory [[DIR=/usr/share/javazi]])],
+ [
+ if test "x${withval}" = x || test "x${withval}" = xyes; then
+ TZDATA_DIR_SET=yes
+ TZDATA_DIR="${DEFAULT}"
+ else
+ if test "x${withval}" = xno; then
+ TZDATA_DIR_SET=no
+ AC_MSG_RESULT([no])
+ else
+ TZDATA_DIR_SET=yes
+ TZDATA_DIR="${withval}"
+ fi
+ fi
+ ],
+ [
+ TZDATA_DIR="${DEFAULT}"
+ ])
+ if test "x${TZDATA_DIR}" != "x"; then
+ AC_MSG_RESULT([${TZDATA_DIR}])
+ fi
+ AC_SUBST([TZDATA_DIR])
+ AM_CONDITIONAL(WITH_TZDATA_DIR, test "x${TZDATA_DIR}" != "x")
+ AC_CONFIG_FILES([tz.properties])
+])
+
+dnl check that javac and java work
+AC_DEFUN_ONCE([IT_CHECK_JAVA_AND_JAVAC_WORK],[
+ AC_REQUIRE([IT_FIND_JAVA])
+ AC_REQUIRE([IT_FIND_COMPILER])
+ AC_CACHE_CHECK([if the VM and compiler work together], it_cv_jdk_works, [
+ CLASS=Test.java
+ BYTECODE=$(echo $CLASS|sed 's#\.java##')
+ mkdir tmp.$$
+ cd tmp.$$
+ cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+
+public class Test
+{
+ public static void main(String[] args)
+ {
+ System.out.println("Hello World!");
+ }
+}]
+EOF
+ if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_jdk_works=yes;
+ else
+ it_cv_jdk_works=no;
+ AC_MSG_ERROR([VM failed to run compiled class.])
+ fi
+ else
+ it_cv_jdk_works=no;
+ AC_MSG_ERROR([Compiler failed to compile Java code.])
+ fi
+ rm -f $CLASS *.class
+ cd ..
+ rmdir tmp.$$
+ ])
+AC_PROVIDE([$0])dnl
+])
+
+dnl Generic macro to check for a Java class
+dnl Takes two arguments: the name of the macro
+dnl and the name of the class. The macro name
+dnl is usually the name of the class with '.'
+dnl replaced by '_' and all letters capitalised.
+dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner])
+AC_DEFUN([IT_CHECK_FOR_CLASS],[
+AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+public class Test
+{
+ public static void main(String[] args)
+ {
+ System.err.println("Class found: " + $2.class);
+ }
+}
+]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_$1=no;
+ else
+ it_cv_$1=yes;
+ fi
+else
+ it_cv_$1=yes;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_FIND_NUMBER_OF_PROCESSORS],[
+ FIND_TOOL([GETCONF], [getconf])
+ AC_CACHE_CHECK([the number of online processors], it_cv_proc, [
+ if number=$($GETCONF _NPROCESSORS_ONLN); then
+ it_cv_proc=$number;
+ else
+ it_cv_proc=2;
+ fi
+ ])
+ AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN_ONCE([IT_GETDTDTYPE_CHECK],[
+ AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+ AC_CACHE_CHECK([if javax.xml.stream.events.Attribute.getDTDType() wrongly returns a QName], it_cv_dtdtype, [
+ CLASS=Test.java
+ BYTECODE=$(echo $CLASS|sed 's#\.java##')
+ mkdir tmp.$$
+ cd tmp.$$
+ cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import javax.xml.namespace.QName;
+import javax.xml.stream.Location;
+import javax.xml.stream.events.Attribute;
+import javax.xml.stream.events.Characters;
+import javax.xml.stream.events.EndElement;
+import javax.xml.stream.events.StartElement;
+
+import java.lang.reflect.Method;
+
+public class Test
+ implements Attribute
+{
+ // This method will not qualify if using an
+ // old version of Classpath where it returns
+ // a QName.
+ public String getDTDType() { return "Boom"; }
+
+ // Other Attribute methods
+ public QName getName() { return null; }
+ public String getValue() { return "Bang"; }
+ public boolean isSpecified() { return false; }
+
+ // XMLEvent methods
+ public Characters asCharacters() { return null; }
+ public EndElement asEndElement() { return null; }
+ public StartElement asStartElement() { return null; }
+ public int getEventType() { return 42; }
+ public Location getLocation() { return null; }
+ public QName getSchemaType() { return null; }
+ public boolean isAttribute() { return true; }
+ public boolean isCharacters() { return false; }
+ public boolean isEndDocument() { return false; }
+ public boolean isEndElement() { return false; }
+ public boolean isEntityReference() { return false; }
+ public boolean isNamespace() { return false; }
+ public boolean isProcessingInstruction() { return false; }
+ public boolean isStartDocument() { return false; }
+ public boolean isStartElement() { return false; }
+ public void writeAsEncodedUnicode(java.io.Writer w) {}
+
+ public static void main(String[] args)
+ {
+ for (Method m : Attribute.class.getMethods())
+ if (m.getName().equals("getDTDType"))
+ if (m.getReturnType().equals(QName.class))
+ System.exit(1);
+ }
+}]
+EOF
+ if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_dtdtype=no;
+ else
+ it_cv_dtdtype=yes;
+ fi
+ else
+ it_cv_dtdtype=yes;
+ fi
+ rm -f $CLASS *.class
+ cd ..
+ rmdir tmp.$$
+ ])
+AM_CONDITIONAL([DTDTYPE_QNAME], test x"${it_cv_dtdtype}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN_ONCE([IT_GET_PKGVERSION],
+[
+AC_MSG_CHECKING([for distribution package version])
+AC_ARG_WITH([pkgversion],
+ [AS_HELP_STRING([--with-pkgversion=PKG],
+ [Use PKG in the version string in addition to "IcedTea"])],
+ [case "$withval" in
+ yes) AC_MSG_ERROR([package version not specified]) ;;
+ no) PKGVERSION=none ;;
+ *) PKGVERSION="$withval" ;;
+ esac],
+ [PKGVERSION=none])
+AC_MSG_RESULT([${PKGVERSION}])
+AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone")
+AC_SUBST(PKGVERSION)
+])
+
+AC_DEFUN_ONCE([IT_GET_LSB_DATA],
+[
+AC_REQUIRE([IT_GET_PKGVERSION])
+AC_MSG_CHECKING([build identification])
+if test -n "$LSB_RELEASE"; then
+ lsb_info="$($LSB_RELEASE -ds | sed 's/^"//;s/"$//')"
+ if test "x$PKGVERSION" = "xnone"; then
+ DIST_ID="Built on $lsb_info ($(date))"
+ else
+ DIST_ID="$lsb_info, package $PKGVERSION"
+ fi
+ DIST_NAME="$($LSB_RELEASE -is | sed 's/^"//;s/"$//')"
+else
+ DIST_ID="Custom build ($(date))"
+ DIST_NAME="$build_os"
+fi
+AC_MSG_RESULT([${DIST_ID}])
+AC_SUBST(DIST_ID)
+AC_SUBST(DIST_NAME)
+])
+
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_MERCURIAL],
+[
+ AC_PATH_TOOL([HG],[hg])
+ AC_SUBST([HG])
+])
+
+AC_DEFUN_ONCE([IT_OBTAIN_HG_REVISIONS],
+[
+ AC_REQUIRE([IT_CHECK_FOR_MERCURIAL])
+ AC_REQUIRE([IT_WITH_OPENJDK_SRC_DIR])
+ ICEDTEA_REVISION="none";
+ JDK_REVISION="none";
+ HOTSPOT_REVISION="none";
+ if which ${HG} >&AS_MESSAGE_LOG_FD 2>&1; then
+ AC_MSG_CHECKING([for IcedTea Mercurial revision ID])
+ if test -e ${abs_top_srcdir}/.hg ; then
+ ICEDTEA_REVISION="r`(cd ${abs_top_srcdir}; ${HG} id -i)`" ;
+ fi ;
+ AC_MSG_RESULT([${ICEDTEA_REVISION}])
+ AC_SUBST([ICEDTEA_REVISION])
+ AC_MSG_CHECKING([for JDK Mercurial revision ID])
+ if test -e ${OPENJDK_SRC_DIR}/jdk/.hg ; then
+ JDK_REVISION="r`(cd ${OPENJDK_SRC_DIR}/jdk; ${HG} id -i)`" ;
+ fi ;
+ AC_MSG_RESULT([${JDK_REVISION}])
+ AC_SUBST([JDK_REVISION])
+ AC_MSG_CHECKING([for HotSpot Mercurial revision ID])
+ if test -e ${OPENJDK_SRC_DIR}/hotspot/.hg ; then \
+ HOTSPOT_REVISION="r`(cd ${OPENJDK_SRC_DIR}/hotspot; ${HG} id -i)`" ;
+ fi ;
+ AC_MSG_RESULT([${HOTSPOT_REVISION}])
+ AC_SUBST([HOTSPOT_REVISION])
+ fi;
+ AM_CONDITIONAL([HAS_ICEDTEA_REVISION], test "x${ICEDTEA_REVISION}" != xnone)
+ AM_CONDITIONAL([HAS_JDK_REVISION], test "x${JDK_REVISION}" != xnone)
+ AM_CONDITIONAL([HAS_HOTSPOT_REVISION], test "x${HOTSPOT_REVISION}" != xnone)
+])
+
+AC_DEFUN_ONCE([IT_OBTAIN_DEFAULT_LIBDIR],
+[
+dnl find the system library directory
+AC_CACHE_CHECK([for system library directory], [it_cv_default_libdir],
+[
+if test "x$LDD" = x; then
+ it_cv_default_libdir=/usr/lib
+else
+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([[]], [[]])])
+ $CC conftest.c
+ syslibdir=`$LDD a.out | sed -n '/libc\.so./s,.*=> */\(@<:@^/@:>@*\)/.*,\1,p'`
+ rm -f a.out
+ case x${syslibdir} in
+ xlib|xlib64|xlib32|xlibn32) NSS_LIBDIR=/usr/${syslibdir};;
+ *) it_cv_default_libdir=/usr/lib
+ esac
+fi
+])
+AC_SUBST([DEFAULT_LIBDIR], $it_cv_default_libdir)
+])
+
+AC_DEFUN_ONCE([IT_LOCATE_NSS],
+[
+AC_REQUIRE([IT_OBTAIN_DEFAULT_LIBDIR])
+AC_MSG_CHECKING([whether to enable the NSS-based security provider])
+AC_ARG_ENABLE([nss],
+ [AS_HELP_STRING([--enable-nss],
+ [Enable inclusion of NSS security provider])],
+ [ENABLE_NSS="${enableval}"], [ENABLE_NSS='no'])
+AM_CONDITIONAL([ENABLE_NSS], [test x$ENABLE_NSS = xyes])
+if test "x${ENABLE_NSS}" = "xyes"
+then
+ AC_MSG_RESULT([enabled by default (edit java.security to disable)])
+else
+ AC_MSG_RESULT([disabled by default (edit java.security to enable)])
+fi
+PKG_CHECK_MODULES(NSS, nss, [NSS_FOUND=yes], [NSS_FOUND=no])
+if test "x${NSS_FOUND}" = xno
+then
+ if test "x${ENABLE_NSS}" = "xyes"
+ then
+ AC_MSG_ERROR([Could not find NSS. Either install it or configure using --disable-nss.])
+ else
+ AC_MSG_WARN([Could not find NSS; using $DEFAULT_LIBDIR as its location.])
+ NSS_LIBDIR=$DEFAULT_LIBDIR
+ fi
+else
+ NSS_LIBDIR=`$PKG_CONFIG --variable=libdir nss`
+fi
+AC_SUBST(NSS_LIBDIR)
+AC_CONFIG_FILES([nss.cfg])
+])
+
+AC_DEFUN([IT_DIAMOND_CHECK],[
+ AC_CACHE_CHECK([if javac lacks support for the diamond operator], it_cv_diamond, [
+ CLASS=Test.java
+ BYTECODE=$(echo $CLASS|sed 's#\.java##')
+ mkdir tmp.$$
+ cd tmp.$$
+ cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.util.HashMap;
+import java.util.Map;
+
+public class Test
+{
+ public static void main(String[] args)
+ {
+ Map<String,String> m = new HashMap<>();
+ }
+}]
+EOF
+ if $JAVAC -cp . $JAVACFLAGS -source 7 -target 7 $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_diamond=no;
+ else
+ it_cv_diamond=yes;
+ fi
+ rm -f $CLASS *.class
+ cd ..
+ rmdir tmp.$$
+ ])
+AM_CONDITIONAL([JAVAC_LACKS_DIAMOND], test x"${it_cv_diamond}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+# Finds number of available processors using sysconf
+AC_DEFUN_ONCE([IT_FIND_NUMBER_OF_PROCESSORS],[
+ IT_FIND_TOOL([GETCONF], [getconf])
+ AC_CACHE_CHECK([the number of online processors], it_cv_proc, [
+ if number=$($GETCONF _NPROCESSORS_ONLN); then
+ it_cv_proc=$number;
+ else
+ it_cv_proc=2;
+ fi
+ ])
+ AC_PROVIDE([$0])dnl
+])
+
+# Provides the option --with-parallel-jobs
+# * --with-parallel-jobs; use jobs=processors + 1
+# * --with-parallel-jobs=x; use jobs=x
+# * --without-parallel-jobs (default); use jobs=2
+AC_DEFUN_ONCE([IT_CHECK_NUMBER_OF_PARALLEL_JOBS],
+[
+AC_REQUIRE([IT_FIND_NUMBER_OF_PROCESSORS])
+proc_default=$(($it_cv_proc + 1))
+AC_MSG_CHECKING([how many parallel build jobs to execute])
+AC_ARG_WITH([parallel-jobs],
+ [AS_HELP_STRING([--with-parallel-jobs[[=NUM]]],
+ [build IcedTea using the specified number of parallel jobs])],
+ [
+ if test "x${withval}" = xyes; then
+ PARALLEL_JOBS=${proc_default}
+ elif test "x${withval}" = xno; then
+ PARALLEL_JOBS=2
+ else
+ PARALLEL_JOBS=${withval}
+ fi
+ ],
+ [
+ PARALLEL_JOBS=2
+ ])
+AC_MSG_RESULT(${PARALLEL_JOBS})
+AC_SUBST(PARALLEL_JOBS)
+])
+
+AC_DEFUN_ONCE([IT_DISABLE_TESTS],
+[
+ AC_MSG_CHECKING([whether to disable the execution of the JTReg tests])
+ AC_ARG_ENABLE([tests],
+ [AS_HELP_STRING(--disable-tests,do not run the JTReg tests via make check [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ disable_tests=yes
+ ;;
+ *)
+ disable_tests=no
+ ;;
+ esac
+ ],
+ [
+ disable_tests=no
+ ])
+ AC_MSG_RESULT([$disable_tests])
+ AM_CONDITIONAL([DISABLE_TESTS], test x"${disable_tests}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_DISABLE_HOTSPOT_TESTS],
+[
+ AC_MSG_CHECKING([whether to disable the execution of the HotSpot JTReg tests])
+ AC_ARG_ENABLE([hotspot-tests],
+ [AS_HELP_STRING(--disable-hotspot-tests,do not run the HotSpot JTReg tests via make check-hotspot [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ disable_hotspot_tests=yes
+ ;;
+ *)
+ disable_hotspot_tests=no
+ ;;
+ esac
+ ],
+ [
+ disable_hotspot_tests=no
+ ])
+ AC_MSG_RESULT([$disable_hotspot_tests])
+ AM_CONDITIONAL([DISABLE_HOTSPOT_TESTS], test x"${disable_hotspot_tests}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_DISABLE_LANGTOOLS_TESTS],
+[
+ AC_MSG_CHECKING([whether to disable the execution of the langtools JTReg tests])
+ AC_ARG_ENABLE([langtools-tests],
+ [AS_HELP_STRING(--disable-langtools-tests,do not run the langtools JTReg tests via make check-langtools [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ disable_langtools_tests=yes
+ ;;
+ *)
+ disable_langtools_tests=no
+ ;;
+ esac
+ ],
+ [
+ disable_langtools_tests=no
+ ])
+ AC_MSG_RESULT([$disable_langtools_tests])
+ AM_CONDITIONAL([DISABLE_LANGTOOLS_TESTS], test x"${disable_langtools_tests}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_DISABLE_JDK_TESTS],
+[
+ AC_MSG_CHECKING([whether to disable the execution of the JDK JTReg tests])
+ AC_ARG_ENABLE([jdk-tests],
+ [AS_HELP_STRING(--disable-jdk-tests,do not run the JDK JTReg tests via make check-jdk [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ disable_jdk_tests=yes
+ ;;
+ *)
+ disable_jdk_tests=no
+ ;;
+ esac
+ ],
+ [
+ disable_jdk_tests=no
+ ])
+ AC_MSG_RESULT([$disable_jdk_tests])
+ AM_CONDITIONAL([DISABLE_JDK_TESTS], test x"${disable_jdk_tests}" = "xyes")
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_LCMS],
+[
+ AC_MSG_CHECKING([whether to use the system LCMS install])
+ AC_ARG_ENABLE([system-lcms],
+ [AS_HELP_STRING(--enable-system-lcms,use the system LCMS [[default=yes]])],
+ [
+ ENABLE_SYSTEM_LCMS="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_LCMS="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_LCMS})
+ if test x"${ENABLE_SYSTEM_LCMS}" = "xyes"; then
+ dnl Check for LCMS2 headers and libraries.
+ PKG_CHECK_MODULES(LCMS2, lcms2,[LCMS2_FOUND=yes],[LCMS2_FOUND=no])
+ if test "x${LCMS2_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find LCMS2; install LCMS2 or build with --disable-system-lcms to use the in-tree copy.])
+ fi
+ AC_SUBST(LCMS2_CFLAGS)
+ AC_SUBST(LCMS2_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_LCMS, test x"${ENABLE_SYSTEM_LCMS}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_LCMS)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_ZLIB],
+[
+ AC_MSG_CHECKING([whether to use the system zlib install])
+ AC_ARG_ENABLE([system-zlib],
+ [AS_HELP_STRING(--enable-system-zlib,use the system ZLIB [[default=yes]])],
+ [
+ ENABLE_SYSTEM_ZLIB="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_ZLIB="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_ZLIB})
+ if test x"${ENABLE_SYSTEM_ZLIB}" = "xyes"; then
+ dnl Check for ZLIB headers and libraries.
+ PKG_CHECK_MODULES(ZLIB, zlib,[ZLIB_FOUND=yes],[ZLIB_FOUND=no])
+ if test "x${ZLIB_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find ZLIB; install ZLIB or build with --disable-system-zlib to use the in-tree copy.])
+ fi
+ AC_SUBST(ZLIB_CFLAGS)
+ AC_SUBST(ZLIB_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_ZLIB, test x"${ENABLE_SYSTEM_ZLIB}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_ZLIB)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_JPEG],
+[
+ AC_MSG_CHECKING([whether to use the system jpeg install])
+ AC_ARG_ENABLE([system-jpeg],
+ [AS_HELP_STRING(--enable-system-jpeg,use the system libjpeg [[default=yes]])],
+ [
+ ENABLE_SYSTEM_JPEG="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_JPEG="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_JPEG})
+ if test x"${ENABLE_SYSTEM_JPEG}" = "xyes"; then
+ dnl Check for JPEG headers and libraries.
+ AC_CHECK_LIB([jpeg], [main],
+ , [AC_MSG_ERROR([Could not find JPEG library; install JPEG or build with --disable-system-jpeg to use the in-tree copy.])])
+ AC_CHECK_HEADER([jpeglib.h],
+ , [AC_MSG_ERROR([Could not find JPEG header; install JPEG or build with --disable-system-jpeg to use the in-tree copy.])])
+ JPEG_LIBS="-ljpeg"
+ AC_SUBST(JPEG_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_JPEG, test x"${ENABLE_SYSTEM_JPEG}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_JPEG)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_PNG],
+[
+ AC_MSG_CHECKING([whether to use the system libpng install])
+ AC_ARG_ENABLE([system-png],
+ [AS_HELP_STRING(--enable-system-png,use the system PNG [[default=yes]])],
+ [
+ ENABLE_SYSTEM_PNG="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_PNG="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_PNG})
+ if test x"${ENABLE_SYSTEM_PNG}" = "xyes"; then
+ dnl Check for PNG headers and libraries.
+ PKG_CHECK_MODULES(PNG, libpng,[LIBPNG_FOUND=yes],[LIBPNG_FOUND=no])
+ if test "x${LIBPNG_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find libpng; install libpng or build with --disable-system-png to use the in-tree copy.])
+ fi
+ AC_SUBST(PNG_CFLAGS)
+ AC_SUBST(PNG_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_PNG, test x"${ENABLE_SYSTEM_PNG}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_PNG)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_GIF],
+[
+ AC_MSG_CHECKING([whether to use the system giflib install])
+ AC_ARG_ENABLE([system-gif],
+ [AS_HELP_STRING(--enable-system-gif,use the system giflib [[default=yes]])],
+ [
+ ENABLE_SYSTEM_GIF="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_GIF="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_GIF})
+ if test x"${ENABLE_SYSTEM_GIF}" = "xyes"; then
+ dnl Check for GIF headers and libraries.
+ AC_CHECK_LIB([gif], [main],
+ , [AC_MSG_ERROR([Could not find GIF library; install GIF or build with --disable-system-gif to use the in-tree copy.])])
+ AC_CHECK_HEADER([gif_lib.h],
+ , [AC_MSG_ERROR([Could not find GIF header; install GIF or build with --disable-system-gif to use the in-tree copy.])])
+ GIF_LIBS="-lgif"
+ AC_SUBST(GIF_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_GIF, test x"${ENABLE_SYSTEM_GIF}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_GIF)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_GTK],
+[
+ AC_MSG_CHECKING([whether to use the system Gtk+ install])
+ AC_ARG_ENABLE([system-gtk],
+ [AS_HELP_STRING(--enable-system-gtk,use the system Gtk+ [[default=yes]])],
+ [
+ ENABLE_SYSTEM_GTK="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_GTK="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_GTK})
+ if test x"${ENABLE_SYSTEM_GTK}" = "xyes"; then
+ dnl Check for Gtk+ headers and libraries.
+ PKG_CHECK_MODULES(GTK, gtk+-2.0 gthread-2.0,[GTK_FOUND=yes],[GTK_FOUND=no])
+ if test "x${GTK_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find Gtk+; install Gtk+ or build with --disable-system-gtk to use the in-tree headers.])
+ fi
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_GTK, test x"${ENABLE_SYSTEM_GTK}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_GTK)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_GIO],
+[
+ AC_MSG_CHECKING([whether to use the system GIO install])
+ AC_ARG_ENABLE([system-gio],
+ [AS_HELP_STRING(--enable-system-gio,use the system GIO [[default=yes]])],
+ [
+ ENABLE_SYSTEM_GIO="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_GIO="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_GIO})
+ if test x"${ENABLE_SYSTEM_GIO}" = "xyes"; then
+ dnl Check for Gio+ headers and libraries.
+ PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.26,[GIO_FOUND=yes],[GIO_FOUND=no])
+ if test "x${GIO_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find GIO >= 2.26; install GIO or build with --disable-system-gio to use the in-tree headers.])
+ fi
+ AC_SUBST(GIO_CFLAGS)
+ AC_SUBST(GIO_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_GIO, test x"${ENABLE_SYSTEM_GIO}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_GIO)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_FONTCONFIG],
+[
+ AC_MSG_CHECKING([whether to use the system fontconfig install])
+ AC_ARG_ENABLE([system-fontconfig],
+ [AS_HELP_STRING(--enable-system-fontconfig,use the system fontconfig [[default=yes]])],
+ [
+ ENABLE_SYSTEM_FONTCONFIG="${enableval}"
+ ],
+ [
+ ENABLE_SYSTEM_FONTCONFIG="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSTEM_FONTCONFIG})
+ if test x"${ENABLE_SYSTEM_FONTCONFIG}" = "xyes"; then
+ dnl Check for Fontconfig+ headers and libraries.
+ PKG_CHECK_MODULES(FONTCONFIG, fontconfig,[FONTCONFIG_FOUND=yes],[FONTCONFIG_FOUND=no])
+ if test "x${FONTCONFIG_FOUND}" = xno
+ then
+ AC_MSG_ERROR([Could not find fontconfig; install fontconfig or build with --disable-system-fontconfig to use the in-tree headers.])
+ fi
+ AC_SUBST(FONTCONFIG_CFLAGS)
+ AC_SUBST(FONTCONFIG_LIBS)
+ fi
+ AM_CONDITIONAL(USE_SYSTEM_FONTCONFIG, test x"${ENABLE_SYSTEM_FONTCONFIG}" = "xyes")
+ AC_SUBST(ENABLE_SYSTEM_FONTCONFIG)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_CUPS],
+[
+ dnl Check for CUPS headers and libraries.
+ AC_CHECK_LIB([cups], [cupsServer],
+ , [AC_MSG_ERROR([Could not find CUPS library; install CUPS.])])
+ AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],
+ , [AC_MSG_ERROR([Could not find CUPS headers; install CUPS (including cups-devel on binary distros).])])
+ CUPS_LIBS="-lcups"
+ AC_SUBST(CUPS_LIBS)
+])
+
+AC_DEFUN_ONCE([IT_CHECK_FOR_SYSCALLS],
+[
+ AC_MSG_CHECKING([whether to build against the required syscalls])
+ AC_ARG_ENABLE([compile-against-syscalls],
+ [AS_HELP_STRING(--enable-compile-against-syscalls,compile against syscalls [[default=yes]])],
+ [
+ ENABLE_SYSCALL_COMPILATION="${enableval}"
+ ],
+ [
+ ENABLE_SYSCALL_COMPILATION="yes"
+ ])
+ AC_MSG_RESULT(${ENABLE_SYSCALL_COMPILATION})
+ if test x"${ENABLE_SYSCALL_COMPILATION}" = "xyes"; then
+ dnl Check for syscalls
+ AC_CHECK_FUNCS([openat64 fstatat64 fgetxattr fsetxattr fremovexattr flistxattr unlinkat renameat futimesat fdopendir epoll_create epoll_ctl epoll_wait],,
+ [AC_MSG_ERROR([Could not find required syscalls; check config.log and use --disable-compile-against-syscalls if necessary.])])
+ AC_CHECK_HEADERS([sys/epoll.h attr/xattr.h],
+ , [AC_MSG_ERROR([Could not find required system headers; install the appropriate files from glibc-headers, libc6-dev and/or libattr-devel, libattr1-dev or use --disable-compile-against-syscalls if necessary.])])
+ fi
+ AM_CONDITIONAL(USE_SYSCALL_COMPILATION, test x"${ENABLE_SYSCALL_COMPILATION}" = "xyes")
+ AC_SUBST(ENABLE_SYSCALL_COMPILATION)
+])
+
+AC_DEFUN([IT_ENABLE_JAMVM],
+[
+ AC_MSG_CHECKING(whether to use JamVM as VM)
+ AC_ARG_ENABLE([jamvm],
+ [AS_HELP_STRING(--enable-jamvm,use JamVM as VM [[default=no]])],
+ [
+ ENABLE_JAMVM="${enableval}"
+ ],
+ [
+ ENABLE_JAMVM=no
+ ])
+
+ AC_MSG_RESULT(${ENABLE_JAMVM})
+ AM_CONDITIONAL(ENABLE_JAMVM, test x"${ENABLE_JAMVM}" = "xyes")
+ AC_SUBST(ENABLE_JAMVM)
+])
+
+AC_DEFUN([IT_WITH_JAMVM_SRC_ZIP],
+[
+ AC_MSG_CHECKING([for a JamVM source zip])
+ AC_ARG_WITH([jamvm-src-zip],
+ [AS_HELP_STRING(--with-jamvm-src-zip,specify the location of the JamVM source zip)],
+ [
+ ALT_JAMVM_SRC_ZIP=${withval}
+ if test "x${ALT_JAMVM_SRC_ZIP}" = "xno"; then
+ ALT_JAMVM_SRC_ZIP="not specified"
+ elif ! test -f ${ALT_JAMVM_SRC_ZIP} ; then
+ AC_MSG_ERROR([Invalid JamVM source zip specified: ${ALT_JAMVM_SRC_ZIP}])
+ fi
+ ],
+ [
+ ALT_JAMVM_SRC_ZIP="not specified"
+ ])
+ AM_CONDITIONAL(USE_ALT_JAMVM_SRC_ZIP, test "x${ALT_JAMVM_SRC_ZIP}" != "xnot specified")
+ AC_MSG_RESULT(${ALT_JAMVM_SRC_ZIP})
+ AC_SUBST(ALT_JAMVM_SRC_ZIP)
+])
+
+AC_DEFUN([IT_BYTECODE7_CHECK],[
+AC_CACHE_CHECK([if the VM lacks support for 1.7 bytecode], it_cv_bytecode7, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+public class Test
+{
+ public static void main(String[] args)
+ {
+ }
+}]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 7 -target 7 $CLASS >&AS_MESSAGE_LOG_FD 2>&1 ; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1 ; then
+ it_cv_bytecode7=no;
+ else
+ it_cv_bytecode7=yes;
+ fi
+else
+ it_cv_bytecode7=yes;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([NO_BYTECODE7], test x"${it_cv_bytecode7}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_CHECK_IF_DOWNLOADING],
+[
+ AC_MSG_CHECKING([whether to download tarballs])
+ AC_ARG_ENABLE([downloading],
+ [AS_HELP_STRING(--disable-downloading,don't download tarballs [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ enable_downloading=no
+ ;;
+ *)
+ enable_downloading=yes
+ ;;
+ esac
+ ],
+ [
+ enable_downloading=yes
+ ])
+ AC_MSG_RESULT([${enable_downloading}])
+ AM_CONDITIONAL([DOWNLOADING], test x"${enable_downloading}" = "xyes")
+ AC_SUBST([enable_downloading])
+])
+
+AC_DEFUN_ONCE([IT_WITH_PAX],
+[
+ AC_MSG_CHECKING([for pax utility to use])
+ AC_ARG_WITH([pax],
+ [AS_HELP_STRING(--with-pax=COMMAND,the command used for pax marking)],
+ [
+ PAX_COMMAND=${withval}
+ ],
+ [
+ PAX_COMMAND="not specified"
+ ])
+ case "x${PAX_COMMAND}" in
+ xchpax)
+ case "${host_cpu}" in
+ i?86)
+ PAX_COMMAND_ARGS="-msp"
+ ;;
+ *)
+ PAX_COMMAND_ARGS="-m"
+ ;;
+ esac
+ ;;
+ xpaxctl)
+ case "${host_cpu}" in
+ i?86)
+ PAX_COMMAND_ARGS="-msp"
+ ;;
+ *)
+ PAX_COMMAND_ARGS="-m"
+ ;;
+ esac
+ ;;
+ *)
+ PAX_COMMAND="not specified"
+ PAX_COMMAND_ARGS="not specified"
+ ;;
+ esac
+ AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified")
+ AC_MSG_RESULT(${PAX_COMMAND})
+ AC_SUBST(PAX_COMMAND)
+ AC_SUBST(PAX_COMMAND_ARGS)
+])
+
+AC_DEFUN([IT_USING_CACAO],[
+ AC_REQUIRE([IT_FIND_JAVA])
+ AC_CACHE_CHECK([if we are using CACAO as the build VM], it_cv_cacao, [
+ if $JAVA -version 2>&1| grep '^CACAO' >&AS_MESSAGE_LOG_FD ; then
+ it_cv_cacao=yes;
+ else
+ it_cv_cacao=no;
+ fi
+ ])
+ USING_CACAO=$it_cv_cacao
+ AC_SUBST(USING_CACAO)
+ AM_CONDITIONAL(USING_CACAO, test "x${USING_CACAO}" = "xyes")
+ AC_PROVIDE([$0])dnl
+])
+
+dnl Generic macro to check for a Java method
+dnl Takes five arguments: the name of the macro,
+dnl the name of the method, the name of the class,
+dnl the method signature and an example call to the
+dnl method. The macro name is usually the name of
+dnl the class with '.' replaced by '_' and all letters
+dnl capitalised.
+dnl e.g. IT_CHECK_FOR_METHOD([JAVA_UTIL_REGEX_MATCHER_QUOTEREPLACEMENT],[java.util.regex.Matcher.quoteReplacement],[java.util.regex.Matcher],["quoteReplacement",String.class],java.util.regex.Matcher.quoteReplacement("Blah"))
+AC_DEFUN([IT_CHECK_FOR_METHOD],[
+AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.lang.reflect.Method;
+
+public class Test
+{
+ public static void main(String[] args)
+ {
+ Class<?> cl = $3.class;
+ try
+ {
+ Method m = cl.getDeclaredMethod($4);
+ System.err.println("Method found: " + m);
+ }
+ catch (NoSuchMethodException e)
+ {
+ System.exit(-1);
+ }
+ }
+
+ public void dontRun()
+ {
+ $5;
+ }
+
+}
+]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_$1=no;
+ else
+ it_cv_$1=yes;
+ fi
+else
+ it_cv_$1=yes;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes")
+AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([IT_ENABLE_WERROR],
+[
+ AC_MSG_CHECKING([whether to enable -Werror])
+ AC_ARG_ENABLE([Werror],
+ [AS_HELP_STRING(--enable-Werror,build with -Werror [[default=no]])],
+ [
+ case "${enableval}" in
+ yes)
+ enable_werror=yes
+ ;;
+ *)
+ enable_werror=no
+ ;;
+ esac
+ ],
+ [
+ enable_werror=no
+ ])
+ AC_MSG_RESULT([$enable_werror])
+ AM_CONDITIONAL([ENABLE_WERROR], test x"${enable_werror}" = "xyes")
+])
+
+AC_DEFUN([IT_ENABLE_JAR_COMPRESSION],
+[
+ AC_MSG_CHECKING([whether to enable JAR compression])
+ AC_ARG_ENABLE([jar-compression],
+ [AS_HELP_STRING(--disable-jar-compression,compress built jars [[default=yes]])],
+ [
+ case "${enableval}" in
+ no)
+ enable_jar_compression=no
+ ;;
+ *)
+ enable_jar_compression=yes
+ ;;
+ esac
+ ],
+ [
+ enable_jar_compression=yes
+ ])
+ AC_MSG_RESULT([$enable_jar_compression])
+ AM_CONDITIONAL([ENABLE_JAR_COMPRESSION], test x"${enable_jar_compression}" = "xyes")
+])
+
+dnl Generic macro to check for a Java constructor
+dnl Takes four arguments: the name of the macro,
+dnl the name of the class, the method signature
+dnl and an example call to the method. The macro name
+dnl is usually the name of the class with '.'
+dnl replaced by '_' and all letters capitalised.
+dnl e.g. IT_CHECK_FOR_CONSTRUCTOR([JAVAX_MANAGEMENT_STANDARDMBEAN_MXBEAN_TWO_ARG],[javax.management.StandardMBean],[Class.class,Boolean.TYPE],[Object.class, true])
+AC_DEFUN([IT_CHECK_FOR_CONSTRUCTOR],[
+AC_REQUIRE([IT_CHECK_JAVA_AND_JAVAC_WORK])
+AC_CACHE_CHECK([if $2($3) is missing], it_cv_$1, [
+CLASS=Test.java
+BYTECODE=$(echo $CLASS|sed 's#\.java##')
+mkdir tmp.$$
+cd tmp.$$
+cat << \EOF > $CLASS
+[/* [#]line __oline__ "configure" */
+import java.lang.reflect.Constructor;
+
+public class Test
+{
+ public static void main(String[] args)
+ {
+ Class<?> cl = $2.class;
+ try
+ {
+ Constructor<?> cons = cl.getDeclaredConstructor($3);
+ System.err.println("Constructor found: " + cons);
+ }
+ catch (NoSuchMethodException e)
+ {
+ System.exit(-1);
+ }
+ }
+
+ private class TestCons extends $2
+ {
+ TestCons()
+ {
+ super($4);
+ }
+ }
+
+}
+
+]
+EOF
+if $JAVAC -cp . $JAVACFLAGS -source 5 -target 5 -nowarn $CLASS >&AS_MESSAGE_LOG_FD 2>&1; then
+ if $JAVA -classpath . $BYTECODE >&AS_MESSAGE_LOG_FD 2>&1; then
+ it_cv_$1=no;
+ else
+ it_cv_$1=yes;
+ fi
+else
+ it_cv_$1=yes;
+fi
+])
+rm -f $CLASS *.class
+cd ..
+rmdir tmp.$$
+AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes")
+AC_PROVIDE([$0])dnl
+])