On Wed, 2003-07-23 at 13:23, Tom Tromey wrote:
> >>>>> "Tom" == Thomas Fitzsimmons <[EMAIL PROTECTED]> writes:
>
> Tom> Currently the list consists of AWT-related headers. Could someone who
> Tom> is more familiar with the other areas of classpath that require JNI
> Tom> headers complete the list? Some headers should probably be removed.
>
> This will get you a list:
>
> find . -name '*.[ch]' -print | xargs egrep -h '#include.*_' | grep -v target_ | grep
> -v native_state | grep -v libart_lgpl | sort -u
>
> So it seems anyway.
>
Ok, I added the targets that were missing.
> Tom> Mark Wielaard suggested that anyone checking in changes to these headers
> Tom> should use gcjh, since it is free and produces clean output. If people
> Tom> agree with this, I will regenerate the AWT-headers and check them in.
>
> I like this, but then I would. One question is about gcjh version
> dependency. Older versions of gcjh don't print JNICALL and JNIEXPORT
> stuff -- we want to make sure that everybody is using a new enough
> version.
>
> I don't think this is that big a deal, since the target is optional
> and we're checking in the canonical headers. It will only affect
> people who need to rebuild the headers and don't want to be bothered
> to find gcjh. But if they just refrain from checking in their
> modified versions they can use whatever tool they like...
>
> Tom> +[case "${enableval}" in
> Tom> + yes) HEADER_DIR=include ;;
> Tom> + no) HEADER_DIR="" ;;
> Tom> + *) HEADER_DIR="" ;;
> Tom> +esac],
> Tom> +[HEADER_DIR=""])
> Tom> +AC_SUBST(HEADER_DIR)
>
> It is somewhat more idiomatic to use an AM_CONDITIONAL and then just
> wrap the rules in include/ with `if condition...'. One reason to do
> this is that otherwise other built files in include won't be correctly
> rebuilt by a simple "make" in the non-header-regenerate case. (E.g.,
> if you touch jni.h.in, it should rebuild automatically...)
>
Good point. I used the existing CREATE_JNI_HEADERS (which was otherwise
unused).
> Tom> +$(top_srcdir)/include/gnu_java_awt_image_GdkPixbufDecoder.h:
> $(top_srcdir)/gnu/java/awt/image/GdkPixbufDecoder.java
> Tom> + $(JAVAH) -o $@ $(shell basename $@ .h | tr '_' '.')
>
> $(shell...) is a GNU make-ism. Chances are that nobody will notice,
> but it is more portable to write out the name here.
>
OK.
Thanks for the comments.
New patch attached,
Tom
2003-07-23 Thomas Fitzsimmons <[EMAIL PROTECTED]>
* Makefile.am (SUBDIRS): Add include.
* configure.in: Add --enable-regen-headers flag.
(AC_OUTPUT): Add include/Makefile.
* include/Makefile.am: New file.
Index: Makefile.am
===================================================================
RCS file: /cvsroot/classpath/classpath/Makefile.am,v
retrieving revision 1.25
diff -u -b -B -r1.25 Makefile.am
--- Makefile.am 1 Feb 2003 12:54:05 -0000 1.25
+++ Makefile.am 23 Jul 2003 20:00:53 -0000
@@ -1,7 +1,7 @@
## Input file for automake to generate the Makefile.in used by configure
# lib first, to compile .class files before native code
-SUBDIRS = lib doc gnu java javax native resource vm
+SUBDIRS = lib doc gnu java javax include native resource vm
native: lib
Index: configure.in
===================================================================
RCS file: /cvsroot/classpath/classpath/configure.in,v
retrieving revision 1.127
diff -u -b -B -r1.127 configure.in
--- configure.in 16 Jul 2003 15:17:33 -0000 1.127
+++ configure.in 23 Jul 2003 20:00:54 -0000
@@ -70,11 +70,21 @@
esac],
[COMPILE_GTK_PEER=yes])
-AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${COMPILE_JNI}" = xyes)
AM_CONDITIONAL(CREATE_JNI_LIBRARIES, test "x${COMPILE_JNI}" = xyes)
AM_CONDITIONAL(CREATE_CNI_LIBRARIES, test "x${COMPILE_CNI}" = xyes)
AM_CONDITIONAL(CREATE_GTK_PEER_LIBRARIES, test "x${COMPILE_GTK_PEER}" = xyes)
+AC_ARG_ENABLE(regen-headers,
+[ --enable-regen-headers automatically regenerate JNI headers [default=no]],
+[case "${enableval}" in
+ yes) REGENERATE_JNI_HEADERS=yes ;;
+ no) REGENERATE_JNI_HEADERS=no ;;
+ *) REGENERATE_JNI_HEADERS=no ;;
+esac],
+[REGENERATE_JNI_HEADERS=no])
+
+AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
+
AC_PROG_LN_S
AC_PROG_INSTALL
@@ -328,6 +338,7 @@
gnu/javax/Makefile
gnu/javax/rmi/Makefile
gnu/javax/rmi/CORBA/Makefile
+include/Makefile
include/jni.h
java/Makefile
java/applet/Makefile
Index: include/Makefile.am
===================================================================
RCS file: include/Makefile.am
diff -N include/Makefile.am
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ include/Makefile.am 23 Jul 2003 20:00:54 -0000
@@ -0,0 +1,159 @@
+USER_JAVAH = @USER_JAVAH@
+USER_CLASSLIB = @USER_CLASSLIB@
+ARG_JNI_JAVAH = -jni
+ARG_CLASSPATH_JAVAH = -classpath
+JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB)
+
+H_FILES = \
+$(top_srcdir)/include/gnu_java_awt_image_GdkPixbufDecoder.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontMetrics.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphics.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImagePainter.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMainThread.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextComponentPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \
+$(top_srcdir)/include/java_io_FileDescriptor.h \
+$(top_srcdir)/include/java_io_File.h \
+$(top_srcdir)/include/java_io_ObjectInputStream.h \
+$(top_srcdir)/include/java_lang_Double.h \
+$(top_srcdir)/include/java_lang_Math.h \
+$(top_srcdir)/include/java_lang_Object.h \
+$(top_srcdir)/include/java_lang_VMFloat.h \
+$(top_srcdir)/include/java_lang_VMSystem.h \
+$(top_srcdir)/include/java_lang_reflect_Array.h \
+$(top_srcdir)/include/java_net_InetAddress.h \
+$(top_srcdir)/include/java_net_NetworkInterface.h \
+$(top_srcdir)/include/java_net_PlainDatagramSocketImpl.h \
+$(top_srcdir)/include/java_net_PlainSocketImpl.h \
+$(top_srcdir)/include/java_nio_DirectByteBufferImpl.h \
+$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \
+$(top_srcdir)/include/gnu_java_nio_FileLockImpl.h \
+$(top_srcdir)/include/java_util_TimeZone.h
+
+if CREATE_JNI_HEADERS
+
+all-local: $(H_FILES)
+
+$(top_srcdir)/include/gnu_java_awt_image_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/image/GdkPixbufDecoder.java
+ $(JAVAH) -o $@ gnu.java.awt.image.GdkPixbufDecoder
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontMetrics.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontMetrics
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphics.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphics
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxGroupPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImagePainter.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImagePainter.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImagePainter
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMainThread.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMainThread.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMainThread
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer
+$(top_srcdir)/include/java_io_FileDescriptor.h: $(top_srcdir)/java/io/FileDescriptor.java
+ $(JAVAH) -o $@ java.io.FileDescriptor
+$(top_srcdir)/include/java_io_File.h: $(top_srcdir)/java/io/File.java
+ $(JAVAH) -o $@ java.io.File
+$(top_srcdir)/include/java_io_ObjectInputStream.h: $(top_srcdir)/java/io/ObjectInputStream.java
+ $(JAVAH) -o $@ java.io.ObjectInputStream
+$(top_srcdir)/include/java_lang_Double.h: $(top_srcdir)/java/lang/Double.java
+ $(JAVAH) -o $@ java.lang.Double
+$(top_srcdir)/include/java_lang_Math.h: $(top_srcdir)/java/lang/Math.java
+ $(JAVAH) -o $@ java.lang.Math
+$(top_srcdir)/include/java_lang_Object.h: $(top_srcdir)/java/lang/Object.java
+ $(JAVAH) -o $@ java.lang.Object
+$(top_srcdir)/include/java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java
+ $(JAVAH) -o $@ java.lang.VMFloat
+$(top_srcdir)/include/java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java
+ $(JAVAH) -o $@ java.lang.VMSystem
+$(top_srcdir)/include/java_lang_reflect_Array.h: $(top_srcdir)/java/lang/reflect/Array.java
+ $(JAVAH) -o $@ java.lang.reflect.Array
+$(top_srcdir)/include/java_net_InetAddress.h: $(top_srcdir)/java/net/InetAddress.java
+ $(JAVAH) -o $@ java.net.InetAddress
+$(top_srcdir)/include/java_net_NetworkInterface.h: $(top_srcdir)/java/net/NetworkInterface.java
+ $(JAVAH) -o $@ java.net.NetworkInterface
+$(top_srcdir)/include/java_net_PlainDatagramSocketImpl.h: $(top_srcdir)/java/net/PlainDatagramSocketImpl.java
+ $(JAVAH) -o $@ java.net.PlainDatagramSocketImpl
+$(top_srcdir)/include/java_net_PlainSocketImpl.h: $(top_srcdir)/java/net/PlainSocketImpl.java
+ $(JAVAH) -o $@ java.net.PlainSocketImpl
+$(top_srcdir)/include/java_nio_DirectByteBufferImpl.h: $(top_srcdir)/java/nio/DirectByteBufferImpl.java
+ $(JAVAH) -o $@ java.nio.DirectByteBufferImpl
+$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/java/nio/channels/FileChannelImpl.java
+ $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl
+$(top_srcdir)/include/gnu_java_nio_FileLockImpl.h: $(top_srcdir)/gnu/java/nio/FileLockImpl.java
+ $(JAVAH) -o $@ gnu.java.nio.FileLockImpl
+$(top_srcdir)/include/java_util_TimeZone.h: $(top_srcdir)/java/util/TimeZone.java
+ $(JAVAH) -o $@ java.util.TimeZone
+
+else
+
+all-local:
+
+endif # CREATE_JNI_HEADERS
_______________________________________________
Classpath mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/classpath