#!/bin/sh # Extract the source and compiled version of SWT mkdir swt_temp cd swt_temp jar -xvf ../swtsrc.zip jar -xvf ../swt.jar # Remove some java files we don't even want to try and compile rm org/eclipse/swt/custom/TableCursor.java rm org/eclipse/swt/custom/DisplayRenderer.java rm org/eclipse/swt/widgets/Decorations.java rm org/eclipse/swt/widgets/Control.java rm org/eclipse/swt/internal/awt/win32/SWT_AWT.java # Patch FileFormat so it doesn't crash with the "Class.forName()" problem patch -d org/eclipse/swt/internal/image < ../FileFormat.patch # Compile all the Java files SWT_CLASSES=`find . -name "*.java" -print |sed 's/^\.\///'` for i in $SWT_CLASSES do OBJ_FILE=`echo $i |sed 's/\//_/g' |sed 's/\.java$/\.o/'` echo Compiling $i to $OBJ_FILE gcj --classpath=. -fjni -g0 -c -o $OBJ_FILE $i done # Compile the classes for the java we can't build from source echo Compiling non-compilable source from classes gcj --classpath=. -fjni -g0 -c -o TableCursor.o \ org/eclipse/swt/custom/TableCursor.* gcj --classpath=. -fjni -g0 -c -o DisplayRenderer.o \ org/eclipse/swt/custom/DisplayRenderer.* gcj --classpath=. -fjni -g0 -c -o Decorations.o \ org/eclipse/swt/widgets/Decorations.* gcj --classpath=. -fjni -g0 -c -o Control.o \ org/eclipse/swt/widgets/Control.* gcj -c --resource=org.eclipse.swt.internal.SWTMessages \ -o SWTMessages.o org/eclipse/swt/internal/SWTMessages.properties echo Creating lib-org-eclipse-swt.a ar -rcs lib-org-eclipse-swt.a *.o ranlib lib-org-eclipse-swt.a echo Cleaning up cd .. mv swt_temp/lib-org-eclipse-swt.a . rm -r swt_temp echo Done