diff options
author | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-18 17:29:21 +0000 |
---|---|---|
committer | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-18 17:29:21 +0000 |
commit | 64089cc9f030d8ef7972adb5d117e0b23f47d62b (patch) | |
tree | 9f9c470de62ee62fba1331a396450d728d2b1fad /libjava/classpath/native/jni | |
parent | 96034e28360d660d7a7708807fcbc4b519574d8e (diff) | |
download | gcc-64089cc9f030d8ef7972adb5d117e0b23f47d62b.tar.gz |
Imported GNU Classpath 0.90
* scripts/makemake.tcl: LocaleData.java moved to gnu/java/locale.
* sources.am: Regenerated.
* gcj/javaprims.h: Regenerated.
* Makefile.in: Regenerated.
* gcj/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.
* gnu/java/lang/VMInstrumentationImpl.java: New override.
* gnu/java/net/local/LocalSocketImpl.java: Likewise.
* gnu/classpath/jdwp/VMMethod.java: Likewise.
* gnu/classpath/jdwp/VMVirtualMachine.java: Update to latest
interface.
* java/lang/Thread.java: Add UncaughtExceptionHandler.
* java/lang/reflect/Method.java: Implements GenericDeclaration and
isSynthetic(),
* java/lang/reflect/Field.java: Likewise.
* java/lang/reflect/Constructor.java
* java/lang/Class.java: Implements Type, GenericDeclaration,
getSimpleName() and getEnclosing*() methods.
* java/lang/Class.h: Add new public methods.
* java/lang/Math.java: Add signum(), ulp() and log10().
* java/lang/natMath.cc (log10): New function.
* java/security/VMSecureRandom.java: New override.
* java/util/logging/Logger.java: Updated to latest classpath
version.
* java/util/logging/LogManager.java: New override.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113887 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/native/jni')
51 files changed, 1957 insertions, 647 deletions
diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in index 7aa8fc281aa..d39cb213526 100644 --- a/libjava/classpath/native/jni/Makefile.in +++ b/libjava/classpath/native/jni/Makefile.in @@ -77,6 +77,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -116,6 +117,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -136,6 +139,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -183,6 +187,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -201,8 +206,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -214,8 +222,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -232,7 +238,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -240,18 +249,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ diff --git a/libjava/classpath/native/jni/classpath/Makefile.am b/libjava/classpath/native/jni/classpath/Makefile.am index a26ab832bd2..d996df63640 100644 --- a/libjava/classpath/native/jni/classpath/Makefile.am +++ b/libjava/classpath/native/jni/classpath/Makefile.am @@ -7,6 +7,6 @@ libclasspath_la_SOURCES = jcl.c jcl.h \ jnilink.c jnilink.h \ native_state.c native_state.h -AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_LDFLAGS = @CLASSPATH_CONVENIENCE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in index 6f33b777811..2f3c3c76ba4 100644 --- a/libjava/classpath/native/jni/classpath/Makefile.in +++ b/libjava/classpath/native/jni/classpath/Makefile.in @@ -89,6 +89,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -128,6 +129,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -148,6 +151,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -195,6 +199,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -213,8 +218,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -226,8 +234,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -244,7 +250,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -252,18 +261,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -281,7 +294,7 @@ libclasspath_la_SOURCES = jcl.c jcl.h \ jnilink.c jnilink.h \ native_state.c native_state.h -AM_LDFLAGS = @CLASSPATH_MODULE@ +AM_LDFLAGS = @CLASSPATH_CONVENIENCE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ all: all-am diff --git a/libjava/classpath/native/jni/classpath/jcl.c b/libjava/classpath/native/jni/classpath/jcl.c index dd6ca06a70e..e28c6631bad 100644 --- a/libjava/classpath/native/jni/classpath/jcl.c +++ b/libjava/classpath/native/jni/classpath/jcl.c @@ -68,9 +68,9 @@ JCL_ThrowException (JNIEnv * env, const char *className, const char *errMsg) if (errExcClass == NULL) { fprintf (stderr, "JCL: Utterly failed to throw exeption "); - fprintf (stderr, className); + fprintf (stderr, "%s", className); fprintf (stderr, " with message "); - fprintf (stderr, errMsg); + fprintf (stderr, "%s", errMsg); return; } } diff --git a/libjava/classpath/native/jni/classpath/jcl.h b/libjava/classpath/native/jni/classpath/jcl.h index 25662c06b53..514b7826291 100644 --- a/libjava/classpath/native/jni/classpath/jcl.h +++ b/libjava/classpath/native/jni/classpath/jcl.h @@ -71,9 +71,20 @@ JNIEXPORT void * JNICALL JCL_GetRawData (JNIEnv * env, jobject rawdata); /* Simple debug macro */ #ifdef DEBUG -#define DBG(x) fprintf(stderr, (x)); +#define DBG(x) fprintf(stderr, "%s", (x)); #else #define DBG(x) #endif +/* Some O/S's don't declare 'environ' */ +#if HAVE_CRT_EXTERNS_H +/* Darwin does not have a variable named environ + but has a function which you can get the environ + variable with. */ +#include <crt_externs.h> +#define environ (*_NSGetEnviron()) +#else +extern char **environ; +#endif /* HAVE_CRT_EXTERNS_H */ + #endif diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in index 9f4f3321b24..a90bf483bc5 100644 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.in +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in @@ -167,6 +167,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -206,6 +207,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -226,6 +229,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -273,6 +277,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -291,8 +296,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -304,8 +312,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -322,7 +328,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -330,18 +339,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c index 30f2d5e24cd..0726fb531bb 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c @@ -217,10 +217,10 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getGlyphVector } (*env)->ReleaseStringUTFChars (env, chars, str); - + for (i = g_list_first (items); i != NULL; i = g_list_next (i)) - g_free (i->data); - + pango_item_free(i->data); + g_list_free (items); gdk_threads_leave (); @@ -239,6 +239,17 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics struct peerfont *pfont = NULL; jdouble *native_metrics = NULL; PangoFontMetrics *pango_metrics = NULL; + PangoLayout* layout = NULL; + PangoRectangle ink_rect; + PangoRectangle logical_rect; + PangoLayoutIter* iter = NULL; + int pango_ascent = 0; + int pango_descent = 0; + int pango_ink_ascent = 0; + int pango_ink_descent = 0; + int baseline = 0; + int java_ascent = 0; + int java_descent = 0; gdk_threads_enter(); @@ -254,21 +265,52 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics g_assert (native_metrics != NULL); - native_metrics[FONT_METRICS_ASCENT] - = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics)); + pango_ascent = PANGO_PIXELS (pango_font_metrics_get_ascent (pango_metrics)); + pango_descent = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics)); + + layout = pango_layout_new (pfont->ctx); + + /* Pango seems to produce ascent and descent values larger than + those that Sun produces for the same-sized font. It turns out + that an average of the "ink ascent" and "logical ascent" closely + approximates Sun's ascent values. Likewise for descent values. + This is expensive but we cache GdkFontMetrics so this should only + run once per Font instance. */ + pango_layout_set_text (layout, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL" + "MNOPQRSTUVWXYZ0123456789", -1); + pango_layout_set_font_description (layout, pfont->desc); + + pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect); - native_metrics[FONT_METRICS_MAX_ASCENT] - = native_metrics[FONT_METRICS_ASCENT]; + iter = pango_layout_get_iter (layout); + + baseline = PANGO_PIXELS (pango_layout_iter_get_baseline (iter)); + + pango_ink_ascent = baseline - ink_rect.y; + pango_ink_descent = ink_rect.y + ink_rect.height - baseline; + + java_ascent = (pango_ascent + pango_ink_ascent) >> 1; + java_descent = (pango_descent + pango_ink_descent) >> 1; + + java_ascent = MAX(0, java_ascent); + java_descent = MAX(0, java_descent); + + pango_ascent = MAX(0, pango_ascent); + pango_descent = MAX(0, pango_descent); + + /* Pango monospaced fonts have smaller ascent metrics than Sun's so + we return the logical ascent for monospaced fonts. */ + if (!strcmp (pango_font_description_get_family (pfont->desc), + "Courier")) + native_metrics[FONT_METRICS_ASCENT] = pango_ascent; + else + native_metrics[FONT_METRICS_ASCENT] = java_ascent; - native_metrics[FONT_METRICS_DESCENT] - = PANGO_PIXELS (pango_font_metrics_get_descent (pango_metrics)); + native_metrics[FONT_METRICS_MAX_ASCENT] = pango_ascent; - if (native_metrics[FONT_METRICS_DESCENT] < 0) - native_metrics[FONT_METRICS_DESCENT] - = - native_metrics[FONT_METRICS_DESCENT]; + native_metrics[FONT_METRICS_DESCENT] = java_descent; - native_metrics[FONT_METRICS_MAX_DESCENT] - = native_metrics[FONT_METRICS_DESCENT]; + native_metrics[FONT_METRICS_MAX_DESCENT] = pango_descent; native_metrics[FONT_METRICS_MAX_ADVANCE] = PANGO_PIXELS (pango_font_metrics_get_approximate_char_width diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c index f6e0e6bda15..29bc1855bbf 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c @@ -43,6 +43,46 @@ exception statement from your version. */ static jmethodID initComponentGraphicsUnlockedID; +/* + * AWT applications may call Graphics methods from threads other than + * the GDK main thread, so we must call XFlush after each batch of + * drawing operations, otherwise animations flicker. Flushing after + * every graphics operation is excessive and negatively affects + * performance (PR 26486). We set the maximum frequency to 50 times + * per second, or a minimum period of 20 milliseconds between calls to + * XFlush. See gnu.classpath.examples.awt.AnimationApplet for an + * example applet that requires these XFlush calls. + */ + +static short flush_scheduled = 0; + +static gboolean flush (gpointer data __attribute__((unused))) +{ + gdk_threads_enter (); + + XFlush (GDK_DISPLAY ()); + flush_scheduled = 0; + + gdk_threads_leave (); + + return FALSE; +} + +/* The minimum time period between calls to XFlush, in + milliseconds. */ +#define MINIMUM_FLUSH_PERIOD 20 + +/* schedule_flush must be called with the GDK lock held. */ +static void +schedule_flush () +{ + if (!flush_scheduled) + { + g_timeout_add (MINIMUM_FLUSH_PERIOD, flush, NULL); + flush_scheduled = 1; + } +} + void cp_gtk_graphics_init_jni (void) { @@ -120,7 +160,8 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeCopyState else /* GDK_IS_WINDOW (g->drawable) */ g_object_ref (g->drawable); - g_object_ref (g->cm); + if (g->cm != NULL) + g_object_ref (g->cm); NSA_SET_G_PTR (env, obj, g); @@ -141,7 +182,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II g->drawable = (GdkDrawable *) gdk_pixmap_new (NULL, width, height, gdk_rgb_get_visual ()->depth); g->cm = gdk_rgb_get_colormap (); - g_object_ref (g->cm); + + if (g->cm != NULL) + g_object_ref (g->cm); g->gc = gdk_gc_new (g->drawable); NSA_SET_G_PTR (env, obj, g); @@ -168,7 +211,9 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initFromImage g->drawable = (GdkDrawable *)pixmap; g->cm = gdk_drawable_get_colormap (g->drawable); - g_object_ref (g->cm); + + if (g->cm != NULL) + g_object_ref (g->cm); g->gc = gdk_gc_new (g->drawable); NSA_SET_G_PTR (env, obj, g); @@ -195,7 +240,10 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_initStateUnlocked g_object_ref (g->drawable); g->cm = gtk_widget_get_colormap (widget); - g_object_ref (g->cm); + + if (g->cm != NULL) + g_object_ref (g->cm); + g->gc = gdk_gc_new (g->drawable); gdk_gc_copy (g->gc, widget->style->fg_gc[GTK_STATE_NORMAL]); color = widget->style->fg[GTK_STATE_NORMAL]; @@ -253,15 +301,17 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_nativeDispose } XFlush (GDK_DISPLAY ()); - - g_object_unref (g->gc); + + if (g->gc != NULL) + g_object_unref (g->gc); if (GDK_STABLE_IS_PIXMAP (g->drawable)) g_object_unref (g->drawable); - else /* GDK_IS_WINDOW (g->drawable) */ + else if (g->drawable != NULL) g_object_unref (g->drawable); - g_object_unref (g->cm); + if (g->cm != NULL) + g_object_unref (g->cm); g_free (g); @@ -343,7 +393,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawString pango_layout_iter_free (iter); pango_layout_set_text (pfont->layout, "", -1); - gdk_flush (); + schedule_flush (); (*env)->ReleaseStringUTFChars (env, str, cstr); @@ -363,7 +413,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawLine gdk_draw_line (g->drawable, g->gc, x + g->x_offset, y + g->y_offset, x2 + g->x_offset, y2 + g->y_offset); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -380,7 +430,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect gdk_draw_rectangle (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -397,7 +447,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawRect gdk_draw_rectangle (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -419,7 +469,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_copyArea x + g->x_offset, y + g->y_offset, x + g->x_offset + dx, y + g->y_offset + dy, width, height); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -455,13 +505,13 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_clearRect else { gdk_gc_get_values (g->gc, &saved); - gdk_gc_set_foreground (g->gc, &(saved.background)); + gdk_gc_set_background (g->gc, &(saved.background)); gdk_draw_rectangle (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height); gdk_gc_set_foreground (g->gc, &(saved.foreground)); } - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -496,10 +546,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_setFGColor color.blue = blue << 8; g = (struct graphics *) NSA_GET_G_PTR (env, obj); - - gdk_colormap_alloc_color (g->cm, &color, TRUE, TRUE); + + if (g->cm != NULL) + gdk_colormap_alloc_color (g->cm, &color, TRUE, TRUE); + gdk_gc_set_foreground (g->gc, &color); - + gdk_threads_leave (); } @@ -517,7 +569,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawArc gdk_draw_arc (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height, angle1 << 6, angle2 << 6); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -564,7 +616,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolyline g->x_offset, g->y_offset); gdk_draw_lines (g->drawable, g->gc, points, npoints); - gdk_flush (); + schedule_flush (); g_free (points); @@ -591,7 +643,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawPolygon points[npoints++] = points[0]; gdk_draw_lines (g->drawable, g->gc, points, npoints); - gdk_flush (); + schedule_flush (); g_free (points); @@ -612,7 +664,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_fillPolygon points = translate_points (env, xpoints, ypoints, npoints, g->x_offset, g->y_offset); gdk_draw_polygon (g->drawable, g->gc, TRUE, points, npoints); - gdk_flush (); + schedule_flush (); g_free (points); @@ -633,7 +685,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_fillArc gdk_draw_arc (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height, angle1 << 6, angle2 << 6); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -651,7 +703,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_drawOval gdk_draw_arc (g->drawable, g->gc, FALSE, x + g->x_offset, y + g->y_offset, width, height, 0, 23040); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } @@ -669,7 +721,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_fillOval gdk_draw_arc (g->drawable, g->gc, TRUE, x + g->x_offset, y + g->y_offset, width, height, 0, 23040); - gdk_flush (); + schedule_flush (); gdk_threads_leave (); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c index c95ea614b7a..b42f649a15a 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c @@ -1992,6 +1992,10 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilterUnlocked gr = (struct graphics2d *) NSA_GET_G2D_PTR (env, obj); g_assert (gr != NULL); + + if (gr->pattern == NULL) + return; + if (gr->debug) printf ("cairo_pattern_set_filter %d\n", filter); switch ((enum java_awt_rendering_hints_filter) filter) { diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c index 4d6169b85e5..eba00fb6827 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c @@ -1,5 +1,5 @@ /* gdkpixbufdecoder.c - Copyright (C) 1999, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -191,8 +191,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState GdkPixbufLoader *loader = NULL; jobject *decoder = NULL; - gdk_threads_enter (); - decoder = (jobject *) g_malloc (sizeof (jobject)); g_assert (decoder != NULL); *decoder = (*env)->NewGlobalRef (env, obj); @@ -204,8 +202,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState g_signal_connect (loader, "closed", G_CALLBACK (closed_cb), decoder); NSA_SET_PB_PTR (env, obj, loader); - - gdk_threads_leave (); } static void @@ -317,8 +313,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish { GdkPixbufLoader *loader = NULL; - gdk_threads_enter (); - loader = (GdkPixbufLoader *)NSA_DEL_PB_PTR (env, obj); if (loader == NULL) return; @@ -326,8 +320,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish if (needs_close) gdk_pixbuf_loader_close (loader, NULL); g_object_unref (loader); - - gdk_threads_leave (); } JNIEXPORT void JNICALL @@ -337,8 +329,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone GError *err = NULL; GdkPixbufLoader *loader = NULL; - gdk_threads_enter (); - loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj); g_assert (loader != NULL); @@ -349,8 +339,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone JCL_ThrowException (env, "java/io/IOException", err->message); g_error_free (err); } - - gdk_threads_leave (); } struct stream_save_request @@ -370,6 +358,9 @@ save_to_stream(const gchar *buf, jbyteArray jbuf; jbyte *cbuf; + /* FIXME. Don't call user code directly on this thread. + Store bytes and signal a "pump" thread to deliver to user code. + Then we don't have to drop/acquire any locks. */ gdk_threads_leave (); jbuf = (*(ssr->env))->NewByteArray ((ssr->env), count); @@ -400,8 +391,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage int i; struct stream_save_request ssr; - gdk_threads_enter (); - ssr.stream = &stream; ssr.env = env; @@ -465,8 +454,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage (*env)->ReleaseStringUTFChars (env, jenctype, enctype); (*env)->ReleaseIntArrayElements (env, jarr, ints, 0); - - gdk_threads_leave (); } @@ -478,8 +465,6 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes jbyte *bytes = NULL; GError *err = NULL; - gdk_threads_enter (); - g_assert (len >= 1); g_assert (jarr != NULL); @@ -497,6 +482,4 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes JCL_ThrowException (env, "java/io/IOException", err->message); g_error_free (err); } - - gdk_threads_leave (); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c index ef9ac12076a..f44361972ec 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c @@ -56,3 +56,17 @@ Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create gdk_threads_leave (); } + +JNIEXPORT void JNICALL +Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_realize (JNIEnv *env, jobject obj) +{ + void *ptr; + + gdk_threads_enter (); + + ptr = NSA_GET_PTR (env, obj); + + gtk_widget_realize (GTK_WIDGET (ptr)); + + gdk_threads_leave (); +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c index 5ba300b7e20..16ef43c40ff 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c @@ -39,6 +39,8 @@ exception statement from your version. */ #include "gtkpeer.h" #include "gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h" +static GtkWidget *comboboxgroup_get_widget (GtkWidget *widget); + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose (JNIEnv *env, jobject obj) @@ -59,7 +61,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove gdk_threads_enter (); ptr = NSA_GET_PTR (env, checkbox); - button = GTK_RADIO_BUTTON (ptr); + button = GTK_RADIO_BUTTON (comboboxgroup_get_widget (GTK_WIDGET (ptr))); /* Update the group to point to some other widget in the group. We have to do this because Gtk doesn't have a separate object to @@ -75,3 +77,11 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove gdk_threads_leave (); } + +static GtkWidget * +comboboxgroup_get_widget (GtkWidget *widget) +{ + if (GTK_IS_EVENT_BOX (widget)) + return gtk_bin_get_child (GTK_BIN(widget)); + return widget; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c index 297b4f853da..191cdda8fcc 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c @@ -42,6 +42,7 @@ exception statement from your version. */ #include "gnu_java_awt_peer_gtk_GtkComponentPeer.h" static jmethodID postItemEventID; +static GtkWidget *combobox_get_widget (GtkWidget *widget); void cp_gtk_checkbox_init_jni (void) @@ -63,26 +64,35 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_create (JNIEnv *env, jobject obj, jobject group) { GtkWidget *button; + GtkWidget *eventbox; gdk_threads_enter (); NSA_SET_GLOBAL_REF (env, obj); - + eventbox = gtk_event_box_new (); + if (group == NULL) + { button = gtk_check_button_new_with_label (""); + gtk_container_add (GTK_CONTAINER (eventbox), button); + gtk_widget_show (button); + } else { void *native_group = NSA_GET_PTR (env, group); button = gtk_radio_button_new_with_label_from_widget (native_group, ""); + gtk_container_add (GTK_CONTAINER (eventbox), button); + gtk_widget_show (button); + if (native_group == NULL) - { - /* Set the native group so we can use the correct value the - next time around. FIXME: this doesn't work! */ - NSA_SET_PTR (env, group, button); - } + { + /* Set the native group so we can use the correct value the + next time around. FIXME: this doesn't work! */ + NSA_SET_PTR (env, group, button); + } } - NSA_SET_PTR (env, obj, button); + NSA_SET_PTR (env, obj, eventbox); gdk_threads_leave (); } @@ -93,18 +103,20 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals { void *ptr = NULL; jobject *gref = NULL; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); gref = NSA_GET_GLOBAL_REF (env, obj); + bin = combobox_get_widget (GTK_WIDGET (ptr)); /* Checkbox signals */ - g_signal_connect (G_OBJECT (ptr), "toggled", + g_signal_connect (G_OBJECT (bin), "toggled", G_CALLBACK (item_toggled_cb), *gref); /* Component signals */ - cp_gtk_component_connect_signals (G_OBJECT (ptr), gref); + cp_gtk_component_connect_signals (G_OBJECT (bin), gref); gdk_threads_leave (); } @@ -115,16 +127,18 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup { GtkRadioButton *button; void *native_group, *ptr; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - + bin = combobox_get_widget (GTK_WIDGET (ptr)); + /* FIXME: we can't yet switch between a checkbutton and a radiobutton. However, AWT requires this. For now we just crash. */ - button = GTK_RADIO_BUTTON (ptr); + button = GTK_RADIO_BUTTON (bin); native_group = NSA_GET_PTR (env, group); if (native_group == NULL) @@ -152,12 +166,14 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive (JNIEnv *env, jobject obj, jboolean is_active) { void *ptr; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ptr), is_active); + bin = combobox_get_widget (GTK_WIDGET (ptr)); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bin), is_active); gdk_threads_leave (); } @@ -176,7 +192,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont ptr = NSA_GET_PTR (env, obj); - button = GTK_WIDGET (ptr); + button = combobox_get_widget (GTK_WIDGET (ptr)); label = gtk_bin_get_child (GTK_BIN(button)); if (!label) @@ -217,7 +233,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel c_label = (*env)->GetStringUTFChars (env, label, NULL); - label_widget = gtk_bin_get_child (GTK_BIN (ptr)); + label_widget = gtk_bin_get_child (GTK_BIN (combobox_get_widget (GTK_WIDGET (ptr)))); gtk_label_set_text (GTK_LABEL (label_widget), c_label); (*env)->ReleaseStringUTFChars (env, label, c_label); @@ -233,3 +249,15 @@ item_toggled_cb (GtkToggleButton *item, jobject peer) peer, item->active); } + +static GtkWidget * +combobox_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + + g_assert (GTK_IS_EVENT_BOX (widget)); + wid = gtk_bin_get_child (GTK_BIN(widget)); + + return wid; +} + diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c index e9a0f693e1a..46949d99a84 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c @@ -40,6 +40,7 @@ exception statement from your version. */ #include "gnu_java_awt_peer_gtk_GtkChoicePeer.h" static jmethodID postChoiceItemEventID; +static GtkWidget *choice_get_widget (GtkWidget *widget); void cp_gtk_choice_init_jni (void) @@ -61,16 +62,20 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create (JNIEnv *env, jobject obj) { GtkWidget *combobox; + GtkWidget *eventbox; jobject *gref; gdk_threads_enter (); NSA_SET_GLOBAL_REF (env, obj); gref = NSA_GET_GLOBAL_REF (env, obj); - + + eventbox = gtk_event_box_new (); combobox = gtk_combo_box_new_text (); + gtk_container_add (GTK_CONTAINER (eventbox), combobox); + gtk_widget_show (combobox); - NSA_SET_PTR (env, obj, combobox); + NSA_SET_PTR (env, obj, eventbox); gdk_threads_leave (); } @@ -81,18 +86,21 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals { void *ptr = NULL; jobject *gref = NULL; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); gref = NSA_GET_GLOBAL_REF (env, obj); + bin = choice_get_widget (GTK_WIDGET (ptr)); + /* Choice signals */ - g_signal_connect (G_OBJECT (ptr), "changed", + g_signal_connect (G_OBJECT (bin), "changed", G_CALLBACK (selection_changed_cb), *gref); /* Component signals */ - cp_gtk_component_connect_signals (G_OBJECT (ptr), gref); + cp_gtk_component_connect_signals (G_OBJECT (bin), gref); gdk_threads_leave (); } @@ -103,11 +111,13 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append { gpointer ptr; jsize count, i; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - + bin = choice_get_widget (GTK_WIDGET (ptr)); + count = (*env)->GetArrayLength (env, items); for (i = 0; i < count; i++) @@ -118,7 +128,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_append item = (*env)->GetObjectArrayElement (env, items, i); label = (*env)->GetStringUTFChars (env, item, NULL); - gtk_combo_box_append_text (GTK_COMBO_BOX (ptr), label); + gtk_combo_box_append_text (GTK_COMBO_BOX (bin), label); (*env)->ReleaseStringUTFChars (env, item, label); (*env)->DeleteLocalRef(env, item); @@ -133,14 +143,16 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeAdd { void *ptr; const char *label; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - + bin = choice_get_widget (GTK_WIDGET (ptr)); + label = (*env)->GetStringUTFChars (env, item, 0); - gtk_combo_box_insert_text (GTK_COMBO_BOX (ptr), index, label); + gtk_combo_box_insert_text (GTK_COMBO_BOX (bin), index, label); (*env)->ReleaseStringUTFChars (env, item, label); @@ -152,12 +164,14 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove (JNIEnv *env, jobject obj, jint index) { void *ptr; - + GtkWidget *bin; + gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), index); + bin = choice_get_widget (GTK_WIDGET (ptr)); + + gtk_combo_box_remove_text (GTK_COMBO_BOX (bin), index); gdk_threads_leave (); } @@ -168,20 +182,22 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll { void *ptr; GtkTreeModel *model; + GtkWidget *bin; gint count, i; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - model = gtk_combo_box_get_model (GTK_COMBO_BOX (ptr)); + bin = choice_get_widget (GTK_WIDGET (ptr)); + + model = gtk_combo_box_get_model (GTK_COMBO_BOX (bin)); count = gtk_tree_model_iter_n_children (model, NULL); /* First, unselect everything, to avoid problems when removing items. */ - gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), -1); + gtk_combo_box_set_active (GTK_COMBO_BOX (bin), -1); for (i = count - 1; i >= 0; i--) { - gtk_combo_box_remove_text (GTK_COMBO_BOX (ptr), i); + gtk_combo_box_remove_text (GTK_COMBO_BOX (bin), i); } gdk_threads_leave (); @@ -204,10 +220,12 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked (JNIEnv *env, jobject obj, jint index) { void *ptr; - + GtkWidget *bin; + ptr = NSA_GET_PTR (env, obj); - - gtk_combo_box_set_active (GTK_COMBO_BOX (ptr), index); + bin = choice_get_widget (GTK_WIDGET (ptr)); + + gtk_combo_box_set_active (GTK_COMBO_BOX (bin), index); } JNIEXPORT jint JNICALL @@ -216,12 +234,14 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected { void *ptr; int index; + GtkWidget *bin; gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - index = gtk_combo_box_get_active (GTK_COMBO_BOX (ptr)); + bin = choice_get_widget (GTK_WIDGET (ptr)); + + index = gtk_combo_box_get_active (GTK_COMBO_BOX (bin)); gdk_threads_leave (); @@ -252,3 +272,14 @@ selection_changed_cb (GtkComboBox *combobox, jobject peer) (jint) AWT_ITEM_SELECTED); } } + +static GtkWidget * +choice_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + + g_assert (GTK_IS_EVENT_BOX (widget)); + wid = gtk_bin_get_child (GTK_BIN(widget)); + + return wid; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c index 3b62dc3357f..cb2c87238b2 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c @@ -1,5 +1,5 @@ /* gtkclipboard.c - Copyright (C) 1998, 1999, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,23 +45,21 @@ exception statement from your version. */ #define IMAGE_TARGET 3 #define URI_TARGET 4 -/* The clipboard and standard (string targets) shared with GtkSelection. */ +/* The clipboard and selection plus corresponding GtkClipboard objects. */ GtkClipboard *cp_gtk_clipboard; +GtkClipboard *cp_gtk_selection; +jobject cp_gtk_clipboard_instance; +jobject cp_gtk_selection_instance; + +/* Standard (string targets) shared with GtkSelection. */ jstring cp_gtk_stringTarget; jstring cp_gtk_imageTarget; jstring cp_gtk_filesTarget; -/* Simple id to keep track of the selection we are currently managing. */ -static gint current_selection = 0; - -/* Whether we "own" the clipboard. And may clear it. */ -static int owner = 0; - static jclass gtk_clipboard_class; -static jmethodID setSystemContentsID; -static jobject gtk_clipboard_instance = NULL; +static jmethodID setSystemContentsID; static jmethodID provideContentID; static jmethodID provideTextID; static jmethodID provideImageID; @@ -70,22 +68,26 @@ static jmethodID provideURIsID; /* Called when clipboard owner changes. Used to update available targets. */ #if GTK_MINOR_VERSION > 4 static void -clipboard_owner_change_cb (GtkClipboard *clipboard __attribute__((unused)), +clipboard_owner_change_cb (GtkClipboard *clipboard, GdkEvent *event __attribute__((unused)), gpointer user_data __attribute__((unused))) { - /* These are only interesting when we are not the owner. Otherwise - we will have the set and clear functions doing the updating. */ JNIEnv *env = cp_gtk_gdk_env (); - if (!owner) - (*env)->CallStaticVoidMethod (env, gtk_clipboard_class, - setSystemContentsID); + if (clipboard == cp_gtk_clipboard) + (*env)->CallVoidMethod (env, cp_gtk_clipboard_instance, + setSystemContentsID, JNI_FALSE); + else + (*env)->CallVoidMethod (env, cp_gtk_selection_instance, + setSystemContentsID, JNI_FALSE); + } #endif JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env, - jclass gtkclipboard, + jclass clz, + jobject gtkclipboard, + jobject gtkselection, jstring string, jstring image, jstring files) @@ -93,19 +95,47 @@ Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env, GdkDisplay* display; jboolean can_cache; - gtk_clipboard_class = gtkclipboard; - setSystemContentsID = (*env)->GetStaticMethodID (env, gtk_clipboard_class, - "setSystemContents", - "()V"); + gtk_clipboard_class = clz; + setSystemContentsID = (*env)->GetMethodID (env, gtk_clipboard_class, + "setSystemContents", + "(Z)V"); if (setSystemContentsID == NULL) return JNI_FALSE; + provideContentID = (*env)->GetMethodID (env, gtk_clipboard_class, + "provideContent", + "(Ljava/lang/String;)[B"); + if (provideContentID == NULL) + return JNI_FALSE; + + provideTextID = (*env)->GetMethodID (env, gtk_clipboard_class, + "provideText", + "()Ljava/lang/String;"); + if (provideTextID == NULL) + return JNI_FALSE; + + provideImageID = (*env)->GetMethodID (env, gtk_clipboard_class, + "provideImage", + "()Lgnu/java/awt/peer/gtk/GtkImage;"); + if (provideImageID == NULL) + return JNI_FALSE; + + provideURIsID = (*env)->GetMethodID (env, gtk_clipboard_class, + "provideURIs", + "()[Ljava/lang/String;"); + if (provideURIsID == NULL) + return JNI_FALSE; + + cp_gtk_clipboard_instance = (*env)->NewGlobalRef(env, gtkclipboard); + cp_gtk_selection_instance = (*env)->NewGlobalRef(env, gtkselection); + cp_gtk_stringTarget = (*env)->NewGlobalRef(env, string); cp_gtk_imageTarget = (*env)->NewGlobalRef(env, image); cp_gtk_filesTarget = (*env)->NewGlobalRef(env, files); gdk_threads_enter (); cp_gtk_clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); + cp_gtk_selection = gtk_clipboard_get (GDK_SELECTION_PRIMARY); display = gtk_clipboard_get_display (cp_gtk_clipboard); /* Check for support for clipboard owner changes. */ @@ -114,26 +144,37 @@ Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env, { g_signal_connect (cp_gtk_clipboard, "owner-change", G_CALLBACK (clipboard_owner_change_cb), NULL); + g_signal_connect (cp_gtk_selection, "owner-change", + G_CALLBACK (clipboard_owner_change_cb), NULL); gdk_display_request_selection_notification (display, GDK_SELECTION_CLIPBOARD); + gdk_display_request_selection_notification (display, + GDK_SELECTION_PRIMARY); can_cache = JNI_TRUE; } else #endif can_cache = JNI_FALSE; + gdk_threads_leave (); return can_cache; } static void -clipboard_get_func (GtkClipboard *clipboard __attribute__((unused)), +clipboard_get_func (GtkClipboard *clipboard, GtkSelectionData *selection, guint info, gpointer user_data __attribute__((unused))) { + jobject gtk_clipboard_instance; JNIEnv *env = cp_gtk_gdk_env (); + if (clipboard == cp_gtk_clipboard) + gtk_clipboard_instance = cp_gtk_clipboard_instance; + else + gtk_clipboard_instance = cp_gtk_selection_instance; + if (info == OBJECT_TARGET) { const gchar *target_name; @@ -258,16 +299,17 @@ clipboard_get_func (GtkClipboard *clipboard __attribute__((unused)), } static void -clipboard_clear_func (GtkClipboard *clipboard __attribute__((unused)), - gpointer user_data) +clipboard_clear_func (GtkClipboard *clipboard, + gpointer user_data __attribute__((unused))) { - if (owner && GPOINTER_TO_INT(user_data) == current_selection) - { - JNIEnv *env = cp_gtk_gdk_env(); - owner = 0; - (*env)->CallStaticVoidMethod (env, gtk_clipboard_class, - setSystemContentsID); - } + JNIEnv *env = cp_gtk_gdk_env(); + if (clipboard == cp_gtk_clipboard) + (*env)->CallVoidMethod (env, cp_gtk_clipboard_instance, + setSystemContentsID, JNI_TRUE); + else + (*env)->CallVoidMethod (env, cp_gtk_selection_instance, + setSystemContentsID, JNI_TRUE); + } JNIEXPORT void JNICALL @@ -347,65 +389,35 @@ Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent /* Set the targets plus callback functions and ask for the clipboard to be stored when the application exists if supported. */ - current_selection++; - if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n, - clipboard_get_func, - clipboard_clear_func, - GINT_TO_POINTER(current_selection))) + if ((*env)->IsSameObject(env, instance, cp_gtk_clipboard_instance)) { - owner = 1; - if (gtk_clipboard_instance == NULL) + if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n, + clipboard_get_func, + clipboard_clear_func, + NULL)) { - JNIEnv *env = cp_gtk_gdk_env (); - gtk_clipboard_instance = (*env)->NewGlobalRef(env, instance); - - provideContentID - = (*env)->GetMethodID (env, gtk_clipboard_class, - "provideContent", - "(Ljava/lang/String;)[B"); - if (provideContentID == NULL) - return; - - provideTextID - = (*env)->GetMethodID (env, gtk_clipboard_class, - "provideText", "()Ljava/lang/String;"); - if (provideTextID == NULL) - return; - - provideImageID - = (*env)->GetMethodID (env, gtk_clipboard_class, - "provideImage", - "()Lgnu/java/awt/peer/gtk/GtkImage;"); - if (provideImageID == NULL) - return; - - provideURIsID - = (*env)->GetMethodID (env, gtk_clipboard_class, - "provideURIs", - "()[Ljava/lang/String;"); - if (provideURIsID == NULL) - return; - } #if GTK_MINOR_VERSION > 4 - gtk_clipboard_set_can_store (cp_gtk_clipboard, NULL, 0); + gtk_clipboard_set_can_store (cp_gtk_clipboard, NULL, 0); #endif + } } else { - owner = 0; - (*env)->CallStaticVoidMethod (env, gtk_clipboard_class, - setSystemContentsID); + if (gtk_clipboard_set_with_data (cp_gtk_selection, targets, n, + clipboard_get_func, + clipboard_clear_func, + NULL)) + { +#if GTK_MINOR_VERSION > 4 + gtk_clipboard_set_can_store (cp_gtk_selection, NULL, 0); +#endif + } } for (i = 0; i < n; i++) g_free (targets[i].target); g_free (targets); } - else if (owner) - { - gtk_clipboard_clear (cp_gtk_clipboard); - owner = 0; - } gtk_target_list_unref (target_list); gdk_threads_leave (); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c index 6de7b61b8e9..b0d4ab9b019 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c @@ -1,5 +1,5 @@ /* gtkcomponentpeer.c -- Native implementation of GtkComponentPeer - Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2002, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -67,15 +67,19 @@ exception statement from your version. */ #define AWT_MOUSE_ENTERED 504 #define AWT_MOUSE_EXITED 505 #define AWT_MOUSE_DRAGGED 506 +#define AWT_MOUSE_WHEEL 507 + +#define AWT_WHEEL_UNIT_SCROLL 0 #define AWT_FOCUS_GAINED 1004 #define AWT_FOCUS_LOST 1005 static GtkWidget *find_fg_color_widget (GtkWidget *widget); static GtkWidget *find_bg_color_widget (GtkWidget *widget); +static GtkWidget *get_widget (GtkWidget *widget); static jmethodID postMouseEventID; -static jmethodID setCursorID; +static jmethodID postMouseWheelEventID; static jmethodID postExposeEventID; static jmethodID postFocusEventID; @@ -90,8 +94,10 @@ cp_gtk_component_init_jni (void) postMouseEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer, "postMouseEvent", "(IJIIIIZ)V"); - setCursorID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer, - "setCursor", "()V"); + postMouseWheelEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), + gtkcomponentpeer, + "postMouseWheelEvent", + "(IJIIIIZIII)V"); postExposeEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer, "postExposeEvent", "(IIII)V"); @@ -109,6 +115,9 @@ static gboolean component_button_release_cb (GtkWidget *widget, static gboolean component_motion_notify_cb (GtkWidget *widget, GdkEventMotion *event, jobject peer); +static gboolean component_scroll_cb (GtkWidget *widget, + GdkEventScroll *event, + jobject peer); static gboolean component_enter_notify_cb (GtkWidget *widget, GdkEventCrossing *event, jobject peer); @@ -179,19 +188,19 @@ state_to_awt_mods_with_button_states (guint state) JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor - (JNIEnv *env, jobject obj, jint type) + (JNIEnv *env, jobject obj, jint type, jobject image, jint x, jint y) { gdk_threads_enter (); Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked - (env, obj, type); + (env, obj, type, image, x, y); gdk_threads_leave (); } JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked - (JNIEnv *env, jobject obj, jint type) + (JNIEnv *env, jobject obj, jint type, jobject image, jint x, jint y) { void *ptr; GtkWidget *widget; @@ -245,11 +254,21 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked gdk_cursor_type = GDK_LEFT_PTR; } - widget = GTK_WIDGET(ptr); + widget = get_widget(GTK_WIDGET(ptr)); + + if (image == NULL) + gdk_cursor = gdk_cursor_new (gdk_cursor_type); + else + gdk_cursor + = gdk_cursor_new_from_pixbuf (gdk_drawable_get_display (widget->window), + cp_gtk_image_get_pixbuf (env, image), + x, y); - gdk_cursor = gdk_cursor_new (gdk_cursor_type); gdk_window_set_cursor (widget->window, gdk_cursor); gdk_cursor_unref (gdk_cursor); + + /* Make sure the cursor is replaced on screen. */ + gdk_flush(); } JNIEXPORT void JNICALL @@ -265,9 +284,9 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent ptr = NSA_GET_PTR (env, obj); parent_ptr = NSA_GET_PTR (env, parent); - + widget = GTK_WIDGET (ptr); - parent_widget = GTK_WIDGET (parent_ptr); + parent_widget = get_widget(GTK_WIDGET (parent_ptr)); if (widget->parent == NULL) { @@ -310,7 +329,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive ptr = NSA_GET_PTR (env, obj); - gtk_widget_set_sensitive (GTK_WIDGET (ptr), sensitive); + gtk_widget_set_sensitive (get_widget(GTK_WIDGET (ptr)), sensitive); gdk_threads_leave (); } @@ -325,7 +344,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus ptr = NSA_GET_PTR (env, obj); - gtk_widget_grab_focus (GTK_WIDGET (ptr)); + gtk_widget_grab_focus (get_widget(GTK_WIDGET (ptr))); gdk_threads_leave (); } @@ -361,11 +380,11 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent } if (GTK_IS_BUTTON (ptr)) - event->key.window = GTK_BUTTON (ptr)->event_window; - else if (GTK_IS_SCROLLED_WINDOW (ptr)) - event->key.window = GTK_WIDGET (GTK_SCROLLED_WINDOW (ptr)->container.child)->window; + event->key.window = GTK_BUTTON (get_widget(GTK_WIDGET (ptr)))->event_window; + else if (GTK_IS_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))) + event->key.window = GTK_WIDGET (GTK_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))->container.child)->window; else - event->key.window = GTK_WIDGET (ptr)->window; + event->key.window = get_widget(GTK_WIDGET (ptr))->window; event->key.send_event = 0; event->key.time = (guint32) when; @@ -441,10 +460,10 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent so we don't want to resend it. */ if (!GTK_IS_WINDOW (ptr)) { - if (GTK_IS_SCROLLED_WINDOW (ptr)) - gtk_widget_event (GTK_WIDGET (GTK_SCROLLED_WINDOW (ptr)->container.child), event); + if (GTK_IS_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))) + gtk_widget_event (GTK_WIDGET (GTK_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))->container.child), event); else - gtk_widget_event (GTK_WIDGET (ptr), event); + gtk_widget_event (get_widget(GTK_WIDGET (ptr)), event); } gdk_threads_leave (); @@ -465,7 +484,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen ptr = NSA_GET_PTR (env, obj); point = (*env)->GetIntArrayElements (env, jpoint, 0); - gdk_window_get_root_origin (GTK_WIDGET (ptr)->window, point, point+1); + gdk_window_get_root_origin (get_widget(GTK_WIDGET (ptr))->window, point, point+1); (*env)->ReleaseIntArrayElements(env, jpoint, point, 0); @@ -488,7 +507,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen ptr = NSA_GET_PTR (env, obj); point = (*env)->GetIntArrayElements (env, jpoint, 0); - widget = GTK_WIDGET(ptr); + widget = get_widget(GTK_WIDGET (ptr)); while(gtk_widget_get_parent(widget) != NULL) widget = gtk_widget_get_parent(widget); gdk_window_get_position (GTK_WIDGET(widget)->window, point, point+1); @@ -519,7 +538,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions dims = (*env)->GetIntArrayElements (env, jdims, 0); dims[0] = dims[1] = 0; - gtk_widget_size_request (GTK_WIDGET (ptr), &requisition); + gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), &requisition); dims[0] = requisition.width; dims[1] = requisition.height; @@ -551,10 +570,10 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions /* Widgets that extend GtkWindow such as GtkFileChooserDialog may have a default size. These values seem more useful then the natural requisition values, particularly for GtkFileChooserDialog. */ - if (GTK_IS_WINDOW (ptr)) + if (GTK_IS_WINDOW (get_widget(GTK_WIDGET (ptr)))) { gint width, height; - gtk_window_get_default_size (GTK_WINDOW (ptr), &width, &height); + gtk_window_get_default_size (GTK_WINDOW (get_widget(GTK_WIDGET (ptr))), &width, &height); dims[0] = width; dims[1] = height; @@ -562,14 +581,14 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions else { /* Save the widget's current size request. */ - gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_req); + gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), ¤t_req); /* Get the widget's "natural" size request. */ - gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1); - gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req); + gtk_widget_set_size_request (get_widget(GTK_WIDGET (ptr)), -1, -1); + gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), &natural_req); /* Reset the widget's size request. */ - gtk_widget_set_size_request (GTK_WIDGET (ptr), + gtk_widget_set_size_request (get_widget(GTK_WIDGET (ptr)), current_req.width, current_req.height); dims[0] = natural_req.width; @@ -656,7 +675,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground ptr = NSA_GET_PTR (env, obj); - fg = GTK_WIDGET (ptr)->style->fg[GTK_STATE_NORMAL]; + fg = get_widget(GTK_WIDGET (ptr))->style->fg[GTK_STATE_NORMAL]; array = (*env)->NewIntArray (env, 3); @@ -766,7 +785,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled ptr = NSA_GET_PTR (env, obj); - ret_val = GTK_WIDGET_IS_SENSITIVE (GTK_WIDGET (ptr)); + ret_val = GTK_WIDGET_IS_SENSITIVE (get_widget(GTK_WIDGET (ptr))); gdk_threads_leave (); @@ -790,7 +809,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isRealized return FALSE; } - ret_val = GTK_WIDGET_REALIZED (GTK_WIDGET (ptr)); + ret_val = GTK_WIDGET_REALIZED (get_widget(GTK_WIDGET (ptr))); gdk_threads_leave (); @@ -841,7 +860,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask ptr = NSA_GET_PTR (env, obj); - gtk_widget_add_events (GTK_WIDGET (ptr), + gtk_widget_add_events (get_widget(GTK_WIDGET (ptr)), GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK @@ -857,6 +876,19 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask gdk_threads_leave (); } +static GtkWidget * +get_widget (GtkWidget *widget) +{ + GtkWidget *w; + + if (GTK_IS_EVENT_BOX (widget)) + w = gtk_bin_get_child (GTK_BIN(widget)); + else + w = widget; + + return w; +} + /* FIXME: these functions should be implemented by overridding the appropriate GtkComponentPeer methods. */ static GtkWidget * @@ -918,6 +950,9 @@ cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref) g_signal_connect (G_OBJECT (ptr), "motion-notify-event", G_CALLBACK (component_motion_notify_cb), *gref); + + g_signal_connect (G_OBJECT (ptr), "scroll-event", + G_CALLBACK (component_scroll_cb), *gref); } void @@ -930,11 +965,11 @@ cp_gtk_component_connect_signals (GObject *ptr, jobject *gref) /* These variables are used to keep track of click counts. The AWT allows more than a triple click to occur but GTK doesn't report - more-than-triple clicks. */ + more-than-triple clicks. Also used for keeping track of scroll events.*/ static jint click_count = 1; static guint32 button_click_time = 0; static GdkWindow *button_window = NULL; -static guint button_number = -1; +static guint button_number_direction = -1; static int hasBeenDragged; static gboolean @@ -949,14 +984,14 @@ component_button_press_cb (GtkWidget *widget __attribute__((unused)), if ((event->time < (button_click_time + MULTI_CLICK_TIME)) && (event->window == button_window) - && (event->button == button_number)) + && (event->button == button_number_direction)) click_count++; else click_count = 1; button_click_time = event->time; button_window = event->window; - button_number = event->button; + button_number_direction = event->button; (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postMouseEventID, @@ -1055,6 +1090,45 @@ component_motion_notify_cb (GtkWidget *widget __attribute__((unused)), } static gboolean +component_scroll_cb (GtkWidget *widget __attribute__((unused)), + GdkEventScroll *event, + jobject peer) +{ + int rotation; + /** Record click count for specific direction. */ + if ((event->time < (button_click_time + MULTI_CLICK_TIME)) + && (event->window == button_window) + && (event->direction == button_number_direction)) + click_count++; + else + click_count = 1; + + button_click_time = event->time; + button_window = event->window; + button_number_direction = event->direction; + + if (event->direction == GDK_SCROLL_UP + || event->direction == GDK_SCROLL_LEFT) + rotation = -1; + else + rotation = 1; + + (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, + postMouseWheelEventID, + AWT_MOUSE_WHEEL, + (jlong)event->time, + cp_gtk_state_to_awt_mods (event->state), + (jint)event->x, + (jint)event->y, + click_count, + JNI_FALSE, + AWT_WHEEL_UNIT_SCROLL, + 1 /* amount */, + rotation); + return FALSE; +} + +static gboolean component_enter_notify_cb (GtkWidget *widget __attribute__((unused)), GdkEventCrossing *event, jobject peer) diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c index ae065763688..92bc09edde7 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c @@ -1,5 +1,5 @@ /* gtkimage.c - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -65,23 +65,17 @@ Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf int width, height; GdkPixbuf *pixbuf; - gdk_threads_enter (); - /* Don't use the JCL convert function because it throws an exception on failure */ filename = (*env)->GetStringUTFChars (env, name, 0); if (filename == NULL) - { - gdk_threads_leave (); - return JNI_FALSE; - } + return JNI_FALSE; pixbuf = gdk_pixbuf_new_from_file (filename, NULL); if (pixbuf == NULL) { (*env)->ReleaseStringUTFChars (env, name, filename); - gdk_threads_leave (); return JNI_FALSE; } @@ -92,8 +86,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf setWidthHeight(env, obj, width, height); (*env)->ReleaseStringUTFChars (env, name, filename); - gdk_threads_leave (); - return JNI_TRUE; } @@ -111,8 +103,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData int width; int height; - gdk_threads_enter (); - src = (*env)->GetByteArrayElements (env, data, NULL); len = (*env)->GetArrayLength (env, data); @@ -128,9 +118,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData if (pixbuf == NULL) { createRawData (env, obj, NULL); - - gdk_threads_leave (); - return JNI_FALSE; } @@ -140,8 +127,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData createRawData (env, obj, pixbuf); setWidthHeight(env, obj, width, height); - gdk_threads_leave (); - return JNI_TRUE; } @@ -151,10 +136,8 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf { int width, heigth; GdkPixbuf *pixbuf = (GdkPixbuf *) getData (env, obj); - gdk_threads_enter (); width = gdk_pixbuf_get_width (pixbuf); heigth = gdk_pixbuf_get_height (pixbuf); - gdk_threads_leave (); setWidthHeight(env, obj, width, heigth); } @@ -171,8 +154,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_getPixels(JNIEnv *env, jobject obj) jint *result_array_iter, *dst; int i,j; - gdk_threads_enter (); - pixbuf = cp_gtk_image_get_pixbuf (env, obj); width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); @@ -214,8 +195,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_getPixels(JNIEnv *env, jobject obj) (*env)->ReleaseIntArrayElements (env, result_array, result_array_iter, 0); - gdk_threads_leave (); - return result_array; } @@ -233,8 +212,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_setPixels(JNIEnv *env, jobject obj, jint *src_array_iter, *src; int i; - gdk_threads_enter (); - width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); rowstride = gdk_pixbuf_get_rowstride (pixbuf); @@ -251,8 +228,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_setPixels(JNIEnv *env, jobject obj, } (*env)->ReleaseIntArrayElements (env, pixels, src_array_iter, 0); - - gdk_threads_leave (); } /** @@ -265,8 +240,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createPixmap(JNIEnv *env, jobject obj) jclass cls; jfieldID field; - gdk_threads_enter (); - cls = (*env)->GetObjectClass (env, obj); field = (*env)->GetFieldID (env, cls, "width", "I"); g_assert (field != 0); @@ -285,8 +258,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createPixmap(JNIEnv *env, jobject obj) else createRawData (env, obj, gdk_pixmap_new (NULL, width, height, gdk_rgb_get_visual ()->depth)); - - gdk_threads_leave (); } /** @@ -295,13 +266,10 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createPixmap(JNIEnv *env, jobject obj) JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_freePixmap(JNIEnv *env, jobject obj) { - gdk_threads_enter (); if (offScreen (env, obj) == JNI_FALSE) gdk_pixbuf_unref ((GdkPixbuf *)getData (env, obj)); else g_object_unref ((GdkPixmap *)getData (env, obj)); - - gdk_threads_leave (); } /** @@ -321,8 +289,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixmap(JNIEnv *env, GdkPixbuf *pixbuf; - gdk_threads_enter (); - cls = (*env)->GetObjectClass (env, destination); field = (*env)->GetFieldID (env, cls, "width", "I"); g_assert (field != 0); @@ -342,8 +308,6 @@ Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixmap(JNIEnv *env, gdk_pixbuf_unref (pixbuf); createRawData (env, destination, (void *)dst); - - gdk_threads_leave (); } /** diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c index 6da42cec6c3..54ef31a4fed 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c @@ -39,6 +39,7 @@ #include "gnu_java_awt_peer_gtk_GtkListPeer.h" static jmethodID postListItemEventID; +static GtkWidget *list_get_widget (GtkWidget *widget); void cp_gtk_list_init_jni (void) @@ -72,6 +73,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create { GtkWidget *sw; GtkWidget *list; + GtkWidget *eventbox; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkListStore *list_store; @@ -102,11 +104,13 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create COLUMN_STRING, NULL); + eventbox = gtk_event_box_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - + gtk_container_add (GTK_CONTAINER (eventbox), sw); + gtk_tree_view_append_column (GTK_TREE_VIEW (list), column); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list), FALSE); @@ -123,7 +127,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create gtk_widget_show (list); gtk_widget_show (sw); - NSA_SET_PTR (env, obj, sw); + NSA_SET_PTR (env, obj, eventbox); gdk_threads_leave (); } @@ -142,7 +146,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals ptr = NSA_GET_PTR (env, obj); gref = NSA_GET_GLOBAL_REF (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); gtk_tree_selection_set_select_function (selection, item_highlighted_cb, @@ -166,7 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetModifyFont ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); font_name = (*env)->GetStringUTFChars (env, name, NULL); @@ -200,7 +204,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); gtk_widget_grab_focus (list); gdk_threads_leave (); @@ -223,7 +227,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_append count = (*env)->GetArrayLength (env, items); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list)); for (i = 0; i < count; i++) @@ -260,7 +264,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_add ptr = NSA_GET_PTR (env, obj); str = (*env)->GetStringUTFChars (env, text, NULL); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list)); if (index == -1) @@ -292,7 +296,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list)); /* Special case: remove all rows. */ @@ -325,7 +329,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_select ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); path = gtk_tree_path_new_from_indices (index, -1); gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, NULL, FALSE); @@ -345,7 +349,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); path = gtk_tree_path_new_from_indices (index, -1); gtk_tree_selection_unselect_path (selection, path); @@ -361,6 +365,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize jint *dims; GtkRequisition current_req; GtkRequisition natural_req; + GtkWidget* bin; gdk_threads_enter (); @@ -368,16 +373,17 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize dims[0] = dims[1] = 0; ptr = NSA_GET_PTR (env, obj); - + bin = list_get_widget (GTK_WIDGET (ptr)); + /* Save the widget's current size request. */ - gtk_widget_size_request (GTK_WIDGET (ptr), ¤t_req); + gtk_widget_size_request (bin, ¤t_req); /* Get the widget's "natural" size request. */ gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1); - gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req); + gtk_widget_size_request (bin, &natural_req); /* Reset the widget's size request. */ - gtk_widget_set_size_request (GTK_WIDGET (ptr), + gtk_widget_set_size_request (bin, current_req.width, current_req.height); dims[0] = natural_req.width; @@ -417,7 +423,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); count = gtk_tree_selection_count_selected_rows (selection); if (count > 0) @@ -463,7 +469,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); path = gtk_tree_path_new_from_indices (index, -1); gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (list), path, NULL, FALSE, 0.0, 0.0); @@ -483,7 +489,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode ptr = NSA_GET_PTR (env, obj); - list = gtk_bin_get_child (GTK_BIN (ptr)); + list = list_get_widget (GTK_WIDGET (ptr)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list)); gtk_tree_selection_set_mode (selection, mode ? GTK_SELECTION_MULTIPLE @@ -526,3 +532,18 @@ item_highlighted_cb (GtkTreeSelection *selection __attribute__((unused)), return TRUE; } + +static GtkWidget * +list_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + g_assert (GTK_IS_EVENT_BOX (widget)); + + wid = gtk_bin_get_child (GTK_BIN (widget)); + g_assert (GTK_IS_SCROLLED_WINDOW (wid)); + + wid = gtk_bin_get_child (GTK_BIN (wid)); + + return wid; +} + diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c index 1445cec5577..a4690deeda3 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c @@ -43,22 +43,27 @@ exception statement from your version. */ #define AWT_SCROLLPANE_SCROLLBARS_ALWAYS 1 #define AWT_SCROLLPANE_SCROLLBARS_NEVER 2 +static GtkWidget *scrollpane_get_widget (GtkWidget *widget); + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create (JNIEnv *env, jobject obj, int width, int height) { GtkWidget *sw; - + GtkWidget *eventbox; + gdk_threads_enter (); /* Create global reference and save it for future use */ NSA_SET_GLOBAL_REF (env, obj); sw = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_set_size_request (sw, width, height); + eventbox = gtk_event_box_new (); + gtk_container_add (GTK_CONTAINER (eventbox), sw); + gtk_widget_show (sw); - NSA_SET_PTR (env, obj, sw); + NSA_SET_PTR (env, obj, eventbox); gdk_threads_leave (); } @@ -75,7 +80,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW (ptr); + sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr))); hadj = gtk_scrolled_window_get_hadjustment (sw); vadj = gtk_scrolled_window_get_vadjustment (sw); @@ -98,7 +103,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncremen ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW(ptr); + sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr))); hadj = gtk_scrolled_window_get_hadjustment (sw); hadj->step_increment = u; @@ -118,7 +123,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncremen ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW(ptr); + sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr))); vadj = gtk_scrolled_window_get_hadjustment (sw); vadj->step_increment = u; @@ -140,7 +145,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW (ptr); + sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr))); gtk_widget_size_request (sw->hscrollbar, &requisition); gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); @@ -165,7 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW (ptr); + sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr))); gtk_widget_size_request (sw->vscrollbar, &requisition); gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL); @@ -181,7 +186,8 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy (JNIEnv *env, jobject obj, jint policy) { void *ptr; - + GtkWidget *sw; + gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); @@ -199,7 +205,18 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy break; } - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ptr), policy, policy); + sw = scrollpane_get_widget (GTK_WIDGET (ptr)); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), policy, policy); gdk_threads_leave (); } + +static GtkWidget * +scrollpane_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + g_assert (GTK_IS_EVENT_BOX (widget)); + wid = gtk_bin_get_child (GTK_BIN(widget)); + + return wid; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c index bec1e63c429..a90501968b6 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c @@ -48,6 +48,7 @@ exception statement from your version. */ #define AWT_ADJUSTMENT_TRACK 5 static jmethodID postAdjustmentEventID; +static GtkWidget *scrollbar_get_widget (GtkWidget *widget); void cp_gtk_scrollbar_init_jni (void) @@ -79,6 +80,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create jint min, jint max, jint step_incr, jint page_incr, jint visible_amount) { GtkWidget *scrollbar; + GtkWidget *eventbox; GtkObject *adj; /* Create global reference and save it for future use */ @@ -104,7 +106,10 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create scrollbar = orientation ? gtk_vscrollbar_new (GTK_ADJUSTMENT (adj)) : gtk_hscrollbar_new (GTK_ADJUSTMENT (adj)); - + eventbox = gtk_event_box_new (); + gtk_container_add (GTK_CONTAINER (eventbox), scrollbar); + gtk_widget_show (scrollbar); + GTK_RANGE (scrollbar)->round_digits = 0; /* These calls seem redundant but they are not. They clamp values so that the slider's entirety is always between the two @@ -114,7 +119,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create gdk_threads_leave (); - NSA_SET_PTR (env, obj, scrollbar); + NSA_SET_PTR (env, obj, eventbox); } JNIEXPORT void JNICALL @@ -122,6 +127,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals (JNIEnv *env, jobject obj) { void *ptr = NSA_GET_PTR (env, obj); + GtkWidget *wid = scrollbar_get_widget (GTK_WIDGET (ptr)); jobject *gref = NSA_GET_GLOBAL_REF (env, obj); g_assert (gref); @@ -129,15 +135,15 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals /* Scrollbar signals */ #if GTK_MINOR_VERSION > 4 - g_signal_connect (G_OBJECT (ptr), "change-value", + g_signal_connect (G_OBJECT (wid), "change-value", G_CALLBACK (slider_moved_cb), *gref); #else - g_signal_connect (G_OBJECT (ptr), "value-changed", + g_signal_connect (G_OBJECT (wid), "value-changed", G_CALLBACK (post_change_event_cb), *gref); #endif /* Component signals */ - cp_gtk_component_connect_signals (G_OBJECT (ptr), gref); + cp_gtk_component_connect_signals (G_OBJECT (wid), gref); gdk_threads_leave (); } @@ -148,12 +154,14 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement { void *ptr; GtkAdjustment *adj; + GtkWidget *wid; ptr = NSA_GET_PTR (env, obj); - + wid = scrollbar_get_widget (GTK_WIDGET (ptr)); + gdk_threads_enter (); - adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); + adj = gtk_range_get_adjustment (GTK_RANGE (wid)); adj->step_increment = (gdouble) amount; gtk_adjustment_changed (adj); @@ -166,12 +174,14 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement { void *ptr; GtkAdjustment *adj; - + GtkWidget *wid; + ptr = NSA_GET_PTR (env, obj); - + wid = scrollbar_get_widget (GTK_WIDGET (ptr)); + gdk_threads_enter (); - adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); + adj = gtk_range_get_adjustment (GTK_RANGE (wid)); adj->page_increment = (gdouble) amount; gtk_adjustment_changed (adj); @@ -184,9 +194,11 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValues { void *ptr; GtkAdjustment *adj; - + GtkWidget *wid; + ptr = NSA_GET_PTR (env, obj); - + wid = scrollbar_get_widget (GTK_WIDGET (ptr)); + gdk_threads_enter (); /* A little hack because gtk_range_set_range() doesn't allow min == max. */ @@ -197,11 +209,11 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValues max++; } - adj = gtk_range_get_adjustment (GTK_RANGE (ptr)); + adj = gtk_range_get_adjustment (GTK_RANGE (wid)); adj->page_size = (gdouble) visible; - gtk_range_set_range (GTK_RANGE (ptr), (gdouble) min, (gdouble) max); - gtk_range_set_value (GTK_RANGE (ptr), (gdouble) value); + gtk_range_set_range (GTK_RANGE (wid), (gdouble) min, (gdouble) max); + gtk_range_set_value (GTK_RANGE (wid), (gdouble) value); gdk_threads_leave (); } @@ -214,7 +226,7 @@ slider_moved_cb (GtkRange *range, jobject obj) { GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (range)); - + value = CLAMP (value, adj->lower, (adj->upper - adj->page_size)); @@ -272,3 +284,13 @@ post_change_event_cb (GtkRange *range, jobject peer) AWT_ADJUSTMENT_TRACK, (jint) adj->value); } #endif + +static GtkWidget * +scrollbar_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + g_assert (GTK_IS_EVENT_BOX (widget)); + wid = gtk_bin_get_child (GTK_BIN(widget)); + + return wid; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c index 3244d236422..be03c45254e 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c @@ -1,5 +1,5 @@ /* gtkselection.c -- Native C functions for GtkSelection class using gtk+. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -149,9 +149,10 @@ clipboard_targets_received (GtkClipboard *clipboard JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkSelection_requestMimeTypes -(JNIEnv *env, jobject selection) +(JNIEnv *env, jobject selection, jboolean clipboard) { jobject selection_obj; + GtkClipboard *gtk_clipboard; selection_obj = (*env)->NewGlobalRef(env, selection); if (selection_obj == NULL) return; @@ -167,13 +168,18 @@ Java_gnu_java_awt_peer_gtk_GtkSelection_requestMimeTypes return; } + if (clipboard) + gtk_clipboard = cp_gtk_clipboard; + else + gtk_clipboard = cp_gtk_selection; + /* We would have liked to call gtk_clipboard_request_targets () since that is more general. But the result of that, an array of GdkAtoms, cannot be used with the gtk_selection_data_targets_include_<x> functions (despite what the name suggests). */ gdk_threads_enter (); - gtk_clipboard_request_contents (cp_gtk_clipboard, + gtk_clipboard_request_contents (gtk_clipboard, gdk_atom_intern ("TARGETS", FALSE), clipboard_targets_received, (gpointer) selection_obj); @@ -210,9 +216,10 @@ clipboard_text_received (GtkClipboard *clipboard JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkSelection_requestText -(JNIEnv *env, jobject selection) +(JNIEnv *env, jobject selection, jboolean clipboard) { jobject selection_obj; + GtkClipboard *gtk_clipboard; selection_obj = (*env)->NewGlobalRef(env, selection); if (selection_obj == NULL) return; @@ -228,8 +235,13 @@ Java_gnu_java_awt_peer_gtk_GtkSelection_requestText return; } + if (clipboard) + gtk_clipboard = cp_gtk_clipboard; + else + gtk_clipboard = cp_gtk_selection; + gdk_threads_enter (); - gtk_clipboard_request_text (cp_gtk_clipboard, + gtk_clipboard_request_text (gtk_clipboard, clipboard_text_received, (gpointer) selection_obj); gdk_threads_leave (); @@ -260,9 +272,12 @@ clipboard_image_received (GtkClipboard *clipboard } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage (JNIEnv *env, jobject obj) +Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage (JNIEnv *env, + jobject obj, + jboolean clipboard) { jobject selection_obj; + GtkClipboard *gtk_clipboard; selection_obj = (*env)->NewGlobalRef(env, obj); if (selection_obj == NULL) return; @@ -278,14 +293,19 @@ Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage (JNIEnv *env, jobject obj) return; } + if (clipboard) + gtk_clipboard = cp_gtk_clipboard; + else + gtk_clipboard = cp_gtk_selection; + #if GTK_MINOR_VERSION > 4 gdk_threads_enter (); - gtk_clipboard_request_image (cp_gtk_clipboard, + gtk_clipboard_request_image (gtk_clipboard, clipboard_image_received, (gpointer) selection_obj); gdk_threads_leave (); #else - clipboard_image_received (cp_gtk_clipboard, NULL, (gpointer) selection_obj); + clipboard_image_received (gtk_clipboard, NULL, (gpointer) selection_obj); #endif } @@ -342,12 +362,15 @@ clipboard_uris_received (GtkClipboard *clipboard } JNIEXPORT void JNICALL -Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs (JNIEnv *env, jobject obj) +Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs (JNIEnv *env, + jobject obj, + jboolean clipboard) { #if GTK_MINOR_VERSION > 4 GdkAtom uri_atom; #endif jobject selection_obj; + GtkClipboard *gtk_clipboard; selection_obj = (*env)->NewGlobalRef(env, obj); if (selection_obj == NULL) return; @@ -363,17 +386,22 @@ Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs (JNIEnv *env, jobject obj) return; } + if (clipboard) + gtk_clipboard = cp_gtk_clipboard; + else + gtk_clipboard = cp_gtk_selection; + #if GTK_MINOR_VERSION > 4 /* There is no real request_uris so we have to make one ourselves. */ gdk_threads_enter (); uri_atom = gdk_atom_intern ("text/uri-list", FALSE); - gtk_clipboard_request_contents (cp_gtk_clipboard, + gtk_clipboard_request_contents (gtk_clipboard, uri_atom, clipboard_uris_received, (gpointer) selection_obj); gdk_threads_leave (); #else - clipboard_uris_received (cp_gtk_clipboard, NULL, (gpointer) selection_obj); + clipboard_uris_received (gtk_clipboard, NULL, (gpointer) selection_obj); #endif } @@ -406,12 +434,14 @@ clipboard_bytes_received (GtkClipboard *clipboard JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkSelection_requestBytes (JNIEnv *env, jobject obj, + jboolean clipboard, jstring target_string) { int len; const gchar *target_text; GdkAtom target_atom; jobject selection_obj; + GtkClipboard *gtk_clipboard; selection_obj = (*env)->NewGlobalRef(env, obj); if (selection_obj == NULL) return; @@ -434,9 +464,14 @@ Java_gnu_java_awt_peer_gtk_GtkSelection_requestBytes (JNIEnv *env, if (target_text == NULL) return; + if (clipboard) + gtk_clipboard = cp_gtk_clipboard; + else + gtk_clipboard = cp_gtk_selection; + gdk_threads_enter (); target_atom = gdk_atom_intern (target_text, FALSE); - gtk_clipboard_request_contents (cp_gtk_clipboard, + gtk_clipboard_request_contents (gtk_clipboard, target_atom, clipboard_bytes_received, (gpointer) selection_obj); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c index 9af88a026ee..bd6e14d7650 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c @@ -43,12 +43,16 @@ exception statement from your version. */ #define AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY 1 #define AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY 2 +static GtkWidget *textarea_get_widget (GtkWidget *widget); + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create (JNIEnv *env, jobject obj, jint textview_width, jint textview_height, jint scroll) { - GtkWidget *text, *sw; + GtkWidget *text; + GtkWidget *sw; + GtkWidget *eventbox; gdk_threads_enter (); @@ -61,9 +65,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create gtk_widget_show (text); + eventbox = gtk_event_box_new (); sw = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (sw), text); - + gtk_container_add (GTK_CONTAINER (eventbox), sw); + gtk_widget_show (sw); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), /* horizontal scrollbar */ (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH @@ -79,7 +86,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create || scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY) ? GTK_WRAP_NONE : GTK_WRAP_WORD); - NSA_SET_PTR (env, obj, sw); + NSA_SET_PTR (env, obj, eventbox); gdk_threads_leave (); } @@ -99,7 +106,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_connectSignals gref = NSA_GET_GLOBAL_REF (env, obj); /* Unwrap the text view from the scrolled window */ - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); @@ -127,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert ptr = NSA_GET_PTR (env, obj); str = (*env)->GetStringUTFChars (env, contents, NULL); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_get_iter_at_offset (buf, &iter, position); @@ -155,8 +162,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange ptr = NSA_GET_PTR (env, obj); str = (*env)->GetStringUTFChars (env, contents, NULL); - text = gtk_bin_get_child (GTK_BIN (ptr)); - + text = textarea_get_widget (GTK_WIDGET (ptr)); + buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_get_iter_at_offset (buf, &startIter, mystart); @@ -183,8 +190,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetModifyFont gdk_threads_enter(); ptr = NSA_GET_PTR (env, obj); - - text = gtk_bin_get_child (GTK_BIN (ptr)); + + text = textarea_get_widget (GTK_WIDGET (ptr)); font_name = (*env)->GetStringUTFChars (env, name, NULL); @@ -218,7 +225,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetRequestFocus ptr = NSA_GET_PTR (env, obj); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); gtk_widget_grab_focus (text); @@ -230,6 +237,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight (JNIEnv *env, jobject obj) { void *ptr; + GtkWidget *bin; GtkScrolledWindow *sw; GtkRequisition requisition; jint height = 0; @@ -239,7 +247,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight ptr = NSA_GET_PTR (env, obj); - sw = GTK_SCROLLED_WINDOW (ptr); + bin = gtk_bin_get_child (GTK_BIN (ptr)); + sw = GTK_SCROLLED_WINDOW (bin); if (sw) { @@ -258,6 +267,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth (JNIEnv *env, jobject obj) { void *ptr; + GtkWidget *bin; GtkScrolledWindow *sw; GtkRequisition requisition; jint width = 0; @@ -266,8 +276,9 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - sw = GTK_SCROLLED_WINDOW (ptr); + + bin = gtk_bin_get_child (GTK_BIN (ptr)); + sw = GTK_SCROLLED_WINDOW (bin); if (sw) { @@ -295,8 +306,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getCaretPosition gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - text = gtk_bin_get_child (GTK_BIN (ptr)); + + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); mark = gtk_text_buffer_get_insert (buf); @@ -323,8 +334,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setCaretPosition gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - text = gtk_bin_get_child (GTK_BIN (ptr)); + + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); @@ -366,7 +377,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionStart ptr = NSA_GET_PTR (env, obj); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); @@ -403,7 +414,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionEnd ptr = NSA_GET_PTR (env, obj); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); @@ -436,7 +447,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_select ptr = NSA_GET_PTR (env, obj); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_get_iter_at_offset (buf, &iter, start); @@ -460,7 +471,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setEditable ptr = NSA_GET_PTR (env, obj); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); gtk_text_view_set_editable (GTK_TEXT_VIEW (text), state); @@ -481,8 +492,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getText gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); - - text = gtk_bin_get_child (GTK_BIN (ptr)); + + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_get_start_iter (buf, &start); @@ -505,13 +516,13 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setText const char *str; GtkWidget *text = NULL; GtkTextBuffer *buf; - + gdk_threads_enter (); ptr = NSA_GET_PTR (env, obj); str = (*env)->GetStringUTFChars (env, contents, NULL); - text = gtk_bin_get_child (GTK_BIN (ptr)); + text = textarea_get_widget (GTK_WIDGET (ptr)); buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text)); gtk_text_buffer_set_text (buf, str, strlen (str)); @@ -520,3 +531,17 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setText gdk_threads_leave (); } + +static GtkWidget * +textarea_get_widget (GtkWidget *widget) +{ + GtkWidget *wid; + g_assert (GTK_IS_EVENT_BOX (widget)); + + wid = gtk_bin_get_child (GTK_BIN (widget)); + g_assert (GTK_IS_SCROLLED_WINDOW (wid)); + + wid = gtk_bin_get_child (GTK_BIN (wid)); + + return wid; +} diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c index a3cea8c4ab9..1c858faf540 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c @@ -1424,6 +1424,8 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height) { void *ptr; + gint current_width; + gint current_height; ptr = NSA_GET_PTR (env, obj); @@ -1447,12 +1449,19 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked if (GTK_WIDGET (ptr)->window != NULL) gdk_window_move (GTK_WIDGET (ptr)->window, x, y); - /* Need to change the widget's request size. */ - gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height); - /* Also need to call gtk_window_resize. If the resize is requested - by the program and the window's "resizable" property is true then - the size request will not be honoured. */ - gtk_window_resize (GTK_WINDOW (ptr), width, height); + /* Only request resizing if the actual width or height change, otherwise + * we get unnecessary flickers because resizing causes GTK to clear the + * window content, even if the actual size doesn't change. */ + gtk_window_get_size(GTK_WINDOW(ptr), ¤t_width, ¤t_height); + if (current_width != width || current_height != height) + { + /* Need to change the widget's request size. */ + gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height); + /* Also need to call gtk_window_resize. If the resize is requested + by the program and the window's "resizable" property is true then + the size request will not be honoured. */ + gtk_window_resize (GTK_WINDOW (ptr), width, height); + } } static void diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.h b/libjava/classpath/native/jni/gtk-peer/gtkpeer.h index f332b62a156..9a1590b81d3 100644 --- a/libjava/classpath/native/jni/gtk-peer/gtkpeer.h +++ b/libjava/classpath/native/jni/gtk-peer/gtkpeer.h @@ -1,5 +1,5 @@ /* gtkpeer.h -- Some global variables and #defines - Copyright (C) 1998, 1999, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -167,8 +167,12 @@ JNIEnv *cp_gtk_gdk_env(void); extern double cp_gtk_dpi_conversion_factor; extern GtkWindowGroup *cp_gtk_global_window_group; -/* Shared global clipboard for GtkClipboard and GtkSelection. */ +/* Shared global clipboard and selection for GtkClipboard and GtkSelection. */ extern GtkClipboard *cp_gtk_clipboard; +extern GtkClipboard *cp_gtk_selection; + +extern jobject cp_gtk_clipboard_instance; +extern jobject cp_gtk_selection_instance; /* Standard target (strings) for GtkClipboard and GtkSelection. */ extern jstring cp_gtk_stringTarget; diff --git a/libjava/classpath/native/jni/java-io/Makefile.am b/libjava/classpath/native/jni/java-io/Makefile.am index 35afaae50e8..ac7cf287247 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.am +++ b/libjava/classpath/native/jni/java-io/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libjavaio.la +nativeexeclib_LTLIBRARIES = libjavaio.la libjavaio_la_SOURCES = java_io_VMFile.c \ java_io_VMObjectInputStream.c \ diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index 419eefdbdf5..48f9cef4858 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavaio_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo am_libjavaio_la_OBJECTS = java_io_VMFile.lo \ @@ -99,6 +99,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -138,6 +139,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -158,6 +161,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -205,6 +209,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -223,8 +228,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -236,8 +244,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -254,7 +260,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -262,18 +271,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -283,7 +296,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libjavaio.la +nativeexeclib_LTLIBRARIES = libjavaio.la libjavaio_la_SOURCES = java_io_VMFile.c \ java_io_VMObjectInputStream.c \ java_io_VMObjectStreamClass.c @@ -325,35 +338,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjavaio.la: $(libjavaio_la_OBJECTS) $(libjavaio_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavaio_la_LDFLAGS) $(libjavaio_la_OBJECTS) $(libjavaio_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavaio_la_LDFLAGS) $(libjavaio_la_OBJECTS) $(libjavaio_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -475,7 +488,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -504,7 +517,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -523,9 +536,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -551,20 +564,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/java-lang/Makefile.am b/libjava/classpath/native/jni/java-lang/Makefile.am index db8a3a6a405..06deb62b810 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.am +++ b/libjava/classpath/native/jni/java-lang/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libjavalang.la libjavalangreflect.la +nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalang_la_SOURCES = java_lang_VMSystem.c \ java_lang_VMFloat.c \ @@ -9,7 +9,7 @@ libjavalang_la_SOURCES = java_lang_VMSystem.c \ libjavalang_la_LIBADD = $(wildcard $(top_builddir)/native/fdlibm/*.lo) \ $(top_builddir)/native/jni/classpath/jcl.lo -libjavalangreflect_la_SOURCES = java_lang_reflect_Array.c +libjavalangreflect_la_SOURCES = java_lang_reflect_VMArray.c AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ -I$(top_srcdir)/native/fdlibm diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in index bc265619363..af83f9a14ee 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.in +++ b/libjava/classpath/native/jni/java-lang/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavalang_la_DEPENDENCIES = $(wildcard \ $(top_builddir)/native/fdlibm/*.lo) \ $(top_builddir)/native/jni/classpath/jcl.lo @@ -71,7 +71,7 @@ am_libjavalang_la_OBJECTS = java_lang_VMSystem.lo java_lang_VMFloat.lo \ java_lang_VMProcess.lo libjavalang_la_OBJECTS = $(am_libjavalang_la_OBJECTS) libjavalangreflect_la_LIBADD = -am_libjavalangreflect_la_OBJECTS = java_lang_reflect_Array.lo +am_libjavalangreflect_la_OBJECTS = java_lang_reflect_VMArray.lo libjavalangreflect_la_OBJECTS = $(am_libjavalangreflect_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -105,6 +105,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -144,6 +145,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -164,6 +167,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -211,6 +215,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -229,8 +234,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -242,8 +250,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -260,7 +266,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -268,18 +277,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -289,7 +302,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libjavalang.la libjavalangreflect.la +nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalang_la_SOURCES = java_lang_VMSystem.c \ java_lang_VMFloat.c \ java_lang_VMDouble.c \ @@ -299,7 +312,7 @@ libjavalang_la_SOURCES = java_lang_VMSystem.c \ libjavalang_la_LIBADD = $(wildcard $(top_builddir)/native/fdlibm/*.lo) \ $(top_builddir)/native/jni/classpath/jcl.lo -libjavalangreflect_la_SOURCES = java_lang_reflect_Array.c +libjavalangreflect_la_SOURCES = java_lang_reflect_VMArray.c AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ -I$(top_srcdir)/native/fdlibm AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ @@ -336,37 +349,37 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjavalang.la: $(libjavalang_la_OBJECTS) $(libjavalang_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavalang_la_LDFLAGS) $(libjavalang_la_OBJECTS) $(libjavalang_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavalang_la_LDFLAGS) $(libjavalang_la_OBJECTS) $(libjavalang_la_LIBADD) $(LIBS) libjavalangreflect.la: $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavalangreflect_la_LDFLAGS) $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavalangreflect_la_LDFLAGS) $(libjavalangreflect_la_OBJECTS) $(libjavalangreflect_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -379,7 +392,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_lang_VMMath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_lang_VMProcess.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_lang_VMSystem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_lang_reflect_Array.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_lang_reflect_VMArray.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @@ -491,7 +504,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -520,7 +533,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -539,9 +552,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -567,20 +580,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c b/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c index 169c7850172..f13a94f1889 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMProcess.c @@ -38,6 +38,8 @@ exception statement from your version. */ #include <config.h> #include "java_lang_VMProcess.h" +#include "gnu_java_nio_channels_FileChannelImpl.h" + #include <sys/types.h> #include <sys/wait.h> #include <signal.h> @@ -48,6 +50,8 @@ exception statement from your version. */ #include <fcntl.h> #include <stdio.h> +#include <jcl.h> + #include "target_native.h" #include "target_native_misc.h" @@ -55,17 +59,6 @@ exception statement from your version. */ static char *copy_string (JNIEnv * env, jobject string); static char *copy_elem (JNIEnv * env, jobject stringArray, jint i); -/* Some O/S's don't declare 'environ' */ -#if HAVE_CRT_EXTERNS_H -/* Darwin does not have a variable named environ - but has a function which you can get the environ - variable with. */ -#include <crt_externs.h> -#define environ (*_NSGetEnviron()) -#else -extern char **environ; -#endif /* HAVE_CRT_EXTERNS_H */ - /* * Internal helper function to copy a String in UTF-8 format. */ @@ -135,7 +128,8 @@ copy_elem (JNIEnv * env, jobject stringArray, jint i) JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, jobjectArray cmdArray, - jobjectArray envArray, jobject dirFile) + jobjectArray envArray, jobject dirFile, + jboolean redirect) { int fds[3][2] = { {-1, -1}, {-1, -1}, {-1, -1} }; jobject streams[3] = { NULL, NULL, NULL }; @@ -151,6 +145,7 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, jmethodID method; jclass clazz; int i; + int pipe_count = redirect ? 2 : 3; /* Check for null */ if (cmdArray == NULL) @@ -218,7 +213,7 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, } /* Create inter-process pipes */ - for (i = 0; i < 3; i++) + for (i = 0; i < pipe_count; i++) { if (pipe (fds[i]) == -1) { @@ -232,7 +227,8 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, /* Set close-on-exec flag for parent's ends of pipes */ (void) fcntl (fds[0][1], F_SETFD, 1); (void) fcntl (fds[1][0], F_SETFD, 1); - (void) fcntl (fds[2][0], F_SETFD, 1); + if (pipe_count == 3) + (void) fcntl (fds[2][0], F_SETFD, 1); /* Fork into parent and child processes */ if ((pid = fork ()) == (pid_t) - 1) @@ -267,7 +263,16 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, } close (fds[1][1]); } - if (fds[2][1] != 2) + if (pipe_count == 2) + { + /* Duplicate stdout to stderr. */ + if (dup2 (1, 2) == -1) + { + fprintf (stderr, "dup2: %s", strerror (errno)); + exit (127); + } + } + else if (fds[2][1] != 2) { if (dup2 (fds[2][1], 2) == -1) { @@ -308,11 +313,13 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, method = (*env)->GetMethodID (env, clazz, "<init>", "(II)V"); if ((*env)->ExceptionOccurred (env)) goto done; - for (i = 0; i < 3; i++) + for (i = 0; i < pipe_count; i++) { /* Mode is WRITE (2) for in and READ (1) for out and err. */ const int fd = fds[i][i == 0]; - const int mode = (i == 0) ? 2 : 1; + const int mode = ((i == 0) + ? gnu_java_nio_channels_FileChannelImpl_WRITE + : gnu_java_nio_channels_FileChannelImpl_READ); jclass sclazz; jmethodID smethod; @@ -320,7 +327,7 @@ Java_java_lang_VMProcess_nativeSpawn (JNIEnv * env, jobject this, if ((*env)->ExceptionOccurred (env)) goto done; - if (mode == 2) + if (mode == gnu_java_nio_channels_FileChannelImpl_WRITE) sclazz = (*env)->FindClass (env, "java/io/FileOutputStream"); else sclazz = (*env)->FindClass (env, "java/io/FileInputStream"); @@ -359,7 +366,7 @@ done: */ /* Close child's ends of pipes */ - for (i = 0; i < 3; i++) + for (i = 0; i < pipe_count; i++) { const int fd = fds[i][i != 0]; @@ -373,7 +380,7 @@ done: * was created for a file descriptor, we don't close it because it * will get closed when the Stream object is finalized. */ - for (i = 0; i < 3; i++) + for (i = 0; i < pipe_count; i++) { const int fd = fds[i][i == 0]; diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c b/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c index 0edbb2e965a..05b0d960e03 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c @@ -154,3 +154,35 @@ Java_java_lang_VMSystem_getenv (JNIEnv * env, JCL_free_cstring (env, jname, cname); return (*env)->NewStringUTF (env, envname); } + +JNIEXPORT jobject JNICALL +Java_java_lang_VMSystem_environ (JNIEnv *env, + jclass klass __attribute__((__unused__))) +{ + char **env_pointer; + jobject variables; + jclass list_class; + jmethodID list_constructor; + jmethodID add; + + list_class = (*env)->FindClass(env, "java/util/LinkedList"); + if (list_class == NULL) + return NULL; + list_constructor = (*env)->GetMethodID(env, list_class, "<init>", "()V"); + if (list_constructor == NULL) + return NULL; + variables = (*env)->NewObject(env, list_class, list_constructor); + if (variables == NULL) + return NULL; + add = (*env)->GetMethodID(env, list_class, "add", "(Ljava/lang/Object;)Z"); + if (add == NULL) + return NULL; + env_pointer = environ; + while (*env_pointer != NULL) + { + jstring string = (*env)->NewStringUTF(env, *env_pointer); + (*env)->CallBooleanMethod(env, variables, add, string); + ++env_pointer; + } + return variables; +} diff --git a/libjava/classpath/native/jni/java-lang/java_lang_reflect_Array.c b/libjava/classpath/native/jni/java-lang/java_lang_reflect_VMArray.c index 64ad202dba1..2db68ebf948 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_reflect_Array.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_reflect_VMArray.c @@ -45,7 +45,7 @@ exception statement from your version. */ #include <config.h> #include <stddef.h> -#include "java_lang_reflect_Array.h" +#include "java_lang_reflect_VMArray.h" /* * Class: java_lang_reflect_Array @@ -53,7 +53,7 @@ exception statement from your version. */ * Signature: (Ljava/lang/Class;I)Ljava/lang/Object; */ JNIEXPORT jobject JNICALL -Java_java_lang_reflect_Array_createObjectArray +Java_java_lang_reflect_VMArray_createObjectArray (JNIEnv * env, jclass thisClass __attribute__ ((__unused__)), jclass arrayType, jint arrayLength) diff --git a/libjava/classpath/native/jni/java-net/Makefile.am b/libjava/classpath/native/jni/java-net/Makefile.am index 4bca9511e07..e48173a169d 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.am +++ b/libjava/classpath/native/jni/java-net/Makefile.am @@ -1,11 +1,20 @@ -nativelib_LTLIBRARIES = libjavanet.la +nativeexeclib_LTLIBRARIES = libjavanet.la + +if ENABLE_LOCAL_SOCKETS +local_sources = gnu_java_net_local_LocalSocketImpl.c \ + local.c \ + local.h +else +local_sources = gnu_java_net_local_LocalSocketImpl.c +endif libjavanet_la_SOURCES = javanet.c \ javanet.h \ java_net_VMInetAddress.c \ java_net_VMNetworkInterface.c \ gnu_java_net_VMPlainDatagramSocketImpl.c \ - gnu_java_net_VMPlainSocketImpl.c + gnu_java_net_VMPlainSocketImpl.c \ + $(local_sources) libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in index 77fec42e035..ee316bbcd4d 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.in +++ b/libjava/classpath/native/jni/java-net/Makefile.in @@ -60,15 +60,23 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavanet_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo +am__libjavanet_la_SOURCES_DIST = javanet.c javanet.h \ + java_net_VMInetAddress.c java_net_VMNetworkInterface.c \ + gnu_java_net_VMPlainDatagramSocketImpl.c \ + gnu_java_net_VMPlainSocketImpl.c \ + gnu_java_net_local_LocalSocketImpl.c local.c local.h +@ENABLE_LOCAL_SOCKETS_FALSE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo +@ENABLE_LOCAL_SOCKETS_TRUE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo \ +@ENABLE_LOCAL_SOCKETS_TRUE@ local.lo am_libjavanet_la_OBJECTS = javanet.lo java_net_VMInetAddress.lo \ java_net_VMNetworkInterface.lo \ gnu_java_net_VMPlainDatagramSocketImpl.lo \ - gnu_java_net_VMPlainSocketImpl.lo + gnu_java_net_VMPlainSocketImpl.lo $(am__objects_1) libjavanet_la_OBJECTS = $(am_libjavanet_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/depcomp @@ -82,7 +90,7 @@ CCLD = $(CC) LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libjavanet_la_SOURCES) -DIST_SOURCES = $(libjavanet_la_SOURCES) +DIST_SOURCES = $(am__libjavanet_la_SOURCES_DIST) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -101,6 +109,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -140,6 +149,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -160,6 +171,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -207,6 +219,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -225,8 +238,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -238,8 +254,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -256,7 +270,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -264,18 +281,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -285,13 +306,19 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libjavanet.la +nativeexeclib_LTLIBRARIES = libjavanet.la +@ENABLE_LOCAL_SOCKETS_FALSE@local_sources = gnu_java_net_local_LocalSocketImpl.c +@ENABLE_LOCAL_SOCKETS_TRUE@local_sources = gnu_java_net_local_LocalSocketImpl.c \ +@ENABLE_LOCAL_SOCKETS_TRUE@ local.c \ +@ENABLE_LOCAL_SOCKETS_TRUE@ local.h + libjavanet_la_SOURCES = javanet.c \ javanet.h \ java_net_VMInetAddress.c \ java_net_VMNetworkInterface.c \ gnu_java_net_VMPlainDatagramSocketImpl.c \ - gnu_java_net_VMPlainSocketImpl.c + gnu_java_net_VMPlainSocketImpl.c \ + $(local_sources) libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo AM_LDFLAGS = @CLASSPATH_MODULE@ @@ -330,35 +357,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjavanet.la: $(libjavanet_la_OBJECTS) $(libjavanet_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavanet_la_LDFLAGS) $(libjavanet_la_OBJECTS) $(libjavanet_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavanet_la_LDFLAGS) $(libjavanet_la_OBJECTS) $(libjavanet_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -368,9 +395,11 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainDatagramSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_VMPlainSocketImpl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_local_LocalSocketImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMInetAddress.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMNetworkInterface.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/javanet.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/local.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @@ -482,7 +511,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -511,7 +540,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -530,9 +559,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -558,20 +587,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c new file mode 100644 index 00000000000..3b29001a748 --- /dev/null +++ b/libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c @@ -0,0 +1,538 @@ +/* gnu_java_net_local_LocalSocketImpl.c -- native local socket implementation. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 +USA + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +#define _GNU_SOURCE + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif /* HAVE_CONFIG_H */ + +#include <gnu_java_net_local_LocalSocketImpl.h> + +#include <stddef.h> +#include "local.h" + +#ifdef DEBUG +#define TRACE(msg) fprintf (stderr, "%s(%s:%d) -- %s\n", __FUNCTION__, __FILE__, __LINE__, msg) +#else +#define TRACE(msg) +#endif + +static void +_throw (JNIEnv *env, const char *exception, const char *msg) +{ + jclass _theclass = (*env)->FindClass (env, exception); + TRACE("begin"); + if (!_theclass) + { + (*env)->FatalError (env, "exception class not found"); + } + (*env)->ThrowNew (env, _theclass, msg); + TRACE("end"); +} + +void +Java_gnu_java_net_local_LocalSocketImpl_create (JNIEnv *env, jobject this, jboolean stream) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd, created; + jclass clazz; + jint fd = (jint) local_create ((int) stream); + + TRACE("begin"); + + if (fd < 0) + { + _throw (env, "java/io/IOException", local_error ()); + return; + } + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + created = (*env)->GetFieldID (env, clazz, "created", "Z"); + if (!created) + { + return; + } + (*env)->SetIntField (env, this, socket_fd, fd); + (*env)->SetBooleanField (env, this, created, JNI_TRUE); + + TRACE("end"); +#else + (void) this; + (void) stream; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_listen (JNIEnv *env, jobject this, jint backlog) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + int fd; + + TRACE("begin"); + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + if (local_listen (fd, (int) backlog)) + { + _throw (env, "java/io/IOException", local_error ()); + return; + } + + TRACE("end"); +#else + (void) this; + (void) backlog; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_accept (JNIEnv *env, jobject this, jobject socket) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jmethodID addr_init; + jfieldID socket_fd, remote_addr, local_addr; + jclass clazz1, clazz2; + jobject remote, local; + jint fd; + char path[108]; + + TRACE("begin"); + + clazz1 = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz1, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (*env)->GetIntField (env, this, socket_fd); + fd = (jint) local_accept ((int) fd, path); + if (fd < 0) + { + _throw (env, "java/io/IOException", local_error ()); + return; + } + + clazz2 = (*env)->FindClass (env, "gnu/java/net/local/LocalSocketAddress"); + if (!clazz2) + { + return; + } + addr_init = (*env)->GetMethodID (env, clazz2, "<init>", "(Ljava/lang/String;)V"); + if (!addr_init) + { + return; + } + remote = (*env)->NewObject (env, clazz2, addr_init, (*env)->NewStringUTF (env, path)); + + remote_addr = (*env)->GetFieldID (env, clazz1, "remote", "Lgnu/java/net/local/LocalSocketAddress;"); + if (!remote_addr) + { + return; + } + local_addr = (*env)->GetFieldID (env, clazz1, "local", "Lgnu/java/net/local/LocalSocketAddress;"); + if (!local_addr) + { + return; + } + local = (*env)->GetObjectField (env, this, local_addr); + (*env)->SetIntField (env, socket, socket_fd, fd); + (*env)->SetObjectField (env, socket, remote_addr, remote); + (*env)->SetObjectField (env, socket, local_addr, local); + + TRACE("end"); +#else + (void) this; + (void) socket; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +jint +Java_gnu_java_net_local_LocalSocketImpl_available (JNIEnv *env, jobject this) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + jint avail; + + TRACE("begin"); + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return 0; + } + avail = (jint) local_available ((int) (*env)->GetIntField (env, this, socket_fd)); + if (avail < 0) + { + _throw (env, "java/io/IOException", local_error ()); + return 0; + } + + TRACE("end"); + + return avail; +#else + (void) this; + _throw (env, "java/lang/Error", "support for local sockets not available"); + return -1; +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_close (JNIEnv *env, jobject this) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + int fd; + + TRACE("begin"); + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + if (local_close (fd)) + { + _throw (env, "java/io/IOException", local_error ()); + } + + TRACE("end"); +#else + (void) this; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_unlink (JNIEnv *env, jobject this) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID local; + jmethodID get_path; + jclass clazz1, clazz2; + jobject local_ref, path; + char *addr_path; + + TRACE("begin"); + + clazz1 = (*env)->GetObjectClass (env, this); + local = (*env)->GetFieldID (env, clazz1, "local", "Lgnu/java/net/local/LocalSocketAddress;"); + if (!local) + { + return; + } + local_ref = (*env)->GetObjectField (env, this, local); + clazz2 = (*env)->GetObjectClass (env, local_ref); + get_path = (*env)->GetMethodID (env, clazz2, "getPath", "()Ljava/lang/String;"); + if (!get_path) + { + return; + } + path = (*env)->CallObjectMethod (env, local_ref, get_path); + addr_path = (char *) (*env)->GetStringUTFChars (env, (jstring) path, NULL); + if (local_unlink (addr_path)) + { + _throw (env, "java/io/IOException", local_error ()); + } + (*env)->ReleaseStringUTFChars (env, (jstring) path, addr_path); + + TRACE("end"); +#else + (void) this; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_sendUrgentData (JNIEnv *env, jobject this __attribute__((unused)), jint data __attribute__((unused))) +{ + /* XXX I don't remember why I have this. Probably should just + remove. */ + (*env)->FatalError (env, "Java_gnu_java_net_local_LocalSocketImpl_shutdownInput (JNIEnv *env, jobject) not implemented"); +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_shutdownInput (JNIEnv *env, jobject this) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + int fd; + + TRACE("begin"); + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (*env)->GetIntField (env, this, socket_fd); + if (local_shutdown_input (fd)) + { + _throw (env, "java/io/IOException", local_error ()); + } + + TRACE("end"); +#else + (void) this; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_shutdownOutput (JNIEnv *env, jobject this) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + int fd; + + TRACE("begin"); + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (*env)->GetIntField (env, this, socket_fd); + if (local_shutdown_output (fd)) + { + _throw (env, "java/io/IOException", local_error ()); + } + + TRACE("end"); +#else + (void) this; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_localBind (JNIEnv *env, jobject this, jobject address) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jmethodID get_path; + jobject path; + jclass clazz1, clazz2; + const char *addr_path; + int fd; + + TRACE("begin"); + + clazz1 = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz1, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + clazz2 = (*env)->GetObjectClass (env, address); + get_path = (*env)->GetMethodID (env, clazz2, "getPath", "()Ljava/lang/String;"); + path = (*env)->CallObjectMethod (env, address, get_path); + addr_path = (*env)->GetStringUTFChars (env, (jstring) path, NULL); + if (local_bind (fd, addr_path)) + { + _throw (env, "java/io/IOException", local_error ()); + } + (*env)->ReleaseStringUTFChars (env, (jstring) path, addr_path); + + TRACE("end"); +#else + (void) this; + (void) address; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_localConnect (JNIEnv *env, jobject this, jobject address) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jmethodID get_path; + jobject path; + jclass clazz1, clazz2; + char *addr_path; + int fd; + + TRACE("begin"); + + clazz1 = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz1, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + clazz2 = (*env)->GetObjectClass (env, address); + get_path = (*env)->GetMethodID (env, clazz2, "getPath", "()Ljava/lang/String;"); + path = (*env)->CallObjectMethod (env, address, get_path); + addr_path = (char *) (*env)->GetStringUTFChars (env, (jstring) path, NULL); + if (local_connect (fd, addr_path)) + { + _throw (env, "java/io/IOException", local_error ()); + } + (*env)->ReleaseStringUTFChars (env, (jstring) path, addr_path); + + TRACE("end"); +#else + (void) this; + (void) address; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +jint +Java_gnu_java_net_local_LocalSocketImpl_read (JNIEnv *env, jobject this, jbyteArray buf, jint off, jint len) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + jbyte *buffer; + jint count; + int fd; + + TRACE("begin"); + + if (off < 0 || len < 0 || off + len > (*env)->GetArrayLength (env, buf)) + { + _throw (env, "java/lang/ArrayIndexOutOfBoundsException", ""); + } + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return 0; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + buffer = (*env)->GetByteArrayElements (env, buf, NULL); + count = (jint) local_read (fd, (void *) (buffer + off), (int) len); + if (count < 0) + { + _throw (env, "java/io/IOException", local_error ()); + } + (*env)->ReleaseByteArrayElements (env, buf, buffer, 0); + + TRACE("end"); + + return count; +#else + (void) this; + (void) buf; + (void) off; + (void) len; + _throw (env, "java/lang/Error", "support for local sockets not available"); + return -1; +#endif /* ENABLE_LOCAL_SOCKETS */ +} + + +void +Java_gnu_java_net_local_LocalSocketImpl_write (JNIEnv *env, jobject this, jbyteArray buf, jint off, jint len) +{ +#ifdef ENABLE_LOCAL_SOCKETS + jfieldID socket_fd; + jclass clazz; + jbyte *buffer; + int fd; + + TRACE("begin"); + + if (off < 0 || len < 0 || off + len > (*env)->GetArrayLength (env, buf)) + { + _throw (env, "java/lang/ArrayIndexOutOfBoundsException", ""); + } + + clazz = (*env)->GetObjectClass (env, this); + socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I"); + if (!socket_fd) + { + return; + } + fd = (int) (*env)->GetIntField (env, this, socket_fd); + buffer = (*env)->GetByteArrayElements (env, buf, NULL); + if (local_write (fd, (void *) (buffer + off), (int) len) < 0) + { + _throw (env, "java/io/IOException", local_error ()); + } + (*env)->ReleaseByteArrayElements (env, buf, buffer, JNI_ABORT); + + TRACE("end"); +#else + (void) this; + (void) buf; + (void) off; + (void) len; + _throw (env, "java/lang/Error", "support for local sockets not available"); +#endif /* ENABLE_LOCAL_SOCKETS */ +} diff --git a/libjava/classpath/native/jni/java-net/javanet.c b/libjava/classpath/native/jni/java-net/javanet.c index 0a1b84a8ed7..e500c608431 100644 --- a/libjava/classpath/native/jni/java-net/javanet.c +++ b/libjava/classpath/native/jni/java-net/javanet.c @@ -835,6 +835,9 @@ _javanet_accept (JNIEnv * env, jobject this, jobject impl) } while (result != TARGET_NATIVE_OK); + /* Reset the inherited timeout. */ + TARGET_NATIVE_NETWORK_SOCKET_SET_OPTION_SO_TIMEOUT (newfd, 0, result); + /* Populate instance variables */ _javanet_set_int_field (env, impl, "gnu/java/net/PlainSocketImpl", "native_fd", newfd); diff --git a/libjava/classpath/native/jni/java-net/javanet.h b/libjava/classpath/native/jni/java-net/javanet.h index 785b0b08226..030d41282ba 100644 --- a/libjava/classpath/native/jni/java-net/javanet.h +++ b/libjava/classpath/native/jni/java-net/javanet.h @@ -40,6 +40,7 @@ exception statement from your version. */ #define _JAVANET_LOADED #include <jni.h> +#include "jcl.h" /*************************************************************************/ @@ -73,19 +74,6 @@ exception statement from your version. */ /*************************************************************************/ /* - * Macros - */ - -/* Simple debug macro */ -#ifdef DEBUG -#define DBG(x) fprintf(stderr, (x)); -#else -#define DBG(x) -#endif - -/*************************************************************************/ - -/* * Function Prototypes */ diff --git a/libjava/classpath/native/jni/java-net/local.c b/libjava/classpath/native/jni/java-net/local.c new file mode 100644 index 00000000000..cdddd89efc3 --- /dev/null +++ b/libjava/classpath/native/jni/java-net/local.c @@ -0,0 +1,193 @@ +/* local.c -- implementation of unix-domain sockets. + Copyright (C) 2006 Free Software Foundation, Inc. + +This file is a part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 +USA + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif /* HAVE_CONFIG_H */ + +#ifdef ENABLE_LOCAL_SOCKETS + +#include <stddef.h> +#include <stdlib.h> +#include <unistd.h> +#include <string.h> +#include <errno.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <sys/un.h> + +#include <stdio.h> + +#include "local.h" + +const char * +local_error (void) +{ + return strerror (errno); +} + +int +local_create (int stream) +{ + return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0); +} + +static int gcc_sucks = 0; + +int +local_bind (int fd, const char *addr) +{ + struct sockaddr_un saddr; + + /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr' + pointer in the CALLER's STACK FRAME after calling this function, + but if we add this statement below, it doesn't! */ + if (gcc_sucks) + fprintf (stderr, "bind %p\n", addr); + + if (strlen (addr) > sizeof (saddr.sun_path)) + { + errno = ENAMETOOLONG; + return -1; + } + + strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path)); + saddr.sun_path[sizeof (saddr.sun_path)] = '\0'; + saddr.sun_family = AF_LOCAL; + + return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr)); +} + +int +local_listen (int fd, int backlog) +{ + return listen (fd, backlog); +} + +int +local_accept (int fd, char *path) +{ + int newfd; + struct sockaddr_un addr; + socklen_t sz = SUN_LEN(&addr); + + newfd = accept (fd, (struct sockaddr *) &addr, &sz); + if (newfd >= 0) + { + /** sun_path is some crazy statically-sized buffer, and it's + size is different on different OSes. */ + int n = sizeof (addr.sun_path); + strncpy (path, addr.sun_path, n); + path[n] = '\0'; + } + return newfd; +} + +int +local_available (int fd) +{ + int val; + if (ioctl (fd, FIONREAD, &val)) + { + return -1; + } + return val; +} + +int +local_close (int fd) +{ + return close (fd); +} + +int +local_unlink (char *path) +{ + return unlink (path); +} + +int +local_shutdown_input (int fd) +{ + return shutdown (fd, 0); +} + +int +local_shutdown_output (int fd) +{ + return shutdown (fd, 1); +} + +int +local_connect (int fd, char *path) +{ + struct sockaddr_un saddr; + + strncpy (saddr.sun_path, path, sizeof (saddr.sun_path)); + saddr.sun_path[sizeof (saddr.sun_path) - 1] = '\0'; + saddr.sun_family = AF_UNIX; + + return connect (fd, (struct sockaddr *) &saddr, SUN_LEN(&saddr)); +} + +int +local_read (int fd, void *buf, int len) +{ + int count = -1; + do + { + count = read (fd, buf, len); + } + while (count == -1 && errno == EINTR); + return count; +} + +int +local_write (int fd, void *buf, int len) +{ + int count = -1; + do + { + count = write (fd, buf, len); + } + while (count == -1 && errno == EINTR); + return count; +} + +#endif /* ENABLE_LOCAL_SOCKETS */ diff --git a/libjava/classpath/native/jni/java-net/local.h b/libjava/classpath/native/jni/java-net/local.h new file mode 100644 index 00000000000..035996a800d --- /dev/null +++ b/libjava/classpath/native/jni/java-net/local.h @@ -0,0 +1,28 @@ +#ifndef __LOCAL_H__ +#define __LOCAL_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif +#define __EMACSEN__ } + +extern const char *local_error (void); +extern int local_create (int); +extern int local_bind (int, const char *); +extern int local_listen (int, int); +extern int local_accept (int, char *); +extern int local_available (int); +extern int local_close (int); +extern int local_shutdown_input (int); +extern int local_shutdown_output (int); +extern int local_connect (int, char *); +extern int local_unlink (char *); +extern int local_read (int, void *, int); +extern int local_write (int, void *, int); + +#ifdef __cplusplus +} +#endif + +#endif /* __LOCAL_H__ */ diff --git a/libjava/classpath/native/jni/java-nio/Makefile.am b/libjava/classpath/native/jni/java-nio/Makefile.am index 8fd5ba3aeb5..af564373b43 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.am +++ b/libjava/classpath/native/jni/java-nio/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libjavanio.la +nativeexeclib_LTLIBRARIES = libjavanio.la libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \ gnu_java_nio_VMSelector.c \ diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in index a99e66af9d2..5476643e53c 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.in +++ b/libjava/classpath/native/jni/java-nio/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) am__DEPENDENCIES_1 = libjavanio_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo \ @@ -106,6 +106,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -145,6 +146,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -165,6 +168,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -212,6 +216,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -230,8 +235,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -243,8 +251,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -261,7 +267,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -269,18 +278,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -290,7 +303,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libjavanio.la +nativeexeclib_LTLIBRARIES = libjavanio.la libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \ gnu_java_nio_VMSelector.c \ gnu_java_nio_channels_FileChannelImpl.c \ @@ -338,35 +351,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjavanio.la: $(libjavanio_la_OBJECTS) $(libjavanio_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavanio_la_LDFLAGS) $(libjavanio_la_OBJECTS) $(libjavanio_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavanio_la_LDFLAGS) $(libjavanio_la_OBJECTS) $(libjavanio_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -492,7 +505,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -521,7 +534,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -540,9 +553,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -568,20 +581,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/java-util/Makefile.am b/libjava/classpath/native/jni/java-util/Makefile.am index 148e9ccbe29..f06213f71df 100644 --- a/libjava/classpath/native/jni/java-util/Makefile.am +++ b/libjava/classpath/native/jni/java-util/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libjavautil.la +nativeexeclib_LTLIBRARIES = libjavautil.la libjavautil_la_SOURCES = java_util_VMTimeZone.c diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in index fead46ebe66..51c22d28a1b 100644 --- a/libjava/classpath/native/jni/java-util/Makefile.in +++ b/libjava/classpath/native/jni/java-util/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavautil_la_LIBADD = am_libjavautil_la_OBJECTS = java_util_VMTimeZone.lo libjavautil_la_OBJECTS = $(am_libjavautil_la_OBJECTS) @@ -97,6 +97,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -136,6 +137,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -156,6 +159,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -203,6 +207,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -221,8 +226,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -234,8 +242,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -252,7 +258,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -260,18 +269,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -281,7 +294,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libjavautil.la +nativeexeclib_LTLIBRARIES = libjavautil.la libjavautil_la_SOURCES = java_util_VMTimeZone.c AM_LDFLAGS = @CLASSPATH_MODULE@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@ @@ -319,35 +332,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libjavautil.la: $(libjavautil_la_OBJECTS) $(libjavautil_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libjavautil_la_LDFLAGS) $(libjavautil_la_OBJECTS) $(libjavautil_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libjavautil_la_LDFLAGS) $(libjavautil_la_OBJECTS) $(libjavautil_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -467,7 +480,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -496,7 +509,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -515,9 +528,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -543,20 +556,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/midi-alsa/.cvsignore b/libjava/classpath/native/jni/midi-alsa/.cvsignore deleted file mode 100644 index 483b2774465..00000000000 --- a/libjava/classpath/native/jni/midi-alsa/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -*.o -*.a -*.lo -*.la -.libs -.depsMakefile -Makefile.in -Makefile -.deps diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.am b/libjava/classpath/native/jni/midi-alsa/Makefile.am index b6498df2be5..e45cb439eb7 100644 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.am +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libgjsmalsa.la +nativeexeclib_LTLIBRARIES = libgjsmalsa.la libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \ gnu_javax_sound_midi_alsa_AlsaPortDevice.c \ diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in index 0eb68803966..49bf6f951c2 100644 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.in +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libgjsmalsa_la_DEPENDENCIES = am_libgjsmalsa_la_OBJECTS = \ gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.lo \ @@ -100,6 +100,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -139,6 +140,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -159,6 +162,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -206,6 +210,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -224,8 +229,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -237,8 +245,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -255,7 +261,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -263,18 +272,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -284,7 +297,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libgjsmalsa.la +nativeexeclib_LTLIBRARIES = libgjsmalsa.la libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \ gnu_javax_sound_midi_alsa_AlsaPortDevice.c \ gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c @@ -326,35 +339,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libgjsmalsa.la: $(libgjsmalsa_la_OBJECTS) $(libgjsmalsa_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libgjsmalsa_la_LDFLAGS) $(libgjsmalsa_la_OBJECTS) $(libgjsmalsa_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libgjsmalsa_la_LDFLAGS) $(libgjsmalsa_la_OBJECTS) $(libgjsmalsa_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -476,7 +489,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -505,7 +518,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -524,9 +537,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -552,20 +565,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/midi-dssi/.cvsignore b/libjava/classpath/native/jni/midi-dssi/.cvsignore deleted file mode 100644 index ac18ca27297..00000000000 --- a/libjava/classpath/native/jni/midi-dssi/.cvsignore +++ /dev/null @@ -1,9 +0,0 @@ -*.o -*.a -*.lo -*.la -.libs -.depsMakefile -Makefile.in -.deps -Makefile diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.am b/libjava/classpath/native/jni/midi-dssi/Makefile.am index 6b1ef0407aa..8a466d61f80 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.am +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libgjsmdssi.la +nativeexeclib_LTLIBRARIES = libgjsmdssi.la libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \ gnu_javax_sound_midi_dssi_DSSISynthesizer.c \ diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in index 205ebee776e..5c16335fdf8 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.in +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libgjsmdssi_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo am_libgjsmdssi_la_OBJECTS = \ @@ -100,6 +100,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -139,6 +140,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -159,6 +162,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -206,6 +210,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -224,8 +229,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -237,8 +245,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -255,7 +261,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -263,18 +272,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -284,7 +297,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libgjsmdssi.la +nativeexeclib_LTLIBRARIES = libgjsmdssi.la libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \ gnu_javax_sound_midi_dssi_DSSISynthesizer.c \ dssi_data.h @@ -326,35 +339,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libgjsmdssi.la: $(libgjsmdssi_la_OBJECTS) $(libgjsmdssi_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libgjsmdssi_la_LDFLAGS) $(libgjsmdssi_la_OBJECTS) $(libgjsmdssi_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libgjsmdssi_la_LDFLAGS) $(libgjsmdssi_la_OBJECTS) $(libgjsmdssi_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -475,7 +488,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -504,7 +517,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -523,9 +536,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -551,20 +564,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in index 330073fd4d1..321cadd8451 100644 --- a/libjava/classpath/native/jni/qt-peer/Makefile.in +++ b/libjava/classpath/native/jni/qt-peer/Makefile.in @@ -115,6 +115,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -154,6 +155,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -174,6 +177,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -221,6 +225,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -239,8 +244,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -252,8 +260,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -270,7 +276,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -278,18 +287,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ diff --git a/libjava/classpath/native/jni/xmlj/Makefile.am b/libjava/classpath/native/jni/xmlj/Makefile.am index a210a59c7c5..3904dd58cd1 100644 --- a/libjava/classpath/native/jni/xmlj/Makefile.am +++ b/libjava/classpath/native/jni/xmlj/Makefile.am @@ -1,4 +1,4 @@ -nativelib_LTLIBRARIES = libxmlj.la +nativeexeclib_LTLIBRARIES = libxmlj.la libxmlj_la_SOURCES = \ xmlj_dom.c \ diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in index 2e2bfe57775..39e50ff7d2b 100644 --- a/libjava/classpath/native/jni/xmlj/Makefile.in +++ b/libjava/classpath/native/jni/xmlj/Makefile.in @@ -60,9 +60,9 @@ am__vpath_adj = case $$p in \ *) f=$$p;; \ esac; am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; -am__installdirs = "$(DESTDIR)$(nativelibdir)" -nativelibLTLIBRARIES_INSTALL = $(INSTALL) -LTLIBRARIES = $(nativelib_LTLIBRARIES) +am__installdirs = "$(DESTDIR)$(nativeexeclibdir)" +nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL) +LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libxmlj_la_DEPENDENCIES = $(top_builddir)/native/jni/classpath/jcl.lo am_libxmlj_la_OBJECTS = xmlj_dom.lo xmlj_error.lo xmlj_io.lo \ xmlj_node.lo xmlj_sax.lo xmlj_transform.lo xmlj_util.lo \ @@ -99,6 +99,7 @@ CAIRO_LIBS = @CAIRO_LIBS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ +CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@ CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@ CLASSPATH_MODULE = @CLASSPATH_MODULE@ COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@ @@ -138,6 +139,8 @@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ ECJ = @ECJ@ EGREP = @EGREP@ +ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@ +ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@ ERROR_CFLAGS = @ERROR_CFLAGS@ EXAMPLESDIR = @EXAMPLESDIR@ EXEEXT = @EXEEXT@ @@ -158,6 +161,7 @@ FREETYPE2_LIBS = @FREETYPE2_LIBS@ GCJ = @GCJ@ GCJX = @GCJX@ GJDOC = @GJDOC@ +GREP = @GREP@ GTK_CAIRO_ENABLED = @GTK_CAIRO_ENABLED@ GTK_CAIRO_FALSE = @GTK_CAIRO_FALSE@ GTK_CAIRO_TRUE = @GTK_CAIRO_TRUE@ @@ -205,6 +209,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ +PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ QT_CFLAGS = @QT_CFLAGS@ @@ -223,8 +228,11 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@ USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@ USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@ USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@ +USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@ +USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@ VERSION = @VERSION@ WARNING_CFLAGS = @WARNING_CFLAGS@ +XMKMF = @XMKMF@ XML_CFLAGS = @XML_CFLAGS@ XML_LIBS = @XML_LIBS@ XSLT_CFLAGS = @XSLT_CFLAGS@ @@ -236,8 +244,6 @@ X_PRE_LIBS = @X_PRE_LIBS@ ZIP = @ZIP@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ -ac_ct_RANLIB = @ac_ct_RANLIB@ -ac_ct_STRIP = @ac_ct_STRIP@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ @@ -254,7 +260,10 @@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ +datarootdir = @datarootdir@ default_toolkit = @default_toolkit@ +docdir = @docdir@ +dvidir = @dvidir@ exec_prefix = @exec_prefix@ glibjdir = @glibjdir@ host = @host@ @@ -262,18 +271,22 @@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ +htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ +localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ -nativelibdir = @nativelibdir@ +nativeexeclibdir = @nativeexeclibdir@ oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ +psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ @@ -283,7 +296,7 @@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ vm_classes = @vm_classes@ -nativelib_LTLIBRARIES = libxmlj.la +nativeexeclib_LTLIBRARIES = libxmlj.la libxmlj_la_SOURCES = \ xmlj_dom.c \ xmlj_dom.h \ @@ -340,35 +353,35 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -install-nativelibLTLIBRARIES: $(nativelib_LTLIBRARIES) +install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES) @$(NORMAL_INSTALL) - test -z "$(nativelibdir)" || $(mkdir_p) "$(DESTDIR)$(nativelibdir)" - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)" + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativelibdir)/$$f'"; \ - $(LIBTOOL) --mode=install $(nativelibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativelibdir)/$$f"; \ + echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \ + $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \ else :; fi; \ done -uninstall-nativelibLTLIBRARIES: +uninstall-nativeexeclibLTLIBRARIES: @$(NORMAL_UNINSTALL) - @set -x; list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ + @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ - echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativelibdir)/$$p'"; \ - $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativelibdir)/$$p"; \ + echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \ + $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \ done -clean-nativelibLTLIBRARIES: - -test -z "$(nativelib_LTLIBRARIES)" || rm -f $(nativelib_LTLIBRARIES) - @list='$(nativelib_LTLIBRARIES)'; for p in $$list; do \ +clean-nativeexeclibLTLIBRARIES: + -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES) + @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libxmlj.la: $(libxmlj_la_OBJECTS) $(libxmlj_la_DEPENDENCIES) - $(LINK) -rpath $(nativelibdir) $(libxmlj_la_LDFLAGS) $(libxmlj_la_OBJECTS) $(libxmlj_la_LIBADD) $(LIBS) + $(LINK) -rpath $(nativeexeclibdir) $(libxmlj_la_LDFLAGS) $(libxmlj_la_OBJECTS) $(libxmlj_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) @@ -495,7 +508,7 @@ check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: - for dir in "$(DESTDIR)$(nativelibdir)"; do \ + for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: install-am @@ -524,7 +537,7 @@ maintainer-clean-generic: @echo "it deletes files that may require special tools to rebuild." clean: clean-am -clean-am: clean-generic clean-libtool clean-nativelibLTLIBRARIES \ +clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \ mostlyclean-am distclean: distclean-am @@ -543,9 +556,9 @@ info: info-am info-am: -install-data-am: install-nativelibLTLIBRARIES +install-data-am: -install-exec-am: +install-exec-am: install-nativeexeclibLTLIBRARIES install-info: install-info-am @@ -571,20 +584,20 @@ ps: ps-am ps-am: -uninstall-am: uninstall-info-am uninstall-nativelibLTLIBRARIES +uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libtool clean-nativelibLTLIBRARIES ctags distclean \ + clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ - install-nativelibLTLIBRARIES install-strip installcheck \ + install-nativeexeclibLTLIBRARIES install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-info-am \ - uninstall-nativelibLTLIBRARIES + uninstall-nativeexeclibLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. |