diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2005-02-14 21:08:08 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@redhat.com> | 2005-02-14 21:08:08 +0000 |
commit | 812a0fcaa1b4ba2ae03673347b8754ec6b7933da (patch) | |
tree | 24123b91fac1a16e6031e39bd090dd4a32dcc631 | |
parent | 488ea491640a78608746590a667465b56f757f11 (diff) |
2005-02-14 Thomas Fitzsimmons <fitzsim@redhat.com>
* jawt.c: New file.
* include/jawt.h: Likewise.
* include/jawt_md.h: Likewise.
* include/Makefile.am (tool_include__HEADERS): Add jawt.h and
jawt_md.h files.
* include/Makefile.in: Regenerate.
* jni/classpath/classpath_jawt.h: Likewise.
* jni/gtk-peer/gtk_jawt.c: Likewise.
* Makefile.am: Build libjawt.so.
* Makefile.in: Regenerate.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@95047 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | libjava/ChangeLog | 13 | ||||
-rw-r--r-- | libjava/Makefile.am | 13 | ||||
-rw-r--r-- | libjava/Makefile.in | 86 | ||||
-rw-r--r-- | libjava/include/Makefile.am | 2 | ||||
-rw-r--r-- | libjava/include/Makefile.in | 2 | ||||
-rw-r--r-- | libjava/include/jawt.h | 92 | ||||
-rw-r--r-- | libjava/include/jawt_md.h | 63 | ||||
-rw-r--r-- | libjava/jawt.c | 156 | ||||
-rw-r--r-- | libjava/jni/classpath/classpath_jawt.h | 59 | ||||
-rw-r--r-- | libjava/jni/gtk-peer/gtk_jawt.c | 132 |
10 files changed, 600 insertions, 18 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 78c05463e3d..1adfca2b70d 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,16 @@ +2005-02-14 Thomas Fitzsimmons <fitzsim@redhat.com> + + * jawt.c: New file. + * include/jawt.h: Likewise. + * include/jawt_md.h: Likewise. + * include/Makefile.am (tool_include__HEADERS): Add jawt.h and + jawt_md.h files. + * include/Makefile.in: Regenerate. + * jni/classpath/classpath_jawt.h: Likewise. + * jni/gtk-peer/gtk_jawt.c: Likewise. + * Makefile.am: Build libjawt.so. + * Makefile.in: Regenerate. + 2005-02-14 Tom Tromey <tromey@redhat.com> * testsuite/libjava.lang/PR19921.java: Use correct class name. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index ba40f654675..249388eabde 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -102,12 +102,14 @@ endif if GTK_AWT cond_gtk_ltlibrary = lib-gnu-java-awt-peer-gtk.la +cond_gtk_jawt_ltlibrary = libjawt.la else cond_gtk_ltlibrary = +cond_gtk_jawt_ltlibrary = endif toolexeclib_LTLIBRARIES = libgcj.la libgij.la \ - $(cond_gtk_ltlibrary) $(cond_xlib_ltlibrary) + $(cond_gtk_ltlibrary) $(cond_gtk_jawt_ltlibrary) $(cond_xlib_ltlibrary) toolexecmainlib_DATA = libgcj.spec pkgconfigdir = $(libdir)/pkgconfig @@ -290,6 +292,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \ jni/gtk-peer/gthread-jni.c \ +jni/gtk-peer/gtk_jawt.c \ jni/classpath/jcl.c \ jni/classpath/jnilink.c \ jni/classpath/native_state.c \ @@ -460,6 +463,14 @@ lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK) +libjawt_la_SOURCES = jawt.c +libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS) +libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la +libjawt_la_LDFLAGS = \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC) +libjawt_la_LINK = $(LIBLINK) + lib_gnu_awt_xlib_la_SOURCES = \ $(xlib_java_source_files) \ $(xlib_nat_source_files) diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 9b2d27477fc..064da74452c 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -17,7 +17,7 @@ -SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) $(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES) +SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) $(libgij_la_SOURCES) $(libjawt_la_SOURCES) $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -59,7 +59,16 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \ ChangeLog NEWS THANKS subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/../config/accross.m4 \ + $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/gcc-version.m4 \ + $(top_srcdir)/../config/gxx-include-dir.m4 \ + $(top_srcdir)/../config/iconv.m4 \ + $(top_srcdir)/../config/lcmessage.m4 \ + $(top_srcdir)/../config/lib-ld.m4 \ + $(top_srcdir)/../config/lib-link.m4 \ + $(top_srcdir)/../config/lib-prefix.m4 $(top_srcdir)/pkg.m4 \ + $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/../config/no-executables.m4 \ $(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ @@ -213,12 +222,12 @@ am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST = \ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \ - jni/gtk-peer/gthread-jni.c jni/classpath/jcl.c \ - jni/classpath/jnilink.c jni/classpath/native_state.c \ - jni/classpath/primlib.c jni/gtk-peer/gthread-jni.h \ - jni/gtk-peer/gtkpeer.h jni/classpath/jcl.h \ - jni/classpath/jnilink.h jni/classpath/native_state.h \ - jni/classpath/primlib.h + jni/gtk-peer/gthread-jni.c jni/gtk-peer/gtk_jawt.c \ + jni/classpath/jcl.c jni/classpath/jnilink.c \ + jni/classpath/native_state.c jni/classpath/primlib.c \ + jni/gtk-peer/gthread-jni.h jni/gtk-peer/gtkpeer.h \ + jni/classpath/jcl.h jni/classpath/jnilink.h \ + jni/classpath/native_state.h jni/classpath/primlib.h am__objects_3 = gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo \ gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo \ gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo \ @@ -303,6 +312,7 @@ am__objects_5 = $(am__objects_4) \ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.lo \ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo \ + jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo \ jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo \ jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo \ jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo \ @@ -4586,6 +4596,10 @@ am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo link.lo \ libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS) am_libgij_la_OBJECTS = gij.lo libgij_la_OBJECTS = $(am_libgij_la_OBJECTS) +libjawt_la_DEPENDENCIES = lib-gnu-java-awt-peer-gtk.la +am_libjawt_la_OBJECTS = libjawt_la-jawt.lo +libjawt_la_OBJECTS = $(am_libjawt_la_OBJECTS) +@GTK_AWT_TRUE@am_libjawt_la_rpath = -rpath $(toolexeclibdir) binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT) @@ -4631,15 +4645,15 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \ GCJLD = $(GCJ) SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \ $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) \ - $(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) \ - $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) \ - $(grmiregistry_SOURCES) $(jv_convert_SOURCES) + $(libgij_la_SOURCES) $(libjawt_la_SOURCES) \ + $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) \ + $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES) DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \ $(am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST) \ $(am__libgcj_la_SOURCES_DIST) $(libgij_la_SOURCES) \ - $(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \ - $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \ - $(jv_convert_SOURCES) + $(libjawt_la_SOURCES) $(gcj_dbtool_SOURCES) \ + $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \ + $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ @@ -4740,11 +4754,13 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@ LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@ LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@ LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@ +LIBICONV = @LIBICONV@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LN_S = @LN_S@ +LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ @@ -4767,6 +4783,7 @@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@ PANGOFT2_LIBS = @PANGOFT2_LIBS@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ +PKG_CONFIG = @PKG_CONFIG@ PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ @@ -4844,6 +4861,10 @@ build_os = @build_os@ build_vendor = @build_vendor@ datadir = @datadir@ exec_prefix = @exec_prefix@ +gcc_version = @gcc_version@ +gcc_version_full = @gcc_version_full@ +gcc_version_trigger = @gcc_version_trigger@ +gxx_include_dir = @gxx_include_dir@ here = @here@ host = @host@ host_alias = @host_alias@ @@ -4856,6 +4877,7 @@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ libgcj_basedir = @libgcj_basedir@ +libstdcxx_incdir = @libstdcxx_incdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ @@ -4916,8 +4938,10 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o @XLIB_AWT_TRUE@cond_xlib_ltlibrary = lib-gnu-awt-xlib.la @GTK_AWT_FALSE@cond_gtk_ltlibrary = @GTK_AWT_TRUE@cond_gtk_ltlibrary = lib-gnu-java-awt-peer-gtk.la +@GTK_AWT_FALSE@cond_gtk_jawt_ltlibrary = +@GTK_AWT_TRUE@cond_gtk_jawt_ltlibrary = libjawt.la toolexeclib_LTLIBRARIES = libgcj.la libgij.la \ - $(cond_gtk_ltlibrary) $(cond_xlib_ltlibrary) + $(cond_gtk_ltlibrary) $(cond_gtk_jawt_ltlibrary) $(cond_xlib_ltlibrary) toolexecmainlib_DATA = libgcj.spec pkgconfigdir = $(libdir)/pkgconfig @@ -5046,6 +5070,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \ jni/gtk-peer/gthread-jni.c \ +jni/gtk-peer/gtk_jawt.c \ jni/classpath/jcl.c \ jni/classpath/jnilink.c \ jni/classpath/native_state.c \ @@ -5119,6 +5144,14 @@ lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \ -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC) lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK) +libjawt_la_SOURCES = jawt.c +libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS) +libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la +libjawt_la_LDFLAGS = \ + -version-info `grep -v '^\#' $(srcdir)/libtool-version` \ + $(LIBGCJ_LD_SYMBOLIC) + +libjawt_la_LINK = $(LIBLINK) lib_gnu_awt_xlib_la_SOURCES = \ $(xlib_java_source_files) \ $(xlib_nat_source_files) @@ -8418,6 +8451,9 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMet jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo: \ jni/gtk-peer/$(am__dirstamp) \ jni/gtk-peer/$(DEPDIR)/$(am__dirstamp) +jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo: \ + jni/gtk-peer/$(am__dirstamp) \ + jni/gtk-peer/$(DEPDIR)/$(am__dirstamp) jni/classpath/$(am__dirstamp): @$(mkdir_p) jni/classpath @: > jni/classpath/$(am__dirstamp) @@ -15614,6 +15650,8 @@ sysdep/dwarf2-backtrace.lo: sysdep/$(am__dirstamp) \ sysdep/$(DEPDIR)/$(am__dirstamp) libgij.la: $(libgij_la_OBJECTS) $(libgij_la_DEPENDENCIES) $(CXXLINK) -rpath $(toolexeclibdir) $(libgij_la_LDFLAGS) $(libgij_la_OBJECTS) $(libgij_la_LIBADD) $(LIBS) +libjawt.la: $(libjawt_la_OBJECTS) $(libjawt_la_DEPENDENCIES) + $(libjawt_la_LINK) $(am_libjawt_la_rpath) $(libjawt_la_LDFLAGS) $(libjawt_la_OBJECTS) $(libjawt_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @@ -21200,6 +21238,8 @@ mostlyclean-compile: -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.lo -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.$(OBJEXT) -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo + -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.$(OBJEXT) + -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo -rm -f org/ietf/jgss/ChannelBinding.$(OBJEXT) -rm -f org/ietf/jgss/ChannelBinding.lo -rm -f org/ietf/jgss/GSSContext.$(OBJEXT) @@ -21229,6 +21269,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjawt_la-jawt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no-threads.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nogc.Plo@am__quote@ @@ -23988,6 +24029,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkToolkit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gthread-jni.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/ChannelBinding.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/GSSContext.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/GSSCredential.Plo@am__quote@ @@ -24302,6 +24344,13 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo: jni/gtk-peer/gthread-j @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo `test -f 'jni/gtk-peer/gthread-jni.c' || echo '$(srcdir)/'`jni/gtk-peer/gthread-jni.c +jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo: jni/gtk-peer/gtk_jawt.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo `test -f 'jni/gtk-peer/gtk_jawt.c' || echo '$(srcdir)/'`jni/gtk-peer/gtk_jawt.c; \ +@am__fastdepCC_TRUE@ then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jni/gtk-peer/gtk_jawt.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo `test -f 'jni/gtk-peer/gtk_jawt.c' || echo '$(srcdir)/'`jni/gtk-peer/gtk_jawt.c + jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo: jni/classpath/jcl.c @am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo `test -f 'jni/classpath/jcl.c' || echo '$(srcdir)/'`jni/classpath/jcl.c; \ @am__fastdepCC_TRUE@ then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo"; exit 1; fi @@ -24330,6 +24379,13 @@ jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo: jni/classpath/primlib.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo `test -f 'jni/classpath/primlib.c' || echo '$(srcdir)/'`jni/classpath/primlib.c +libjawt_la-jawt.lo: jawt.c +@am__fastdepCC_TRUE@ if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjawt_la_CFLAGS) $(CFLAGS) -MT libjawt_la-jawt.lo -MD -MP -MF "$(DEPDIR)/libjawt_la-jawt.Tpo" -c -o libjawt_la-jawt.lo `test -f 'jawt.c' || echo '$(srcdir)/'`jawt.c; \ +@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libjawt_la-jawt.Tpo" "$(DEPDIR)/libjawt_la-jawt.Plo"; else rm -f "$(DEPDIR)/libjawt_la-jawt.Tpo"; exit 1; fi +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='jawt.c' object='libjawt_la-jawt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjawt_la_CFLAGS) $(CFLAGS) -c -o libjawt_la-jawt.lo `test -f 'jawt.c' || echo '$(srcdir)/'`jawt.c + .cc.o: @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \ @am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \ diff --git a/libjava/include/Makefile.am b/libjava/include/Makefile.am index 5b6177b3d68..089884b5fbd 100644 --- a/libjava/include/Makefile.am +++ b/libjava/include/Makefile.am @@ -5,4 +5,4 @@ AUTOMAKE_OPTIONS = foreign # autoconf2.13's target_alias target_noncanonical = @target_noncanonical@ -tool_include__HEADERS = jni.h jvmpi.h +tool_include__HEADERS = jni.h jawt.h jawt_md.h jvmpi.h diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index 7d2bb461bc9..4c05fcedf5e 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -296,7 +296,7 @@ toolexecdir = @toolexecdir@ toolexeclibdir = @toolexeclibdir@ toolexecmainlibdir = @toolexecmainlibdir@ AUTOMAKE_OPTIONS = foreign -tool_include__HEADERS = jni.h jvmpi.h +tool_include__HEADERS = jni.h jawt.h jawt_md.h jvmpi.h all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am diff --git a/libjava/include/jawt.h b/libjava/include/jawt.h new file mode 100644 index 00000000000..52cde838e69 --- /dev/null +++ b/libjava/include/jawt.h @@ -0,0 +1,92 @@ +/* jawt.h -- the machine-independent parts of the AWT Native Interface + Copyright (C) 2005 Free Software Foundation, Inc. + + This file is 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, 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; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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. */ + + +/* + * The AWT Native Interface allows direct access to native screen + * resources from within a Canvas's paint method. + */ + +#ifndef __jawt_h__ +#define __jawt_h__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#define JAWT_VERSION_1_3 0x10003 + +#define JAWT_LOCK_ERROR 0x1 + +struct _JAWT_DrawingSurfaceInfo +{ + void* platformInfo; +}; + +struct _JAWT_DrawingSurface +{ + jint (JNICALL* Lock) (struct _JAWT_DrawingSurface*); + void (JNICALL* Unlock) (struct _JAWT_DrawingSurface*); + + struct _JAWT_DrawingSurfaceInfo* (JNICALL* GetDrawingSurfaceInfo) (struct _JAWT_DrawingSurface*); + void (JNICALL* FreeDrawingSurfaceInfo) (struct _JAWT_DrawingSurfaceInfo*); + + struct _JAWT_DrawingSurfaceInfo* surface_info; + + /* FIXME: also include bounding rectangle of drawing surface. */ + /* FIXME: also include current clipping region. */ +}; + +struct _JAWT +{ + jint version; + struct _JAWT_DrawingSurface* (JNICALL* GetDrawingSurface) (JNIEnv*, jobject); + void (JNICALL* FreeDrawingSurface) (struct _JAWT_DrawingSurface*); +}; + +typedef struct _JAWT_DrawingSurfaceInfo JAWT_DrawingSurfaceInfo; +typedef struct _JAWT_DrawingSurface JAWT_DrawingSurface; +typedef struct _JAWT JAWT; + +JNIEXPORT jboolean JNICALL JAWT_GetAWT (JNIEnv* env, struct _JAWT* awt); + +#ifdef __cplusplus +} +#endif + +#endif /* __jawt_h__ */ diff --git a/libjava/include/jawt_md.h b/libjava/include/jawt_md.h new file mode 100644 index 00000000000..94abb57863b --- /dev/null +++ b/libjava/include/jawt_md.h @@ -0,0 +1,63 @@ +/* jawt_md.h -- the X11-dependent parts of the AWT Native Interface + Copyright (C) 2005 Free Software Foundation, Inc. + + This file is 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, 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; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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. */ + + +#ifndef __jawt_md_h__ +#define __jawt_md_h__ + +#include <jni.h> +#include <jawt.h> +#include <X11/Xlib.h> + +#ifdef __cplusplus +extern "C" +{ +#endif + +struct _JAWT_X11DrawingSurfaceInfo +{ + Display* display; + Drawable drawable; +}; + +typedef struct _JAWT_X11DrawingSurfaceInfo JAWT_X11DrawingSurfaceInfo; + +#ifdef __cplusplus +} +#endif + +#endif /* __jawt_md_h__ */ diff --git a/libjava/jawt.c b/libjava/jawt.c new file mode 100644 index 00000000000..08cd78cd581 --- /dev/null +++ b/libjava/jawt.c @@ -0,0 +1,156 @@ +/* jawt.c -- X11 implementation of the AWT Native Interface + Copyright (C) 2005 Free Software Foundation, Inc. + + This file is 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, 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; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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. */ + + +#include <jni.h> +#include <jawt.h> +#include <jawt_md.h> +#include "classpath_jawt.h" + +static jint (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface); +static void (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface); +static JAWT_DrawingSurfaceInfo* (JNICALL _Jv_GetDrawingSurfaceInfo) + (JAWT_DrawingSurface* surface); +static void (JNICALL _Jv_FreeDrawingSurfaceInfo) + (JAWT_DrawingSurfaceInfo* surface_info); +static JAWT_DrawingSurface* (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, + jobject canvas); +static void (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface); + +JNIEXPORT jboolean JNICALL +JAWT_GetAWT (JNIEnv* env, JAWT* awt) +{ + jint retrieved_version; + + retrieved_version = classpath_jawt_get_awt_version (); + + if (awt->version > retrieved_version) + return JNI_FALSE; + + awt->GetDrawingSurface = _Jv_GetDrawingSurface; + awt->FreeDrawingSurface = _Jv_FreeDrawingSurface; + + return JNI_TRUE; +} + +/* JAWT_DrawingSurface functions */ + +static jint +(JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface) +{ + /* lock the drawing surface */ + return classpath_jawt_lock (); +} + +static void +(JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface) +{ + classpath_jawt_unlock (); +} + +static JAWT_DrawingSurfaceInfo* +(JNICALL _Jv_GetDrawingSurfaceInfo) (JAWT_DrawingSurface* surface) +{ + if (surface == NULL) + return NULL; + + return surface->surface_info; +} + +static void +(JNICALL _Jv_FreeDrawingSurfaceInfo) (JAWT_DrawingSurfaceInfo* surface_info) +{ + JAWT_X11DrawingSurfaceInfo* surface_info_x11; + + if (surface_info == NULL) + return; + + surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface_info->platformInfo; + + surface_info_x11->display = NULL; + surface_info_x11->drawable = 0; + + free (surface_info); + surface_info = NULL; +} + +/* JAWT functions */ + +static JAWT_DrawingSurface* +(JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, jobject canvas) +{ + JAWT_DrawingSurface* surface; + JAWT_X11DrawingSurfaceInfo* surface_info_x11; + + surface = (JAWT_DrawingSurface*) malloc (sizeof (JAWT_DrawingSurface)); + + if (surface == NULL) + return NULL; + + /* initialize function pointers */ + surface->GetDrawingSurfaceInfo = _Jv_GetDrawingSurfaceInfo; + surface->FreeDrawingSurfaceInfo = _Jv_FreeDrawingSurfaceInfo; + + surface->Lock = _Jv_Lock; + surface->Unlock = _Jv_Unlock; + + surface->surface_info = (JAWT_DrawingSurfaceInfo*) malloc (sizeof (JAWT_DrawingSurfaceInfo)); + + if (surface->surface_info == NULL) + return NULL; + + surface->surface_info->platformInfo = malloc (sizeof (JAWT_X11DrawingSurfaceInfo)); + + if (surface->surface_info->platformInfo == NULL) + return NULL; + + surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface->surface_info->platformInfo; + + surface_info_x11->display = classpath_jawt_get_default_display (env, canvas); + surface_info_x11->drawable = classpath_jawt_get_drawable (env, canvas); + + /* FIXME: also include bounding rectangle of drawing surface */ + /* FIXME: also include current clipping region */ + + return surface; +} + +static void +(JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface) +{ + free (surface); +} diff --git a/libjava/jni/classpath/classpath_jawt.h b/libjava/jni/classpath/classpath_jawt.h new file mode 100644 index 00000000000..51e6af3ea1d --- /dev/null +++ b/libjava/jni/classpath/classpath_jawt.h @@ -0,0 +1,59 @@ +/* classpath_awt.h -- libjawt's interface to the peer library + Copyright (C) 2005 Free Software Foundation, Inc. + + This file is 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, 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; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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. */ + +/* + * libjawt.so is linked directly to the peer library with -l. This + * header declares all the functions that libjawt.so needs -- X-based + * peer libraries wanting to support libjawt.so must implement these + * functions. + */ + +#ifndef __classpath_jawt_h__ +#define __classpath_jawt_h__ + +#include <jni.h> +#include <X11/Xlib.h> + +#define CLASSPATH_JAWT_VERSION 0x10004 + +jint classpath_jawt_get_awt_version (); +Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas); +Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas); +jint classpath_jawt_lock (); +void classpath_jawt_unlock (); + +#endif /* __classpath_jawt_h__ */ diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c new file mode 100644 index 00000000000..6a12fc7954c --- /dev/null +++ b/libjava/jni/gtk-peer/gtk_jawt.c @@ -0,0 +1,132 @@ +/* gtk_jawt.c -- GTK implementation of classpath_jawt.h + Copyright (C) 2005 Free Software Foundation, Inc. + + This file is 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, 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; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 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. */ + + +#include "gtkpeer.h" +#include <gtk/gtk.h> +#include <gdk/gdkx.h> +#include "classpath_jawt.h" + +jint +classpath_jawt_get_awt_version () +{ + return CLASSPATH_JAWT_VERSION; +} + +Display* +classpath_jawt_get_default_display (JNIEnv* env, jobject canvas) +{ + GdkDisplay *display; + Display *xdisplay; + GtkWidget *widget; + void *ptr; + jobject peer; + jclass class_id; + jmethodID method_id; + + /* retrieve peer object */ + class_id = (*env)->GetObjectClass (env, canvas); + + method_id = (*env)->GetMethodID (env, class_id, + "getPeer", + "()Ljava/awt/peer/ComponentPeer;"); + + peer = (*env)->CallObjectMethod (env, canvas, method_id); + + ptr = NSA_GET_PTR (env, peer); + + gdk_threads_enter (); + + widget = GTK_WIDGET (ptr); + + /* widget should be realized before Canvas.paint is called. */ + g_assert (GTK_WIDGET_REALIZED (widget)); + + display = gtk_widget_get_display (widget); + + xdisplay = GDK_DISPLAY_XDISPLAY (display); + + gdk_threads_leave (); + + return xdisplay; +} + +Drawable +classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) +{ + GtkWidget *widget; + int drawable; + void *ptr; + jobject peer; + jclass class_id; + jmethodID method_id; + + class_id = (*env)->GetObjectClass (env, canvas); + + method_id = (*env)->GetMethodID (env, class_id, + "getPeer", + "()Ljava/awt/peer/ComponentPeer;"); + + peer = (*env)->CallObjectMethod (env, canvas, method_id); + + ptr = NSA_GET_PTR (env, peer); + + gdk_threads_enter (); + + widget = GTK_WIDGET (ptr); + + g_assert (GTK_WIDGET_REALIZED (widget)); + + drawable = GDK_DRAWABLE_XID (widget->window); + + gdk_threads_leave (); + + return drawable; +} + +jint +classpath_jawt_lock () +{ + gdk_threads_enter (); + return 0; +} + +void +classpath_jawt_unlock () +{ + gdk_threads_leave (); +} |