Commit a3ffcff3 by Tom Tromey Committed by Tom Tromey

libtoolized libgcj. See ChangeLog for details.

From-SVN: r26652
parent 844f90bc
1999-04-26 Tom Tromey <tromey@cygnus.com>
* configure, Makefile.in: Rebuilt.
* configure.in: Added AM_PROG_LIBTOOL.
(GCOBJS): Use `.lo' form of files.
(THREADOBJS): Likewise.
(GCDEPS): Use `.la' form of library.
(GCLIBS): Set to be the same as GCDEPS.
(THREADDEPS): Use `.la' form of library.
(THREADLIBS): Set to be the same as THREADDEPS.
* Makefile.am (toolexeclib_LTLIBRARIES): Renamed from
toolexeclib_LIBRARIES.
(libgcj_la_SOURCES): Renamed for libtoolization.
(EXTRA_libgcj_la_SOURCES): Likewise.
(libgcj_la_DEPENDENCIES): Likewise.
(libgcj_la_LIBADD): Likewise.
($(nat_files)): Use LTCXXCOMPILE.
($(c_files)): Use LTCOMPILE.
(GCJCOMPILE): New macro.
(.class.o): Use it.
(.java.o): Likewise.
($(javao_files)): Likewise.
(jv_convert_LINK): Use LIBTOOL.
(nat_files): Use `.lo' files.
(c_files): Likewise.
(javao_files): Likewise.
(.class.lo): Renamed.
(.java.lo): Likewise.
($(nat_files)): Depend on %.lo.
($(c_files)): Likewise.
($(javao_files)): Likewise.
(jv_convert_LDADD): Link against .lo files.
(jv_convert_DEPENDENCIES): Depend on .lo files.
(maintainer-check): Depend on libgcj.la, but examine .a file.
(jv_convert_DEPENDENCIES): Depend on libgcj.la.
(libgcj_la_LDFLAGS): New macro.
1999-04-23 Warren Levy <warrenl@cygnus.com>
* Makefile.am: Added URLDecoder and URLEncoder.
......
......@@ -15,7 +15,7 @@ endif
toolexecdir = $(exec_prefix)/$(target_alias)
toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR)
toolexeclib_LIBRARIES = libgcj.a
toolexeclib_LTLIBRARIES = libgcj.la
data_DATA = libgcj.zip
## For now, only on native systems.
......@@ -53,6 +53,8 @@ GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT)
ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/zip/zip$(EXEEXT)
endif # CANADIAN
GCJCOMPILE = CLASSPATH=$(here) $(LIBTOOL) --mode=compile $(GCJ) -fassume-compiled $(JC1FLAGS) -c
JAVAC = $(GCJ) -C
EH_COMMON_INCLUDE = @EH_COMMON_INCLUDE@
......@@ -78,19 +80,20 @@ INCLUDES = -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) $(EH_COMMON
##
## Objects from C++ sources in subdirs.
nat_files = $(nat_source_files:.cc=.o)
nat_files = $(nat_source_files:.cc=.lo)
## Objects from C sources in subdirs.
c_files = $(c_source_files:.c=.o)
c_files = $(c_source_files:.c=.lo)
## Objects from Java sources in subdirs.
javao_files = $(java_source_files:.java=.o)
javao_files = $(java_source_files:.java=.lo)
libgcj_a_SOURCES = prims.cc jni.cc exception.cc
EXTRA_libgcj_a_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
libgcj_la_SOURCES = prims.cc jni.cc exception.cc
EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \
$(c_source_files) $(java_source_files)
libgcj_a_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
libgcj_la_DEPENDENCIES = libgcj.zip $(javao_files) $(nat_files) \
$(c_files) $(GCOBJS) $(THREADOBJS)
libgcj_a_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
$(THREADOBJS)
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) -release $(VERSION)
## Make the .class files depend on the .zip file. This seems
## backwards, but is right. This doesn't catch all the .class files,
......@@ -121,31 +124,31 @@ CLEANFILES = libgcj.zip $(class_files)
SUFFIXES = .class .java .h
.class.o:
CLASSPATH=$(here) $(CC) -fassume-compiled $(JC1FLAGS) -c -o $@ $<
.class.lo:
$(GCJCOMPILE) -o $@ $<
.java.o:
CLASSPATH=$(here) $(GCJ) -fassume-compiled $(JC1FLAGS) -c -o $@ $<
.java.lo:
$(GCJCOMPILE) -o $@ $<
## This is GNU make specific. For the .o files in subdirs, use a
## special rule. The standard automake rule can't be overridden (this
## is a bug in automake), and it also won't put the .o files into
## subdirs. FIXME.
$(nat_files): %.o: %.cc
$(CXXCOMPILE) -c -o $@ $<
$(nat_files): %.lo: %.cc
$(LTCXXCOMPILE) -c -o $@ $<
$(nat_files) $(GCOBJS) $(THREADOBJS) $(libgcj_a_OBJECTS): \
$(nat_files) $(GCOBJS) $(THREADOBJS) $(libgcj_la_OBJECTS): \
include/config.h include/java-signal.h $(nat_headers)
## FIXME: GNU make.
$(c_files): %.o: %.c
$(COMPILE) -c -o $@ $<
$(c_files): %.lo: %.c
$(LTCOMPILE) -c -o $@ $<
$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
## FIXME: GNU make.
$(javao_files): %.o: %.java
CLASSPATH=$(here) $(GCJ) -fassume-compiled $(JC1FLAGS) -c -o $@ $<
$(javao_files): %.lo: %.java
$(GCJCOMPILE) -o $@ $<
## ################################################################
......@@ -210,8 +213,8 @@ java/lang/reflect/Method.h: java/lang/reflect/Method.class libgcj.zip
NM = nm
## Try to make sure our library doesn't stomp the namespace.
maintainer-check: libgcj.a
$(NM) libgcj.a | grep ' T ' \
maintainer-check: libgcj.la
$(NM) .libs/libgcj.a | grep ' T ' \
## Anything with `4java' is assumed to be from .java source.
| grep -v '4java' \
## Anything with Jv is ok.
......@@ -248,11 +251,12 @@ CONVERT_DIR = gnu/gcj/convert
jv_convert_SOURCES =
EXTRA_jv_convert_SOURCES = $(convert_source_files)
jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert
jv_convert_LINK = $(GCJ) $(JC1FLAGS) $(LDFLAGS) -o jv-convert
jv_convert_LDADD = $(convert_source_files:.java=.o) -L. $(GCLIBS) $(THREADLIBS)
jv_convert_DEPENDENCIES = $(convert_source_files:.java=.o) \
$(GCDEPS) $(THREADDEPS) libgcj.a
jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert -rpath $(toolexeclibdir)
jv_convert_LINK = $(LIBTOOL) --mode=link $(GCJ) $(JC1FLAGS) $(LDFLAGS) -o jv-convert
jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \
$(GCLIBS) $(THREADLIBS)
jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \
$(GCDEPS) $(THREADDEPS) libgcj.la
# The Unicode consortium does not permit re-distributing the file JIS0201.TXT.
# You can get it from ftp://ftp.unicode.org/Public/MAPPINGS/EASTASIA/JIS/.
......
......@@ -315,3 +315,254 @@ for am_file in <<$1>>; do
done<<>>dnl>>)
changequote([,]))])
# serial 25 AM_PROG_LIBTOOL
AC_DEFUN(AM_PROG_LIBTOOL,
[AC_REQUIRE([AM_ENABLE_SHARED])dnl
AC_REQUIRE([AM_ENABLE_STATIC])dnl
AC_REQUIRE([AC_CANONICAL_HOST])dnl
AC_REQUIRE([AC_CANONICAL_BUILD])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_REQUIRE([AC_PROG_CC])dnl
AC_REQUIRE([AM_PROG_LD])dnl
AC_REQUIRE([AM_PROG_NM])dnl
AC_REQUIRE([AC_PROG_LN_S])dnl
dnl
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
# Check for any special flags to pass to ltconfig.
libtool_flags=
test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
test "$silent" = yes && libtool_flags="$libtool_flags --silent"
test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case "$host" in
*-*-irix6*)
# Find out which ABI we are using.
echo '[#]line __oline__ "configure"' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
case "`/usr/bin/file conftest.o`" in
*32-bit*)
LD="${LD-ld} -32"
;;
*N32*)
LD="${LD-ld} -n32"
;;
*64-bit*)
LD="${LD-ld} -64"
;;
esac
fi
rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
CFLAGS="$CFLAGS -belf"
;;
*-*-cygwin32*)
AM_SYS_LIBTOOL_CYGWIN32
;;
esac
# Actually configure libtool. ac_aux_dir is where install-sh is found.
CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
DLLTOOL="$DLLTOOL" AS="$AS" \
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
|| AC_MSG_ERROR([libtool configure failed])
# Redirect the config.log output again, so that the ltconfig log is not
# clobbered by the next message.
exec 5>>./config.log
])
# AM_ENABLE_SHARED - implement the --enable-shared flag
# Usage: AM_ENABLE_SHARED[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_SHARED,
[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(shared,
changequote(<<, >>)dnl
<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT],
changequote([, ])dnl
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl
])
# AM_DISABLE_SHARED - set the default shared flag to --disable-shared
AC_DEFUN(AM_DISABLE_SHARED,
[AM_ENABLE_SHARED(no)])
# AM_DISABLE_STATIC - set the default static flag to --disable-static
AC_DEFUN(AM_DISABLE_STATIC,
[AM_ENABLE_STATIC(no)])
# AM_ENABLE_STATIC - implement the --enable-static flag
# Usage: AM_ENABLE_STATIC[(DEFAULT)]
# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
# `yes'.
AC_DEFUN(AM_ENABLE_STATIC,
[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
AC_ARG_ENABLE(static,
changequote(<<, >>)dnl
<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT],
changequote([, ])dnl
[p=${PACKAGE-default}
case "$enableval" in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS="$ac_save_ifs"
;;
esac],
enable_static=AM_ENABLE_STATIC_DEFAULT)dnl
])
# AM_PROG_LD - find the path to the GNU or non-GNU linker
AC_DEFUN(AM_PROG_LD,
[AC_ARG_WITH(gnu-ld,
[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
AC_REQUIRE([AC_PROG_CC])
ac_prog=ld
if test "$ac_cv_prog_gcc" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
AC_MSG_CHECKING([for ld used by GCC])
ac_prog=`($CC -print-prog-name=ld) 2>&5`
case "$ac_prog" in
# Accept absolute paths.
changequote(,)dnl
/* | [A-Za-z]:\\*)
changequote([,])dnl
test -z "$LD" && LD="$ac_prog"
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test "$with_gnu_ld" = yes; then
AC_MSG_CHECKING([for GNU ld])
else
AC_MSG_CHECKING([for non-GNU ld])
fi
AC_CACHE_VAL(ac_cv_path_LD,
[if test -z "$LD"; then
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog"; then
ac_cv_path_LD="$ac_dir/$ac_prog"
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some GNU ld's only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
test "$with_gnu_ld" != no && break
else
test "$with_gnu_ld" != yes && break
fi
fi
done
IFS="$ac_save_ifs"
else
ac_cv_path_LD="$LD" # Let the user override the test with a path.
fi])
LD="$ac_cv_path_LD"
if test -n "$LD"; then
AC_MSG_RESULT($LD)
else
AC_MSG_RESULT(no)
fi
test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
AC_SUBST(LD)
AM_PROG_LD_GNU
])
AC_DEFUN(AM_PROG_LD_GNU,
[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
ac_cv_prog_gnu_ld=yes
else
ac_cv_prog_gnu_ld=no
fi])
])
# AM_PROG_NM - find the path to a BSD-compatible name lister
AC_DEFUN(AM_PROG_NM,
[AC_MSG_CHECKING([for BSD-compatible nm])
AC_CACHE_VAL(ac_cv_path_NM,
[if test -n "$NM"; then
# Let the user override the test.
ac_cv_path_NM="$NM"
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/nm; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -B"
elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
ac_cv_path_NM="$ac_dir/nm -p"
else
ac_cv_path_NM="$ac_dir/nm"
fi
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
fi])
NM="$ac_cv_path_NM"
AC_MSG_RESULT([$NM])
AC_SUBST(NM)
])
# AM_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32
AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32,
[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(AS, as, false)
])
......@@ -16,6 +16,8 @@ LIBGCJ_CONFIGURE(.)
AM_CONFIG_HEADER(include/config.h)
AM_PROG_LIBTOOL
if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
COMPPATH=.
else
......@@ -89,20 +91,20 @@ GCOBJS=
case "$GC" in
boehm)
AC_MSG_RESULT(boehm)
GCLIBS='-L$(top_builddir)/../boehm-gc -lgcjgc'
GCDEPS='$(top_builddir)/../boehm-gc/libgcjgc.a'
GCDEPS='$(top_builddir)/../boehm-gc/libgcjgc.la'
GCLIBS="$GCDEPS"
GCINCS='-I$(top_srcdir)/../boehm-gc -I$(top_builddir)/../boehm-gc'
dnl We also want to pick up some cpp flags required when including
dnl boehm-config.h. Yuck.
GCINCS="$GCINCS `cat ../boehm-gc/boehm-cflags`"
GCOBJS=boehm.o
GCOBJS=boehm.lo
GCHDR=boehm-gc.h
dnl The POSIX thread support needs to know this.
AC_DEFINE(HAVE_BOEHM_GC)
;;
no)
AC_MSG_RESULT(none)
GCOBJS=nogc.o
GCOBJS=nogc.lo
GCHDR=no-gc.h
;;
*)
......@@ -183,7 +185,7 @@ THREADH=
case "$THREADS" in
posix)
THREADLIBS=-lpthread
THREADOBJS=posix-threads.o
THREADOBJS=posix-threads.lo
THREADH=posix-threads.h
# MIT pthreads doesn't seem to have the mutexattr functions.
# But for now we don't check for it. We just assume you aren't
......@@ -192,15 +194,15 @@ case "$THREADS" in
;;
qt)
THREADLIBS='-L$(top_builddir)/../qthreads -lgcjcoop'
THREADOBJS=quick-threads.o
THREADDEPS='$(top_builddir)/../qthreads/libgcjcoop.la'
THREADLIBS="$THREADDEPS"
THREADOBJS=quick-threads.lo
THREADINCS='-I$(top_srcdir)/../qthreads'
THREADH=quick-threads.h
THREADDEPS='$(top_builddir)/../qthreads/libgcjcoop.a'
;;
none)
THREADOBJS=no-threads.o
THREADOBJS=no-threads.lo
THREADH=no-threads.h
;;
esac
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment