[gconf_enabled=no]
)
+AC_ARG_WITH([antlr-jar],
+ [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
+ [
+ ANTLR_JAR=$withval
+ ],
+ [
+ ANTLR_JAR=
+ ])
+
+AC_MSG_CHECKING([for antlr.jar])
+if test "x$ANTLR_JAR" = x; then
+ for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+ /usr/share/antlr/lib /usr/share/java /usr/lib;
+ do
+ if test -f "$antlr_lib_home/antlr.jar"; then
+ # FIXME: version check for antlr needed without using a VM
+ ANTLR_JAR="$antlr_lib_home/antlr.jar"
+ break
+ fi
+ done
+ if test "x$ANTLR_JAR" = x; then
+ AC_MSG_RESULT([not found])
+ else
+ AC_MSG_RESULT($ANTLR_JAR)
+ fi
+else
+ if test -f "${ANTLR_JAR}"; then
+ AC_MSG_RESULT($ANTLR_JAR)
+ else
+ AC_MSG_ERROR([antlr jar file not found: $ANTLR_JAR])
+ fi
+fi
+AC_SUBST(ANTLR_JAR)
+
+AC_ARG_ENABLE([gjdoc],
+ [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
+ [case "${enableval}" in
+ yes) BUILD_GJDOC=yes ;;
+ no) BUILD_GJDOC=no ;;
+ *) BUILD_GJDOC=yes ;;
+ esac],
+ [BUILD_GJDOC=maybe])
+
+AC_MSG_CHECKING([whether to build gjdoc])
+if test "x$BUILD_GJDOC" = xmaybe; then
+ if test -f "${ANTLR_JAR}"; then
+ BUILD_GJDOC=yes
+ AC_MSG_RESULT(yes)
+ else
+ BUILD_GJDOC=no
+ AC_MSG_RESULT([no, antlr.jar not found])
+ fi
+else
+ AC_MSG_RESULT($BUILD_GJDOC)
+fi
+AM_CONDITIONAL(CREATE_GJDOC, test "x${BUILD_GJDOC}" = xyes)
+
AC_ARG_ENABLE(java-maintainer-mode,
AS_HELP_STRING([--enable-java-maintainer-mode],
[allow rebuilding of .class and .h files]))
GCJH=gcjh
;;
esac
+JAVAC="$GCJ -C"
+export JAVAC
AC_SUBST(GCJ_FOR_ECJX)
AC_SUBST(GCJH)
# Set up to configure Classpath.
# FIXME: no supported way to pass args in autoconf.
-ac_configure_args="$ac_configure_args --with-fastjar=$JAR"
# Disable tool wrappers to avoid ltdl.h configure check.
ac_configure_args="$ac_configure_args --disable-tool-wrappers"
ac_configure_args="$ac_configure_args --disable-load-library"
ac_configure_args="$ac_configure_args --with-escher=$with_escher"
fi
fi
+if test "x$BUILD_GJDOC" = xno; then
+ ac_configure_args="$ac_configure_args --disable-gjdoc"
+fi
# -Werror causes unavoidable problems in code using alsa.
+ac_configure_args="$ac_configure_args --disable-regen-headers"
ac_configure_args="$ac_configure_args --disable-Werror"
dnl --with-gcj=$GCJ
dnl --with-javah=$GCJH
-dnl gjdoc?
dnl gtk-cairo -- just export here...
dnl --enable-regen-headers?
AM_CONDITIONAL(JAVA_HOME_SET, test ! -z "$JAVA_HOME")
AC_SUBST(JAVA_HOME)
+suppress_libgcj_bc=no
+AC_ARG_ENABLE(libgcj-bc,
+ AS_HELP_STRING([--enable-libgcj-bc],
+ [enable(default) or disable BC ABI for portions of libgcj]),
+ [if test "$enable_libgcj_bc" = "no"; then
+ suppress_libgcj_bc=yes
+ fi])
+AM_CONDITIONAL(SUPPRESS_LIBGCJ_BC, test "$suppress_libgcj_bc" = "yes")
+
+build_libgcj_reduced_reflection=no
+AC_ARG_ENABLE(reduced-reflection,
+ AS_HELP_STRING([--enable-reduced-reflection],
+ [enable or disable(default) -freduced-reflection when building portions of libgcj]),
+ [if test "$enable_reduced_reflection" = "yes"; then
+ build_libgcj_reduced_reflection=yes
+ fi])
+AM_CONDITIONAL(BUILD_LIBGCJ_REDUCED_REFLECTION, test "$build_libgcj_reduced_reflection" = "yes")
+
# What is the native OS API for MinGW?
AC_ARG_WITH(win32-nlsapi,
AS_HELP_STRING([--with-win32-nlsapi=ansi or unicows or unicode],
fi
INTERPRETER="$libgcj_interpreter"
AC_SUBST(INTERPRETER)
+AM_CONDITIONAL(INTERPRETER, test "$libgcj_interpreter" = yes)
AC_MSG_CHECKING([for exception model to use])
AC_LANG_PUSH(C++)
esac
AC_SUBST(SYSTEMSPEC)
-LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
-AC_SUBST(LIBGCJTESTSPEC)
-
AC_ARG_WITH(system-zlib,
AS_HELP_STRING([--with-system-zlib],
[use installed libz]))
# FIXME: this should be _libs on some hosts.
libsubdir=.libs
+LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
+
+LIBSTDCXXSPEC=
# extra LD Flags which are required for targets
case "${host}" in
*-*-darwin[[0-7]].*)
# on Darwin -single_module speeds up loading of the dynamic libraries.
extra_ldflags_libjava=-Wl,-single_module
;;
+*-*-darwin[[9]]*)
+ extra_gij_ldflags=-Wl,-allow_stack_execute
+ ;;
+arm*linux*eabi)
+ # Some of the ARM unwinder code is actually in libstdc++. We
+ # could in principle replicate it in libgcj, but it's better to
+ # have a dependency on libstdc++.
+ extra_ldflags='-L$(here)/../libstdc++-v3/src/.libs -lstdc++'
+ LIBSTDCXXSPEC=-lstdc++
+ LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
+ ;;
esac
AC_SUBST(extra_ldflags_libjava)
+AC_SUBST(extra_gij_ldflags)
+AC_SUBST(extra_ldflags)
+AC_SUBST(LIBSTDCXXSPEC)
+
+AC_SUBST(LIBGCJTESTSPEC)
# Allow the GC to be disabled. Can be useful when debugging.
AC_MSG_CHECKING([for garbage collector to use])
no | none | single)
THREADS=none
;;
- posix | posix95 | pthreads)
+ aix | posix | posix95 | pthreads)
THREADS=posix
case "$host" in
*-*-linux*)
PLATFORMNET=NoNet
else
AC_CHECK_FUNCS([strerror_r select fstat open fsync sleep opendir \
- localtime_r readdir_r getpwuid_r getcwd \
+ localtime_r getpwuid_r getcwd \
access stat lstat mkdir rename rmdir unlink utime chmod readlink \
nl_langinfo setlocale \
inet_pton uname inet_ntoa \
# On Solaris, and maybe other architectures, the Boehm collector
# requires -ldl.
if test "$GC" = boehm; then
- AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
+ case "${host}" in
+ mips-sgi-irix6*)
+ # IRIX 6 lacks a N64 libdl.so, but only the N32 (default multilib)
+ # libgcj.spec is used, so override here
+ SYSTEMSPEC="$SYSTEMSPEC %{!mabi=64:-ldl}"
+ ;;
+ *)
+ AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
+ ;;
+ esac
fi
fi
-e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
-e "s,@GTK_CAIRO_ENABLED@,false," \
-e "s,@ECJ_JAR@,," \
+ -e "s,@WANT_NATIVE_BIG_INTEGER@,false," \
< $srcdir/classpath/gnu/classpath/Configuration.java.in \
> gnu/classpath/Configuration.java
# We do not want to redirect the output of the grep below to /dev/null,
AC_SUBST(toolexecmainlibdir)
AC_SUBST(toolexeclibdir)
+# Determine gcj and libgcj version number.
+gcjversion=`cat "$srcdir/../gcc/BASE-VER"`
+libgcj_soversion=`awk -F: '/^[[^#]].*:/ { print $1 }' $srcdir/libtool-version`
+GCJVERSION=$gcjversion
+AC_SUBST(GCJVERSION)
+AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
+
# Determine where the standard .db file and GNU Classpath JNI
# libraries are found.
+gcjsubdir=gcj-$gcjversion-$libgcj_soversion
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.)
- dbexecdir='$(libdir)/gcj-$(gcc_version)' # Avoid /.
+ dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
;;
*)
- dbexecdir='$(libdir)/'$multi_os_directory'/gcj-$(gcc_version)'
+ dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir
;;
esac
AC_SUBST(dbexecdir)
-
-# Determine gcj version number.
-gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([[^ ]]*\).*$/\1/p'`
-GCJVERSION=$gcjversion
-AC_SUBST(GCJVERSION)
-AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
+AC_SUBST(gcjsubdir)
AC_DEFINE(JV_VERSION, "1.5.0", [Compatibility version string])
AC_DEFINE(JV_API_VERSION, "1.5", [API compatibility version string])
mips*-*-linux*)
SIGNAL_HANDLER=include/mips-signal.h
;;
- powerpc*-*-darwin*)
+ m68*-*-linux*)
+ SIGNAL_HANDLER=include/dwarf2-signal.h
+ ;;
+ powerpc*-*-darwin* | i?86-*-darwin9* | x86_64-*-darwin9*)
SIGNAL_HANDLER=include/darwin-signal.h
;;
+ powerpc*-*-aix*)
+ SIGNAL_HANDLER=include/aix-signal.h
+ ;;
*)
SIGNAL_HANDLER=include/default-signal.h
;;
# We get this from the environment.
AC_SUBST(GCJFLAGS)
+AC_ARG_WITH([python-dir],
+ AS_HELP_STRING([--with-python-dir],
+ [the location to install Python modules. This path should NOT include the prefix.]),
+ [with_python_dir=$withval], [with_python_dir=""])
+
+if test "x${with_python_dir}" = "x"
+then
+ # Needed for installing Python modules during make install.
+ python_mod_dir="\${prefix}/share/python"
+ # Needed for substituting into aot-compile*
+ python_mod_dir_expanded="${prefix}/share/python"
+else
+ python_mod_dir="\${prefix}${with_python_dir}"
+ python_mod_dir_expanded="${prefix}${with_python_dir}"
+fi
+AC_MSG_RESULT(Python modules dir: ${python_mod_dir_expanded});
+AC_SUBST(python_mod_dir)
+AC_SUBST(python_mod_dir_expanded)
+
+# needed for aot-compile-rpm
+MAKE=`which make`
+AC_SUBST(MAKE)
+
+AC_ARG_ENABLE([aot-compile-rpm],
+ [AS_HELP_STRING([--enable-aot-compile-rpm],
+ [enable installation of aot-compile-rpm [default=no]])],
+ [case "${enableval}" in
+ yes) AOT_RPM_ENABLED=yes ;;
+ no) AOT_RPM_ENABLED=no ;;
+ *) AC_MSG_ERROR([Unknown argument to enable/disable aot-compile-rpm]) ;;
+ esac],
+ [AOT_RPM_ENABLED=no]
+)
+AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" = xyes)
+
+AC_ARG_ENABLE([java-home],
+ [AS_HELP_STRING([--enable-java-home],
+ [create a standard JDK-style directory layout in the install tree [default=no]])],
+ [case "${enableval}" in
+ yes) JAVA_HOME_ENABLED=yes ;;
+ no) JAVA_HOME_ENABLED=no ;;
+ *) AC_MSG_ERROR([Unknown argument to enable/disable java-home]) ;;
+ esac],
+ [JAVA_HOME_ENABLED=no]
+)
+AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" = xyes)
+
+# Only do these checks if java-home above is enabled.
+if test "x${JAVA_HOME_ENABLED}" = xyes
+then
+
+ AC_ARG_WITH([gcc-suffix],
+ AS_HELP_STRING([--with-gcc-suffix],
+ [the GCC tool suffix (defaults to empty string)]),
+ [gcc_suffix=$withval], [gcc_suffix=""])
+ AC_MSG_RESULT(GCC suffix: ${gcc_suffix})
+ AC_SUBST(gcc_suffix)
+
+ AC_ARG_WITH([arch-directory],
+ AS_HELP_STRING([--with-arch-directory],
+ [the arch directory under jre/lib (defaults to auto-detect)]),
+ [host_cpu=$withval], [host_cpu=""])
+
+ AC_ARG_WITH([os-directory],
+ AS_HELP_STRING([--with-os-directory],
+ [the os directory under include (defaults to auto-detect)]),
+ [host_os=$withval], [host_os=""])
+
+ AC_ARG_WITH([origin-name],
+ AS_HELP_STRING([--with-origin-name],
+ [the JPackage origin name of this package (default is gcj${gcc_suffix}]),
+ [origin_name=$withval], [origin_name=gcj${gcc_suffix}])
+ AC_MSG_RESULT(JPackage origin name: ${origin_name})
+
+ AC_ARG_WITH([arch-suffix],
+ AS_HELP_STRING([--with-arch-suffix],
+ [the arch directory suffix (default is the empty string]),
+ [arch_suffix=$withval], [arch_suffix=""])
+ AC_MSG_RESULT(arch suffix: ${arch_suffix})
+
+ AC_ARG_WITH([jvm-root-dir],
+ AS_HELP_STRING([--with-jvm-root-dir],
+ [where to install SDK (default is ${prefix}/lib/jvm)]),
+ [jvm_root_dir=$withval], [jvm_root_dir="\${prefix}/lib/jvm"])
+ AC_MSG_RESULT(JVM root installation directory: ${jvm_root_dir})
+
+ AC_ARG_WITH([jvm-jar-dir],
+ AS_HELP_STRING([--with-jvm-jar-dir],
+ [where to install jars (default is ${prefix}/lib/jvm-exports)]),
+ [jvm_jar_dir=$withval], [jvm_jar_dir=\${prefix}/lib/jvm-exports])
+ AC_MSG_RESULT(JAR root installation directory: ${jvm_jar_dir})
+
+ JAVA_VERSION=1.5.0
+ BUILD_VERSION=0
+ AC_SUBST(JAVA_VERSION)
+ AC_SUBST(BUILD_VERSION)
+ AC_MSG_RESULT(Java version: ${JAVA_VERSION})
+
+ jre_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix}/jre
+ sdk_dir=java-${JAVA_VERSION}-${origin_name}-${JAVA_VERSION}.${BUILD_VERSION}${arch_suffix}
+ jre_lnk=jre-${JAVA_VERSION}-${origin_name}
+ sdk_lnk=java-${JAVA_VERSION}-${origin_name}
+
+ JVM_ROOT_DIR=${jvm_root_dir}
+ AC_SUBST(JVM_ROOT_DIR)
+ AC_MSG_RESULT(JVM ROOT directory: ${JVM_ROOT_DIR})
+
+ JVM_JAR_ROOT_DIR=${jvm_jar_dir}
+ AC_SUBST(JVM_JAR_ROOT_DIR)
+ AC_MSG_RESULT(JVM JAR ROOT directory: ${JVM_JAR_ROOT_DIR})
+
+ JVM_JAR_DIR=${jvm_jar_dir}/${sdk_dir}
+ AC_SUBST(JVM_JAR_DIR)
+ AC_MSG_RESULT(JVM JAR directory: ${JVM_JAR_DIR})
+
+ JRE_DIR=${jre_dir}
+ AC_SUBST(JRE_DIR)
+
+ SDK_DIR=${sdk_dir}
+ AC_SUBST(SDK_DIR)
+
+ JRE_LNK=${jre_lnk}
+ AC_SUBST(JRE_LNK)
+
+ SDK_LNK=${sdk_lnk}
+ AC_SUBST(SDK_LNK)
+
+ SDK_BIN_DIR=${jvm_root_dir}/${sdk_dir}/bin
+ AC_SUBST(SDK_BIN_DIR)
+ AC_MSG_RESULT(SDK tools directory: ${SDK_BIN_DIR})
+
+ SDK_LIB_DIR=${jvm_root_dir}/${sdk_dir}/lib
+ AC_SUBST(SDK_LIB_DIR)
+ AC_MSG_RESULT(SDK jar directory: ${SDK_LIB_DIR})
+
+ SDK_INCLUDE_DIR=${jvm_root_dir}/${sdk_dir}/include
+ AC_SUBST(SDK_INCLUDE_DIR)
+ AC_MSG_RESULT(SDK include directory: ${SDK_INCLUDE_DIR})
+
+ JRE_BIN_DIR=${jvm_root_dir}/${jre_dir}/bin
+ AC_SUBST(JRE_BIN_DIR)
+ AC_MSG_RESULT(JRE tools directory: ${JRE_BIN_DIR})
+
+ JRE_LIB_DIR=${jvm_root_dir}/${jre_dir}/lib
+ AC_SUBST(JRE_LIB_DIR)
+ AC_MSG_RESULT(JRE lib directory: ${JRE_LIB_DIR})
+
+ # Find gcj prefix using gcj found in PATH.
+ gcj_prefix=`which gcj${gcc_suffix} | sed "s%/bin/gcj${gcc_suffix}%%"`
+
+ # Where do the gcj binaries live?
+ # For jhbuild based builds, they all live in a sibling of bin called
+ # gcj-bin. Check for gcj-bin first, and use bin otherwise.
+ GCJ_BIN_DIR=`if test -d ${gcj_prefix}/gcj-bin; then echo ${gcj_prefix}/gcj-bin; else echo ${gcj_prefix}/bin; fi`
+ AC_SUBST(GCJ_BIN_DIR)
+ AC_MSG_RESULT(GCJ tools directory: ${GCJ_BIN_DIR})
+
+ echo host is ${host}
+ if test "x${host_cpu}" = "x"
+ then
+ case ${host} in
+ *-mingw* | *-cygwin*)
+ host_cpu=x86;;
+ i486-* | i586-* | i686-*)
+ host_cpu=i386;;
+ *)
+ host_cpu=${host_cpu};;
+ esac
+ fi
+ AC_MSG_RESULT(arch directory: ${host_cpu})
+ CPU=${host_cpu}
+ AC_SUBST(CPU)
+
+ if test "x${host_os}" = "x"
+ then
+ case ${host} in
+ *-mingw* | *-cygwin*)
+ host_os=win32;;
+ *-linux*)
+ host_os=linux;;
+ *)
+ host_os=${host_os};;
+ esac
+ fi
+ echo os directory: ${host_os}
+ OS=${host_os}
+ AC_SUBST(OS)
+
+ # make an expanded $libdir, for substituting into
+ # scripts (and other non-Makefile things).
+ LIBDIR=$libdir
+ if test "x${exec_prefix}" = "xNONE"
+ then
+ lib_exec_prefix=$prefix
+ else
+ lib_exec_prefix=$exec_prefix
+ fi
+ LIBDIR=`echo $libdir | sed "s:\\\${exec_prefix}:$lib_exec_prefix:g"`
+ AC_SUBST(LIBDIR)
+fi
+
AC_CONFIG_FILES([
Makefile
libgcj.pc
gcj/Makefile
include/Makefile
testsuite/Makefile
+contrib/aotcompile.py
+contrib/aot-compile
+contrib/aot-compile-rpm
+contrib/rebuild-gcj-db
])
-AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar])
-
-AC_CONFIG_COMMANDS([default],
-[# Only add multilib support code if we just rebuilt top-level Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
- LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${multi_basedir}/./libjava/../config-ml.in
- ;;
-esac
-for ac_multi_file in $CONFIG_FILES; do
- case $ac_multi_file in
- */Makefile)
- grep "^MULTI[[^ ]]* =" Makefile >> "$ac_multi_file" ;;
- esac
-done
-],
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-multi_basedir=${multi_basedir}
-CC="${CC}"
-CXX="${CXX}"
-ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-)
+if test ${multilib} = yes; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar])
AC_OUTPUT