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

Reply via email to