diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-16 01:27:14 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-07-16 01:27:14 +0000 |
| commit | a63c2657c94913d72b3cd388730d61edcb09fc69 (patch) | |
| tree | 8762d1f992e2f725a6bde1ff966ed6f1e5f4f823 /libjava/HACKING | |
| parent | 6484dceb0094998183c2f8d3c8c27c6f4e53b8a9 (diff) | |
| download | ppe42-gcc-a63c2657c94913d72b3cd388730d61edcb09fc69.tar.gz ppe42-gcc-a63c2657c94913d72b3cd388730d61edcb09fc69.zip | |
Major merge with Classpath.
Removed many duplicate files.
* HACKING: Updated.x
* classpath: Imported new directory.
* standard.omit: New file.
* Makefile.in, aclocal.m4, configure: Rebuilt.
* sources.am: New file.
* configure.ac: Run Classpath configure script. Moved code around
to support. Disable xlib AWT peers (temporarily).
* Makefile.am (SUBDIRS): Added 'classpath'
(JAVAC): Removed.
(AM_CPPFLAGS): Added more -I options.
(BOOTCLASSPATH): Simplified.
Completely redid how sources are built.
Include sources.am.
* include/Makefile.am (tool_include__HEADERS): Removed jni.h.
* include/jni.h: Removed (in Classpath).
* scripts/classes.pl: Updated to look at built classes.
* scripts/makemake.tcl: New file.
* testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Added
-I options.
(gcj_jni_invocation_compile_c_to_binary): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102082 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/HACKING')
| -rw-r--r-- | libjava/HACKING | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/libjava/HACKING b/libjava/HACKING index a26590596a1..df74b06414e 100644 --- a/libjava/HACKING +++ b/libjava/HACKING @@ -7,36 +7,46 @@ explained in this HACKING file. Please add them if you discover them :) -- -A lot of the standard library files come from the GNU Classpath project. -<http://www.gnu.org/software/classpath/> -The libgcj and Classpath project have officially merged, but the merge -is not yet complete. Our eventual goal is for Classpath to be an upstream -source provider for libgcj, however it will be some time before this becomes -reality: libgcj and Classpath have different implementations of many core -java classes. In order to merge them, we need to select the best (most -efficient, cleanest) implementation of each method/class/package, resolve -any conflicts created by the merge, and test the final result. - -The merged files can be recognized by the standard Classpath copyright -comments at the top of the file. If you make changes to these files -then you should also check in the fix to Classpath. For small changes -it may be easier to send a patch to the classpath mailinglist. For -large changes, if you have direct write access to the libgcj tree, -then you will also need to get a Classpath account and do the work -yourself. -<http://mail.gnu.org/mailman/listinfo/classpath/> -<mailto:classpath@gnu.org> - -If you merge a libgcj class with a classpath class then you must update the -copyright notice at the top of the file so others can see that this is a -shared libgcj/classpath file. +libgcj uses GNU Classpath as an upstream provider. Snapshots of +Classpath are imported into the libgcj source tree. Some classes are +overridden by local versions; these files still appear in the libgcj +tree. + +To import a new release: + +- Check out a classpath snapshot +- Use auto* to create configure, Makefile.in, etc + You have to make sure to use the gcc libtool.m4 and gcc lt* scripts + cd .../classpath + cp ../../lt* . + aclocal -I m4 -I ../.. + autoconf + autoheader + automake + rm -rf autom4te.cache +- Test everything first. The simplest way to do this is by overlaying + the checked out classpath on your gcc tree and then doing a build. +- Use 'cvs import' to import. The vendor tag is 'CLASSPATH'. For the + release tag, if this is a released classpath version, use something + like 'classpath-import-VERSION'; otherwise something like + 'classpath-import-DATE'. + Be sure to use -ko and -I\! +- Remove any files that were deleted in Classpath +- Run 'scripts/makemake.tcl > sources.am' in the source tree +- Run automake for libgcj + +Over time we plan to remove as many of the remaining divergences as +possible. + +File additions and deletions require running scripts/makemake.tcl +before running automake. + -- If you need to add new java files to libgcj then you have to edit the Makefile.am file in the top (libjava) directory. And run automake. -Tom Tromey adds: If you add a class to java.lang, java.io, or java.util (including sub-packages, like java.lang.ref). @@ -45,8 +55,10 @@ If you add a class to java.lang, java.io, or java.util * Go to the `namespace java' line, and delete that entire block (the entire contents of the namespace) -* Then insert the output of `perl ../scripts/classes.pl' into the file - at that point. +* Then insert the output of `perl scripts/classes.pl' into the file + at that point. This must be run from the build tree, in + <build>/classpath/lib; it uses the .class file name to determine + what to print. If you're generating a patch there is a program you can get to do an offline `cvs add' (it will fake an `add' if you don't have write |

