OSDN Git Service

* Makefile.in: Rebuilt.
[pf3gnuchains/gcc-fork.git] / libjava / Makefile.am
index 4bafc5d..83b84e4 100644 (file)
@@ -2,7 +2,7 @@
 
 AUTOMAKE_OPTIONS = foreign subdir-objects
 
-ACLOCAL_AMFLAGS = -I . -I ../config
+ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
 # May be used by various substitution variables.
 gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
@@ -26,42 +26,39 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o
 # autoconf2.13's target_alias
 target_noncanonical = @target_noncanonical@
 
+# This is required by TL_AC_GXX_INCLUDE_DIR.
+libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)
+
 ##
 ## What gets installed, and where.
 ##
 
-toolexeclib_LTLIBRARIES = libgcj.la libgij.la
+toolexeclib_LTLIBRARIES = libgcj.la libgij.la libgcj-tools.la
 toolexecmainlib_DATA = libgcj.spec
 
+if USE_LIBGCJ_BC
+toolexeclib_LTLIBRARIES += libgcj_bc.la
+endif
+
 if XLIB_AWT
 toolexeclib_LTLIBRARIES += lib-gnu-awt-xlib.la
 endif
 
-if GTK_AWT
-toolexeclib_LTLIBRARIES += lib-gnu-java-awt-peer-gtk.la libgcjawt.la
-endif
+dbexec_LTLIBRARIES = libjvm.la
 
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libgcj.pc
 
 jardir = $(datadir)/java
-jar_DATA = libgcj-$(gcc_version).jar
+jar_DATA = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
 
 if JAVA_HOME_SET
 JAVA_HOME_DIR = $(JAVA_HOME)
 BOOT_CLASS_PATH_DIR = $(JAVA_HOME)/lib/rt.jar
 else
 JAVA_HOME_DIR = $(prefix)
-BOOT_CLASS_PATH_DIR = $(jardir)/$(jar_DATA)
+BOOT_CLASS_PATH_DIR = $(jardir)/libgcj-$(gcc_version).jar
 endif
 
-## FIXME: Using libdir violates GNU coding standards.
-secdir = $(libdir)/security
-## Where to install default logging property file.
-propdir = $(libdir)
-
-## Where the standard .db file is found.
-dbexecdir = $(libdir)/gcj-$(gcc_version)
 ## Name of the default .db.
 db_name = classmap.db
 ## Compiler specific component of the .db file
@@ -69,7 +66,8 @@ db_pathtail = gcj-$(gcc_version)/$(db_name)
 
 ## For now, only on native systems.  FIXME.
 if NATIVE
-bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool
+bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \
+       gappletviewer gjarsigner gkeytool
 
 ## It is convenient to actually build and install the default database
 ## when gcj-dbtool is available.
@@ -84,15 +82,20 @@ bin_SCRIPTS = addr2name.awk
 ## Compilers and compilation flags.
 ##
 
-GCJH = @GCJH@
-ZIP = @ZIP@
+if BASH_JAR
+bin_SCRIPTS += scripts/jar
+endif
 
 ## The compiler with whatever flags we want for both -c and -C
 ## compiles.
 GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
 
-GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
-LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) $(LDFLAGS) -o $@
+extra_ldflags_libjava = @extra_ldflags_libjava@
+
+GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
+          $(LDFLAGS) -o $@
+LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \
+          $(LDFLAGS) $(extra_ldflags_libjava) -o $@
 
 GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
 
@@ -115,14 +118,15 @@ AM_CXXFLAGS = \
        $(WARNINGS) \
        -D_GNU_SOURCE \
        -DPREFIX="\"$(prefix)\"" \
-       -DLIBDIR="\"$(libdir)\"" \
+       -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\"" \
         -DJAVA_HOME="\"$(JAVA_HOME_DIR)\"" \
         -DBOOT_CLASS_PATH="\"$(BOOT_CLASS_PATH_DIR)\"" \
        -DJAVA_EXT_DIRS="\"$(jardir)/ext\"" \
        -DGCJ_ENDORSED_DIRS="\"$(jardir)/gcj-endorsed\"" \
+       -DGCJ_VERSIONED_LIBDIR="\"$(dbexecdir)\"" \
+       -DPATH_SEPARATOR="\"$(CLASSPATH_SEPARATOR)\"" \
        -DLIBGCJ_DEFAULT_DATABASE="\"$(dbexecdir)/$(db_name)\"" \
-       -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\"" \
-       -DTOOLEXECLIBDIR="\"$(toolexeclibdir)\""
+       -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL="\"$(db_pathtail)\""
 
 AM_GCJFLAGS = \
        @LIBGCJ_JAVAFLAGS@ \
@@ -146,6 +150,7 @@ LIBFFIINCS = @LIBFFIINCS@
 AM_CPPFLAGS = -I$(top_srcdir) \
        -Iinclude -I$(top_srcdir)/include \
        -I$(top_srcdir)/classpath/include \
+       -Iclasspath/include \
        -I$(top_srcdir)/classpath/native/fdlibm \
        $(GCINCS) $(THREADINCS) $(INCLTDL) \
        $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
@@ -154,9 +159,6 @@ BOOTCLASSPATH = $(here)/classpath/lib
 
 ## ################################################################
 
-all_property_files = $(property_files) \
-    java/util/logging/logging.properties
-
 ##
 ## How to build libgcj.a and libgcj.jar
 ##
@@ -169,7 +171,7 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
 libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 
-libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc \
+libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc stacktrace.cc \
        link.cc defineclass.cc interpret.cc verify.cc \
        java/lang/Class.java java/lang/Object.java \
        $(nat_source_files)
@@ -182,10 +184,6 @@ if USING_NOGC
 libgcj_la_SOURCES += nogc.cc
 endif
 
-if SUPPLY_BACKTRACE
-libgcj_la_SOURCES += sysdep/dwarf2-backtrace.cc
-endif
-
 if USING_POSIX_PLATFORM
 libgcj_la_SOURCES += posix.cc
 endif
@@ -231,6 +229,19 @@ libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
        $(LIBLTDL) $(libgcj_la_LIBADD)
 libgcj_la_LINK = $(LIBLINK)
 
+libgcj_tools_la_SOURCES = classpath/tools/tools.jar
+libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch -fno-indirect-classes
+libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+ -version-info `grep -v '^\#' $(srcdir)/libtool-version`
+libgcj_tools_la_DEPENDENCIES = libgcj.la libgcj.spec
+libgcj_tools_la_LINK = $(LIBLINK)
+
+## libjvm.so
+libjvm_la_SOURCES = jni-libjvm.cc
+libjvm_la_DEPENDENCIES = libgcj.la libgcj.spec
+## See jv_convert_LDADD.
+libjvm_la_LIBADD = -L$(here)/.libs libgcj.la
+libjvm_la_LDFLAGS = -avoid-version $(LIBGCJ_LD_SYMBOLIC)
 
 ## The .db file.  This rule is only used for native builds, so it is
 ## safe to invoke gcj-dbtool.
@@ -242,33 +253,6 @@ $(db_name): gcj-dbtool$(EXEEXT)
 ## not available.
        ./gcj-dbtool -n $(db_name) || touch $(db_name)
 
-## For the peer library, DEPENDENCIES need to come before OBJECTS so
-## that JNI headers are built before JNI C files.
-$(lib_gnu_java_awt_peer_gtk_la_OBJECTS): $(lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES)
-
-lib_gnu_java_awt_peer_gtk_la_SOURCES =
-lib_gnu_java_awt_peer_gtk_la_LIBADD = \
-       gnu-java-awt-peer-gtk.lo \
-       classpath/native/jni/gtk-peer/libgtkpeer.la \
-       $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
-lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = gnu-java-awt-peer-gtk.lo \
-       classpath/native/jni/gtk-peer/libgtkpeer.la \
-       libgcj-$(gcc_version).jar libgcj.la libgcj.spec
-## The mysterious backslash in the grep pattern is consumed by make.
-lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \
-        -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) $(X_LIBS) -lXtst
-lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
-
-libgcjawt_la_SOURCES = jawt.c
-libgcjawt_la_CFLAGS = -I$(srcdir)/classpath/native/jni/classpath \
-       $(PEDANTIC_CFLAGS) $(X_CFLAGS)
-## See jv_convert_LDADD.
-libgcjawt_la_LIBADD = -L$(here)/.libs lib-gnu-java-awt-peer-gtk.la
-libgcjawt_la_LDFLAGS = \
-       -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
-       $(LIBGCJ_LD_SYMBOLIC)
-libgcjawt_la_LINK = $(LIBLINK)
-
 lib_gnu_awt_xlib_la_SOURCES = $(xlib_nat_source_files)
 lib_gnu_awt_xlib_la_LIBADD = gnu/awt/xlib.lo gnu/gcj/xlib.lo
 lib_gnu_awt_xlib_la_DEPENDENCIES = libgcj-$(gcc_version).jar \
@@ -287,30 +271,46 @@ lib_gnu_awt_xlib_la_LDFLAGS = ../libstdc++-v3/src/libstdc++.la \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 lib_gnu_awt_xlib_la_LINK = $(LIBLINK)
 
-## Build property files into the library.
-property_files = \
-classpath/resource/org/ietf/jgss/MessagesBundle.properties \
-classpath/resource/java/util/iso4217.properties        \
-classpath/resource/gnu/java/awt/peer/gtk/font.properties \
-classpath/resource/gnu/regexp/MessagesBundle_it.properties \
-classpath/resource/gnu/regexp/MessagesBundle_fr.properties \
-classpath/resource/gnu/regexp/MessagesBundle.properties
-
-propertyo_files = $(patsubst classpath/resource/%,%,$(property_files:.properties=.properties.lo))
-
-$(propertyo_files): %.properties.lo: classpath/resource/%.properties
+## Support for libgcj_bc: dummy shared library.
+##
+## This lets us have one soname in BC objects and another in C++ ABI objects.
+libgcj_bc_la_SOURCES = libgcj_bc.c
+libgcj_bc_la_LDFLAGS = -rpath $(toolexeclibdir) -no-static -version-info 1:0:0
+libgcj_bc_la_LIBADD = libgcj.la
+libgcj_bc_la_DEPENDENCIES = libgcj.la
+libgcj_bc_la_LINK = $(LIBLINK)
+## This is specific to Linux/{Free,Net,Open}BSD/Hurd and perhaps few others.
+## USE_LIBGCJ_BC shouldn't be set on other targets.
+libgcj_bc_dummy_LINK = $(CC) -L$(here)/.libs $(CFLAGS) $(LDFLAGS) -shared \
+       -fPIC -nostdlib
+
+## This rule creates the libgcj_bc dummy library in the .libs directory, for use
+## when testing.
+libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_DEPENDENCIES)
+       $(libgcj_bc_la_LINK) $(am_libgcj_bc_la_rpath) $(libgcj_bc_la_LDFLAGS) \
+       $(libgcj_bc_la_OBJECTS) $(libgcj_bc_la_LIBADD) $(LIBS) || exit; \
+       rm .libs/libgcj_bc.so; \
+       mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \
+       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+       -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \
+       rm .libs/libgcj_bc.so.1; \
+       $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1
+
+## Note that property_files is defined in sources.am.
+propertyo_files = $(patsubst classpath/resource/%,%,$(addsuffix .lo,$(property_files)))
+
+$(propertyo_files): %.lo: classpath/resource/%
        $(mkinstalldirs) `dirname $@`; \
        $(LTGCJCOMPILE) -o $@ -c $< -Wc,--resource,$(@:.lo=)
 
-libgcj-$(gcc_version).jar:
-       jardir=`dirname $(ZIP)`; \
-       jardir=`cd $$jardir && pwd`; \
-       jarname=`basename $(ZIP)`; \
-       cd classpath/lib; $$jardir/$$jarname -cfM \
+libgcj-$(gcc_version).jar: classpath/lib/compile-classes
+       cd classpath/lib; $(JAR) -cfM \
            ../../libgcj-$(gcc_version).jar gnu java javax org
 
-CLEANFILES = libgcj-$(gcc_version).jar \
-       $(all_java_deps_files) $(all_java_filelist_files)
+libgcj-tools-$(gcc_version).jar: classpath/tools/tools.jar
+       cp $< $@
+
+CLEANFILES = libgcj-$(gcc_version).jar libgcj-tools-$(gcc_version).jar
 DISTCLEANFILES = native.dirs
 
 mostlyclean-local:
@@ -397,6 +397,7 @@ java/lang/ClassLoader.h: classpath/lib/java/lang/ClassLoader.class
 java/lang/Thread.h: classpath/lib/java/lang/Thread.class
        $(GCJH) -classpath '' -bootclasspath classpath/lib \
                -prepend 'class _Jv_JNIEnv;' \
+               -prepend 'class _Jv_Thread_t;' \
                -prepend '#define _JV_NOT_OWNER 1' \
                -prepend '#define _JV_INTERRUPTED 2' \
                -prepend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \
@@ -406,6 +407,7 @@ java/lang/Thread.h: classpath/lib/java/lang/Thread.class
                -prepend 'java::lang::Thread* _Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
                -prepend 'java::lang::Thread* _Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
                -prepend 'jint _Jv_DetachCurrentThread ();' \
+               -prepend '_Jv_Thread_t* _Jv_ThreadGetData (java::lang::Thread* thread);' \
                -friend '_Jv_JNIEnv * ::_Jv_GetCurrentJNIEnv ();' \
                -friend 'void ::_Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \
                -friend 'void ::_Jv_ThreadRun (java::lang::Thread* thread);' \
@@ -413,6 +415,7 @@ java/lang/Thread.h: classpath/lib/java/lang/Thread.class
                -friend 'java::lang::Thread* ::_Jv_AttachCurrentThread (jstring name, java::lang::ThreadGroup* group);' \
                -friend 'java::lang::Thread* ::_Jv_AttachCurrentThreadAsDaemon (jstring name, java::lang::ThreadGroup* group);' \
                -friend 'jint (::_Jv_DetachCurrentThread) ();' \
+               -friend '_Jv_Thread_t* ::_Jv_ThreadGetData (java::lang::Thread* thread);' \
                java/lang/Thread
 
 java/lang/String.h: classpath/lib/java/lang/String.class
@@ -523,10 +526,32 @@ extra_headers = java/lang/Object.h java/lang/Class.h
 $(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
        @:
 
+## Support for libgcj_bc: dummy shared library used only at link-time.
+if USE_LIBGCJ_BC
+## Install libgcj_bc dummy lib in the target directory. We also need to delete
+## libtool's .la file, this prevents libtool resetting the lib again 
+## later.
+install-exec-hook: install-toolexeclibLTLIBRARIES
+       @echo Installing dummy lib libgcj_bc.so.1.0.0; \
+       rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+       mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
+       $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \
+       -o $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 -lgcj || exit; \
+       rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+       $(LN_S) libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1; \
+       rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.la;
+endif
+
 ## Install the headers.  It is fairly ugly that we have to do this by
 ## hand.
 install-data-local:
        $(PRE_INSTALL)
+## Install the .pc file.
+       @pc_version=`echo $(GCJVERSION) | sed -e 's/[.][^.]*$$//'`; \
+       file="libgcj-$${pc_version}.pc"; \
+       $(mkinstalldirs) $(DESTDIR)$(pkgconfigdir); \
+       echo "  $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file"; \
+       $(INSTALL_DATA) libgcj.pc $(DESTDIR)$(pkgconfigdir)/$$file
 ## We use a GNU make trick here so that we don't go over the command
 ## length limit of some shells.
        @echo Creating list of headers to install...
@@ -539,14 +564,6 @@ install-data-local:
          $(INSTALL_DATA) $$p $(DESTDIR)$(gxx_include_dir)/$$f; \
        done
        -@rm -f tmp-ilist
-## FIXME: the obvious approach using lib_DATA doesn't work with
-## automake 1.4.
-       $(mkinstalldirs) $(DESTDIR)$(secdir)
-       @for f in classpath.security libgcj.security; do \
-         echo " $(INSTALL_DATA) $(srcdir)/java/security/$$f $(DESTDIR)$(secdir)/$$f"; \
-         $(INSTALL_DATA) $(srcdir)/java/security/$$f $(DESTDIR)$(secdir)/$$f; \
-       done
-       $(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties
 ## Install inner class headers.
        $(INSTALL_DATA) 'java/io/ObjectOutputStream$$PutField.h' $(DESTDIR)$(gxx_include_dir)/java/io/
        $(INSTALL_DATA) 'java/io/ObjectInputStream$$GetField.h' $(DESTDIR)$(gxx_include_dir)/java/io/
@@ -718,7 +735,8 @@ gij_SOURCES =
 ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'.  We
 ## need this because we are explicitly using libtool to link using the
 ## `.la' file.
-gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+gij_LDFLAGS = -rpath $(libdir)/gcj-$(gcc_version) -rpath $(toolexeclibdir) \
+       -shared-libgcc $(THREADLDFLAGS)
 gij_LINK = $(GCJLINK)
 ## See jv_convert_LDADD.
 gij_LDADD = -L$(here)/.libs libgij.la
@@ -748,11 +766,47 @@ grmiregistry_LDADD = -L$(here)/.libs libgcj.la
 ## linking this program.
 grmiregistry_DEPENDENCIES = libgcj.la libgcj.spec
 
+## This is a dummy definition.
+gappletviewer_SOURCES =
+gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+gappletviewer_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la
+## Depend on the spec file to make sure it is up to date before
+## linking this program.
+gappletviewer_DEPENDENCIES = libgcj-tools.la
+
+## This is a dummy definition.
+gjarsigner_SOURCES =
+gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+gjarsigner_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la
+## Depend on the spec file to make sure it is up to date before
+## linking this program.
+gjarsigner_DEPENDENCIES = libgcj-tools.la
+
+## This is a dummy definition.
+gkeytool_SOURCES =
+gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \
+       -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+gkeytool_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la
+## Depend on the spec file to make sure it is up to date before
+## linking this program.
+gkeytool_DEPENDENCIES = libgcj-tools.la
+
 ## ################################################################
 
 ## This lists all the C++ source files in subdirectories.
 nat_source_files = \
 gnu/classpath/natSystemProperties.cc \
+gnu/classpath/jdwp/natVMFrame.cc \
+gnu/classpath/jdwp/natVMMethod.cc \
+gnu/classpath/jdwp/natVMVirtualMachine.cc \
 gnu/gcj/natCore.cc \
 gnu/gcj/convert/JIS0208_to_Unicode.cc \
 gnu/gcj/convert/JIS0212_to_Unicode.cc \
@@ -766,6 +820,7 @@ gnu/gcj/io/natSimpleSHSStream.cc \
 gnu/gcj/io/shs.cc \
 gnu/gcj/runtime/natFinalizerThread.cc \
 gnu/gcj/runtime/natSharedLibLoader.cc \
+gnu/gcj/runtime/natSystemClassLoader.cc \
 gnu/gcj/runtime/natStringBuffer.cc \
 gnu/gcj/util/natDebug.cc \
 gnu/java/lang/natMainThread.cc \
@@ -801,11 +856,13 @@ java/lang/reflect/natArray.cc \
 java/lang/reflect/natConstructor.cc \
 java/lang/reflect/natField.cc \
 java/lang/reflect/natMethod.cc \
-java/lang/reflect/natProxy.cc \
 java/net/natVMNetworkInterface.cc \
 java/net/natInetAddress.cc \
-java/nio/channels/natChannels.cc \
+java/net/natURLClassLoader.cc \
+java/nio/channels/natVMChannels.cc \
 java/nio/natDirectByteBufferImpl.cc \
+java/security/natVMAccessController.cc \
+java/security/natVMAccessControlState.cc \
 java/text/natCollator.cc \
 java/util/natResourceBundle.cc \
 java/util/natVMTimeZone.cc \
@@ -846,20 +903,41 @@ gnu/gcj/xlib/natXUnmapEvent.cc
 src.zip:
        -rm -f src.zip
        here=`pwd`; \
-       ( ( cd $(srcdir); \
+       ( \
+         ( cd $(srcdir)/classpath; \
          find java gnu javax org -name '*.java' -print | \
          while read file; do \
 ## Ugly code to avoid "echo -C".  Must separate each entry by a newline
 ## Gross but easy.
            echo "x-C" | sed -e 's/^.//'; \
-           echo $(srcdir); \
+           echo $(srcdir)/classpath; \
            echo $$file; \
          done ); \
 ## Now the build tree.
-         find gnu java -name '*.java' -print) | \
-## Many of the above circumlocutions are because ZIP will most likely
-## be a relative path to fastjar.
-       $(ZIP) -cfM@ $$here/src.zip
+         ( cd classpath; \
+           find gnu java -name '*.java' -print | \
+           while read file; do \
+           echo "x-C" | sed -e 's/^.//'; \
+           echo `pwd`; \
+           echo $$file; \
+         done ); \
+       ) | \
+## Many of the above circumlocutions were because ZIP used to be a
+## relative path to fastjar.  It didn't seem worthwhile to change the
+## code when we moved to an external jar.
+       $(JAR) -cfM@ $$here/src.zip
+## Override GNU Classpath sources with libgcj replacements.
+       here=`pwd`; \
+       ( \
+         ( cd $(srcdir); \
+         find gnu java -name '*.java' -print | \
+         while read file; do \
+           echo "x-C" | sed -e 's/^.//'; \
+           echo $(srcdir); \
+           echo $$file; \
+         done ); \
+       ) | \
+       $(JAR) -ufM@ $$here/src.zip
 
 ## We use a variable for this in case the user wants to override it.
 sourcesdir = $(jardir)
@@ -903,6 +981,7 @@ create-headers: $(headers_to_make)
 
 $(libgcj_la_OBJECTS) $(gcj_dbtool_OBJECTS) $(xlib_nat_files): headers.stamp
 $(libgij_la_OBJECTS): headers.stamp
+$(libjvm_la_OBJECTS): headers.stamp
 
 ## ################################################################
 
@@ -956,6 +1035,10 @@ CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
 
 MAKEOVERRIDES=
 
+# No install-html support yet.
+.PHONY: install-html
+install-html:
+
 # Multilib support variables.
 MULTISRCTOP =
 MULTIBUILDTOP =