Hello Peter, Been a long time since we communicated on this issue. I wasn't able to look into the Kaffe Custom Edition for some time. But this is what I have been able to do in the last few days. I read thru the whole structure of Kaffe. This is what I have done. kaffe-19990929 untarred in the following /root/kaffe-19990929 | |--------+ build-gnu | | |--------+ build-smx-vc++ | | |---------+ build-win32-vc++ | | |---------+ build-wince-vc++ | | |---------+ src Did the necessary modification to the Makefile in /root/kaffe-19990929/build-gnu/libraries/clib/awt so that Kaffe uses the framebuffer instead of X11.(Please have a look at the Makefile attachement). For this, I have installed the GRX2.3 graphics library. The test progs of GRX works just fine and also the REGRESSION in kaffe works fine. But when I run a simple AWT based application it give the following ERROR. I have attached the AFrame.java file also. [root@fobar awt]# kaffe AFrame java.lang.ExceptionInInitializerError: [exception was java.lang.ExceptionInInitializerError: [exception was java.lang.ExceptionInInitializerError: [exception was java.lang.ExceptionInInitializerError: [exception was java.lang.UnsatisfiedLinkError: awt]]]] at AFrame.main(12) Could you point out as to where I have goofed up? Awaiting reply...please reply asap as I will be going on my one month vacation and need to produce some kind of result before that. Wish you a Merry X'mas. Rgds, Ganesh. On Fri, 19 Nov 1999, Peter C. Mehlitz wrote: > Ganesh, > > Please contact <[EMAIL PROTECTED]> to learn more about the Custom ed. With > respect to the "standalone AWT" (the one which doesn't use a native windowing > system), I can give you more technical infos. > > This thing is a complete AWT (including some optional, customizable desktop > functionality), which is based on a macro interface to a standard 2D > graphics library (typically contains about 1500 loc), looking like this: > > ... > /* > * Draw line > * gr Graphics object used for drawing > * x0,y0 start point > * x1,y1 end point > */ > #define LINE_DRAW(_gr,_x0,_y0,_x1,_y1) \ > MGL_lineCoord( _x0,_y0,_x1,_y1) > ... > > My reference platform for initial development has been GRX (because it was > avail for DOS, Linux svgalib and X), but there have been other ports, too > (Allegro, for instance). I'm currently in the process of porting it to MGL. > New ports typically take about 4 weeks, depending on the development platform > and the target lib. > > The whole AWT is a JNI lib, with nativ state caching for increased performance. > > -- Peter > > -- > Peter C. Mehlitz Tel: +1 510 704 1527 > Transvirtual Technologies, Inc., Fax: +1 510 704 1893 > Berkeley, CA, USA. Email: [EMAIL PROTECTED] >
# Generated automatically from Makefile.in by configure. # generic AWT support for standard Java libraries # Changed on 18/12/1999. Originaly used for X but modified for GRX library # Copyright (c) 1998 # Transvirtual Technologies, Inc. All rights reserved. # # See the file "lib-license.terms" for information on usage and redistribution # of this file. VPATH= ./../../../../src/libraries/clib/awt:./../../../../src/libraries/clib/awt/no-native-wm/grx srcdir= ./../../../../src/libraries/clib/awt/ awtsubdir= no-native-wm/grx prefix= /usr/local exec_prefix= ${prefix} nativedir= ${prefix}/share/kaffe/lib/i386-linux CC= gcc LD= ld AR= ar cr RANLIB= ranlib INCLUDES= -I$(srcdir) -I../../../include -I$(srcdir)/../../../include -I../../../config -I$(srcdir)/../../../config -I$(srcdir)/$(awtsubdir) -I/usr/src/grx-2.3/include INCPATH= -I/root/kaffe-19990929/build-gnu/./../src/kaffe/kaffevm -I/root/kaffe-19990929/build-gnu/./../src/kaffe/kaffevm/systems/unix-jthreads LIBPATH= CFLAGS= -g -O2 WALL= -Wall ALL_CFLAGS= $(CFLAGS) $(WALL) $(INCLUDES) $(INCPATH) $(EXTRA_CFLAGS) INSTALL= /usr/bin/install -c INSTALL_DATA= ${INSTALL} -m 644 MKDIR= mkdir -p LN= ln -s TOUCH= touch DLLTOOL= true PIC= -fpic LDFLAGS= -shared LIBS= -lvga -lpng -ljpeg -lXext -lX11 -lz -ldl -lm -lc -lpthread -L/usr/src/grx-2.3/lib/unix -lgrx20 LDTAIL= -L/usr/src/grx-2.3/lib/unix -lgrx20 -ljpeg -lpng -lz KVER= 1.00 OBJEXT= .o LIBEXT= .so LIBNAME= libawt LIB= $(LIBNAME)$(LIBEXT) LIBV= $(LIBNAME)$(LIBEXT).$(KVER) WRAPPER_CMD= "s%^\(Java_[^(]*\).*$$%KAFFE_NATIVE(\1)%p" OBJECT= all: $(LIB) # GRX based AWT support for standard Java libraries # # Copyright (c) 1998 # Transvirtual Technologies, Inc. All rights reserved. # # See the file "lib-license.terms" for information on usage and redistribution # of this file. TDIR=no-native-wm/grx CDIR=no-native-wm # files containing exported (native) methods EXPORTS=$(srcdir)/$(CDIR)/*.c $(srcdir)/$(TDIR)/*.c OBJECT+=\ $(TDIR)/tlk$(OBJEXT) \ $(TDIR)/wnd$(OBJEXT) \ $(TDIR)/evt$(OBJEXT) \ $(TDIR)/gra$(OBJEXT) \ $(TDIR)/fnt$(OBJEXT) \ $(TDIR)/clr$(OBJEXT) \ $(TDIR)/img$(OBJEXT) \ $(CDIR)/imgjpeg$(OBJEXT) \ $(CDIR)/imgpng$(OBJEXT) \ $(CDIR)/cbd$(OBJEXT) \ $(CDIR)/geometry$(OBJEXT) HDRS=$(TDIR)/toolkit.h \ $(CDIR)/toolkit-common-pre.h \ $(CDIR)/toolkit-common-post.h \ $(TDIR)/grlib.def $(TDIR)/tlk$(OBJEXT): $(TDIR)/tlk.c $(HDRS) $(TDIR)/wnd$(OBJEXT): $(TDIR)/wnd.c $(CDIR)/wnd-common.c $(HDRS) $(TDIR)/evt$(OBJEXT): $(TDIR)/evt.c $(CDIR)/evt-common.c $(HDRS) $(TDIR)/gra$(OBJEXT): $(TDIR)/gra.c $(CDIR)/gra-common.c $(HDRS) $(TDIR)/fnt$(OBJEXT): $(TDIR)/fnt.c $(HDRS) $(TDIR)/clr$(OBJEXT): $(TDIR)/clr.c $(CDIR)/clr-common.c $(HDRS) $(TDIR)/img$(OBJEXT): $(TDIR)/img.c $(CDIR)/img-common.c $(HDRS) $(TDIR)/imggif$(OBJEXT): $(TDIR)/imggif.c $(HDRS) $(TDIR)/imgjpeg$(OBJEXT): $(TDIR)/imgjpeg.c $(HDRS) $(TDIR)/imgpng$(OBJEXT): $(TDIR)/imgpng.c $(HDRS) $(TDIR)/cbd$(OBJEXT): $(TDIR)/cbd.c $(HDRS) $(TDIR)/geometry$(OBJEXT): $(TDIR)/geometry.c $(HDRS) $(LIB): .dir-stamp $(OBJECT) lib.exp external_wrappers.h $(LD) $(LDFLAGS) -o $(LIB) $(OBJECT) $(LIBPATH) $(LDTAIL) .dir-stamp: test -d $(awtsubdir) || $(MKDIR) $(awtsubdir) $(TOUCH) .dir-stamp .c$(OBJEXT): $(CC) $(ALL_CFLAGS) -c $(PIC) $< -o $*.o external_wrappers.h: $(OBJECT) sed -n $(WRAPPER_CMD) $(EXPORTS) > external_wrappers.h clean: rm -f $(LIB) $(OBJECT) lib.exp external_wrappers.h distclean: clean rm -f Makefile .dir-stamp -rmdir $(awtsubdir) no-native-wm install: test -d $(nativedir) || $(MKDIR) $(nativedir) rm -f $(nativedir)/$(LIB) $(nativedir)/$(LIBV) $(INSTALL_DATA) $(LIB) $(nativedir)/$(LIBV) $(LN) $(LIBV) $(nativedir)/$(LIB) lib.exp: $(DLLTOOL) --def $(srcdir)/$(LIBNAME).def --output-exp lib.exp --output-lib $(LIBNAME).a --dllname $(LIB) touch lib.exp
import java.awt.*; import java.lang.*; public class AFrame { public static void main(String[] args) { Frame af = new Frame("MyFrame"); af.setSize(new Dimension(400,400)); af.show(); System.out.println("hello.."); } }