# We may get other options which we don't document:
# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# When building with srcdir == objdir, links to the source files will
-# be created in directories within the target_subdir. We have to
-# adjust toplevel_srcdir accordingly, so that configure finds
-# install-sh and other auxiliary files that live in the top-level
-# source directory.
-if test "${srcdir}" = "."; then
- if test -z "${with_target_subdir}"; then
- toprel=".."
- else
- if test "${with_target_subdir}" != "."; then
- toprel="${with_multisrctop}../.."
- else
- toprel="${with_multisrctop}.."
- fi
- fi
-else
- toprel=".."
-fi
-
-libgcj_basedir=$srcdir/$toprel/./libjava
-AC_SUBST(libgcj_basedir)
+# Find the rest of the source tree framework.
+AM_ENABLE_MULTILIB(, ..)
AC_CANONICAL_SYSTEM
_GCC_TOPLEV_NONCANONICAL_BUILD
[version_specific_libs=no]
)
-# Default to --enable-multilib
-AC_ARG_ENABLE(multilib,
- AS_HELP_STRING([--enable-multilib],
- [build many library versions (default)]),
-[case "${enableval}" in
- yes) multilib=yes ;;
- no) multilib=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
- esac], [multilib=yes])dnl
-
AC_ARG_ENABLE(plugin,
AS_HELP_STRING([--enable-plugin],
[build gcjwebplugin web browser plugin]),
AC_CHECK_PROGS([JAR], [jar fastjar gjar], no)
AC_PATH_PROG([ZIP], [zip], no)
AC_PATH_PROG([UNZIP], [unzip], unzip)
-AM_CONDITIONAL(BASH_JAR, test "$JAR" = no)
-if test "$ZIP" = no; then
- if test "$JAR" = no; then
+
+# We need a jar that supports -@. This is a GNU extension.
+if test "$JAR" != no; then
+ rm -f config-test.jar
+ echo $srcdir/configure.ac | $JAR -cf@ config-test.jar
+ if test -f config-test.jar; then
+ rm -f config-test.jar
+ else
+ JAR=no
+ fi
+fi
+
+# Prefer the jar we found, but fall back to our jar script.
+if test "$JAR" = no; then
+ if test "$ZIP" = no; then
AC_MSG_ERROR([cannot find neither zip nor jar, cannot continue])
+ else
+ # InfoZIP available, use the 'guaranteed' Bourne-shell JAR to build libjava
+ JAR=`pwd`/scripts/jar
fi
-else
- # InfoZIP available, use the 'guaranteed' Bourne-shell JAR to build libjava
- JAR=`pwd`/scripts/jar
fi
AC_PROG_INSTALL
. ${srcdir}/configure.host
+ACX_PROG_LD_GNU_SYMBOLIC
+libgcj_ld_symbolic_functions=$SYMBOLIC_LDFLAGS
+if test -z "$libgcj_ld_symbolic"; then
+ libgcj_ld_symbolic=$SYMBOLIC_LDFLAGS
+fi
+
LIBGCJ_CFLAGS="${libgcj_cflags}"
LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
+LIBGCJ_LD_SYMBOLIC_FUNCTIONS="${libgcj_ld_symbolic_functions}"
AC_SUBST(LIBGCJ_CFLAGS)
AC_SUBST(LIBGCJ_CXXFLAGS)
AC_SUBST(LIBGCJ_JAVAFLAGS)
AC_SUBST(LIBGCJ_LD_SYMBOLIC)
+AC_SUBST(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
# Only use libltdl for non-newlib builds.
if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
GCC_UNWIND_INCLUDE=
GCJ="${target_noncanonical}-gcj"
else
- GCJ="$built_gcc_dir/gcj -B$built_gcc_dir/"
+ GCJ="${target_noncanonical}-gcj -B`${PWDCMD-pwd}`/"
fi
GCJH="$built_gcc_dir/gcjh"
;;
AC_ARG_WITH(ecj-jar,
AS_HELP_STRING([--with-ecj-jar=FILE], [use preinstalled ecj jar]),
[ECJ_JAR=$withval],
- [if test -f $libgcj_basedir/../ecj.jar; then
- ECJ_BUILD_JAR=$libgcj_basedir/../ecj.jar
+ [if test -f $multi_basedir/ecj.jar; then
+ ECJ_BUILD_JAR=$multi_basedir/ecj.jar
ECJ_JAR='$(jardir)/ecj.jar'
install_ecj_jar=yes
fi])
AC_CONFIG_LINKS(gnu/java/net/natPlainSocketImpl.cc:gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc)
AC_CONFIG_LINKS(gnu/java/net/natPlainDatagramSocketImpl.cc:gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc)
-# Likewise for natPipeImpl.cc and natSelectorImpl.cc.
+# Likewise for natVMPipe.cc and natVMSelector.cc.
test -d gnu/java/nio || mkdir gnu/java/nio
-AC_CONFIG_LINKS(gnu/java/nio/natPipeImpl.cc:gnu/java/nio/natPipeImpl${PLATFORM}.cc)
-AC_CONFIG_LINKS(gnu/java/nio/natSelectorImpl.cc:gnu/java/nio/natSelectorImpl${PLATFORM}.cc)
+AC_CONFIG_LINKS(gnu/java/nio/natVMPipe.cc:gnu/java/nio/natVMPipe${PLATFORM}.cc)
+AC_CONFIG_LINKS(gnu/java/nio/natVMSelector.cc:gnu/java/nio/natVMSelector${PLATFORM}.cc)
+
+# Likewise for natFileChannelImpl.cc
test -d gnu/java/nio/channels || mkdir gnu/java/nio/channels
AC_CONFIG_LINKS(gnu/java/nio/channels/natFileChannelImpl.cc:gnu/java/nio/channels/natFileChannel${FILE-${PLATFORM}}.cc)
AM_CONDITIONAL(USING_GCC, test "$GCC" = yes)
# We're in the tree with gcc, and need to include some of its headers.
-GCC_UNWIND_INCLUDE='-I$(libgcj_basedir)/../gcc'
+GCC_UNWIND_INCLUDE='-I$(multi_basedir)/./libjava/../gcc'
if test "x${with_newlib}" = "xyes"; then
# We are being configured with a cross compiler. AC_REPLACE_FUNCS
AC_CHECK_LIB(dld, dladdr, [
AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()])])])
- if test x"$build" = x"$host"; then
+ if test x"$cross_compiling" = x"no"; then
AC_CHECK_FILES(/proc/self/exe, [
AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])])
else
AC_CHECK_LIB(z, deflate, ZLIBSPEC=-lz, ZLIBSPEC=)
fi
- LIBMAGIC=
- AC_CHECK_LIB(magic, magic_open, [
- AC_DEFINE([HAVE_MAGIC_OPEN], 1, [Define if you have magic_open().])
- LIBMAGIC="-lmagic"])
- AC_SUBST(LIBMAGIC)
-
# Test for Gtk stuff, if asked for.
if test "$use_gtk_awt" = yes; then
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4)
AC_HEADER_SYS_WAIT
AC_CHECK_TYPE([ssize_t], [int])
+AC_CHECK_TYPE([magic_t], [
+ AC_DEFINE(HAVE_MAGIC_T, 1, [Define if magic.h declares magic_t])], [], [
+#ifdef HAVE_MAGIC_H
+#include <magic.h>
+#endif])
AC_MSG_CHECKING([for in_addr_t])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
# For _Unwind_GetIPInfo.
GCC_CHECK_UNWIND_GETIPINFO
+# See if linker supports anonymous version scripts.
+AC_CACHE_CHECK([whether ld supports anonymous version scripts],
+ [libjava_cv_anon_version_script],
+ [save_CFLAGS="$CFLAGS"; save_LDFLAGS="$LDFLAGS"
+ libjava_cv_anon_version_script=no
+ CFLAGS="$CFLAGS -fPIC"; LDFLAGS="$LDFLAGS -shared -Wl,--version-script,conftest.map"
+ echo '{ global: globalsymb*; local: *; };' > conftest.map
+ AC_TRY_LINK(void globalsymbol (void) {} void localsymbol (void) {},,
+ [libjava_cv_anon_version_script=yes], [])
+ CFLAGS="$save_CFLAGS"; LDFLAGS="$save_LDFLAGS"
+ ])
+AM_CONDITIONAL(ANONVERSCRIPT, test "$libjava_cv_anon_version_script" = yes)
+
# Check if linker supports static linking on a per library basis
LD_START_STATIC_SPEC=
LD_FINISH_STATIC_SPEC=
case " $CONFIG_FILES " in
*" Makefile "*)
LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
+ ac_file=Makefile . ${multi_basedir}/./libjava/../config-ml.in
;;
esac
for ac_multi_file in $CONFIG_FILES; do
with_multisubdir=${with_multisubdir}
ac_configure_args="${multilib_arg} ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-libgcj_basedir=${libgcj_basedir}
+multi_basedir=${multi_basedir}
CC="${CC}"
CXX="${CXX}"
ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"