File eclipse-libswt-cairo1.0-3.patch of Package eclipse

--- plugins/org.eclipse.swt.gtk.linux.ppc/build.xml	2005-10-02 00:08:39.000000000 +0200
+++ plugins/org.eclipse.swt.gtk.linux.ppc/build.xml	2005-10-02 00:10:45.000000000 +0200
@@ -14,6 +14,7 @@
 		<property name="destination" value="${basedir}"/>
 		<property name="plugindir" value="../org.eclipse.swt"/>
 		<property name="bootclasspath" value=""/>
+		<property name="toolsplugindir" value="../org.eclipse.swt.tools"/>
 		<property name="javacVerbose" value="true"/>
 	</target>
 
@@ -37,64 +38,64 @@
 		<delete dir="${temp.folder}/@dot.bin"/>
 		<mkdir dir="${temp.folder}/@dot.bin"/>
 		<javac destdir="${temp.folder}/@dot.bin" verbose="${javacVerbose}" debug="on" failonerror="no" bootclasspath="${bootclasspath}" source="1.3" target="1.2">
-			<src path="${plugindir}/Eclipse SWT/cairo/"/>
-			<src path="${plugindir}/Eclipse SWT/common/"/>
-			<src path="${plugindir}/Eclipse SWT/common_j2se/"/>
-			<src path="${plugindir}/Eclipse SWT/emulated/bidi/"/>
-			<src path="${plugindir}/Eclipse SWT/emulated/coolbar/"/>
-			<src path="${plugindir}/Eclipse SWT/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Accessibility/common/"/>
-			<src path="${plugindir}/Eclipse SWT Accessibility/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT AWT/common/"/>
-			<src path="${plugindir}/Eclipse SWT AWT/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Browser/common/"/>
-			<src path="${plugindir}/Eclipse SWT Browser/mozilla/"/>
-			<src path="${plugindir}/Eclipse SWT Custom Widgets/common/"/>
-			<src path="${plugindir}/Eclipse SWT Drag and Drop/common/"/>
-			<src path="${plugindir}/Eclipse SWT Drag and Drop/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT PI/cairo/"/>
-			<src path="${plugindir}/Eclipse SWT PI/common/"/>
-			<src path="${plugindir}/Eclipse SWT PI/common_j2se/"/>
-			<src path="${plugindir}/Eclipse SWT PI/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Mozilla/common/"/>
-			<src path="${plugindir}/Eclipse SWT Mozilla/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Printing/common/"/>
-			<src path="${plugindir}/Eclipse SWT Printing/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Program/cde/"/>
-			<src path="${plugindir}/Eclipse SWT Program/common/"/>
-			<src path="${plugindir}/Eclipse SWT Program/gnome/"/>
-			<src path="${plugindir}/Eclipse SWT Program/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT/cairo/"/>
+			<src path="${basedir}/src/Eclipse SWT/common/"/>
+			<src path="${basedir}/src/Eclipse SWT/common_j2se/"/>
+			<src path="${basedir}/src/Eclipse SWT/emulated/bidi/"/>
+			<src path="${basedir}/src/Eclipse SWT/emulated/coolbar/"/>
+			<src path="${basedir}/src/Eclipse SWT/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Accessibility/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Accessibility/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT AWT/common/"/>
+			<src path="${basedir}/src/Eclipse SWT AWT/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Browser/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Browser/mozilla/"/>
+			<src path="${basedir}/src/Eclipse SWT Custom Widgets/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Drag and Drop/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Drag and Drop/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Mozilla/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Mozilla/common/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/cairo/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/common/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/common_j2se/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Printing/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Printing/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/cde/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/gnome/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/gtk/"/>
 		</javac>
         <property name="includes" value=""/>
         <property name="excludes" value="**/*.java,**/library/,**/package.htm*"/>
 		<copy todir="${temp.folder}/@dot.bin">
-			<fileset dir="${plugindir}/Eclipse SWT/cairo/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/mozilla/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/cairo/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/bidi/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/coolbar/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/mozilla/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Custom Widgets/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common_j2se/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gtk/" includes="${includes}" excludes="${excludes}"/>
 		</copy>
 
 		<mkdir dir="${build.result.folder}/@dot"/>
@@ -108,57 +109,117 @@
 
 	<target name="build.jars" depends="init">
 		<available property="@dot" file="${build.result.folder}/@dot"/>
+		<available property="source.present" file="${basedir}/src" type="dir" />
+		<antcall target="copy.source" />
 		<antcall target="@dot"/>
 	</target>
 
+	<target name="copy.source" unless="source.present">
+			<echo>Copying source from org.eclipse.swt project to folder ${basedir}/src folder ${temp.folder}.</echo>
+			<delete dir="${basedir}/src"/>
+			<mkdir dir="${basedir}/src"/>
+		
+			<!-- Copy the existing 32 bit SWT source folders to the 64 bit source folder -->
+			<copy todir="${basedir}/src">
+				<fileset dir="${plugindir}" includes="Eclipse*/**"/>
+			</copy>
+	</target>
+	
 	<target name="src.zip" depends="init" unless="src.zip">
 		<mkdir dir="${build.result.folder}/"/>
 		<zip zipfile="${build.result.folder}/src.zip">
-			<fileset dir="${plugindir}/Eclipse SWT/cairo/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/mozilla/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="**/*.properties" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="**/version.txt" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/cairo/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/bidi/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/coolbar/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/mozilla/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Custom Widgets/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common_j2se/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="**/*.properties" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="**/version.txt" excludes=""/>
 			<fileset dir="${basedir}" includes="about.html,about_files/" excludes=""/>
 		</zip>
 	</target>
 
-	<target name="build.sources" depends="init">
+	<target name="build.sources" depends="build.cfiles">
 		<available property="src.zip" file="${build.result.folder}/src.zip"/>
 		<antcall target="src.zip"/>
 	</target>
 
+	<target name="build.cfiles" depends="build.jars">
+		<!--compile the jar in org.eclipse.swt.tools-->
+		<ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="build.jars" />
+
+		<!-- generate the C code from the SWT PI java classes -->
+		<!-- assumes the swttools.jar has already been built  -->
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.gtk.OS"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.accessibility.gtk.ATK"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.cairo.Cairo"/><arg value="${basedir}/src/Eclipse SWT PI/cairo/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.gnome.GNOME"/><arg value="${basedir}/src/Eclipse SWT Program/gnome/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.cde.CDE"/><arg value="${basedir}/src/Eclipse SWT Program/cde/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.mozilla.XPCOM"/><arg value="${basedir}/src/Eclipse SWT Mozilla/common/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+
+		<!-- copy all the files into /library folders into a temporary bin/library folder  -->
+		<!-- since this is the structure assumed by the native makefile and given that     -->
+		<!-- this script needs to work outside of the Eclipse workspace without modifying  -->
+		<!-- the content of the org.eclipse.swt project.                                   -->
+		<mkdir dir="${basedir}/src/bin/library"/>
+		<copy todir="${basedir}/src/bin/library">
+			<fileset dir="${basedir}/src/Eclipse SWT/common/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/library"/>
+		</copy>
+	</target>
+
+	<target name="build.nativeLibraries" depends="build.cfiles" description="Build native libraries without changing the content of org.eclipse.swt">
+		<property name="sourcedir" value="${basedir}/src/bin/library" />
+	    <property name="lib_destdir" value="${sourcedir}/../../../../${fragment}" />
+		<tstamp/>
+		<exec dir="${sourcedir}" executable="sh">
+			<arg line="./build.sh"/>
+			<arg line="clean"/>
+		</exec>
+		<mkdir dir="${lib_destdir}" />
+		<exec dir="${sourcedir}" executable="sh">
+			<arg line="./build.sh"/>
+			<arg line="all"/>
+		</exec>
+		<copy todir="${lib_destdir}">
+			<fileset dir="${sourcedir}/" includes="*.so"/>
+		</copy>
+	</target>
+
 	<target name="build.zips" depends="init">
 	</target>
 
@@ -212,6 +273,8 @@
 		<delete file="${plugin.destination}/${full.name}.jar"/>
 		<delete file="${plugin.destination}/${full.name}.zip"/>
 		<delete dir="${temp.folder}"/>
+		<!-- delete swttools.jar so that it will be compiled in the build.jars target -->
+		<ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="clean"/>
 	</target>
 
 	<target name="refresh" depends="init" if="eclipse.running">
--- plugins/org.eclipse.swt.gtk.linux.x86/build.xml	2005-10-02 00:09:01.000000000 +0200
+++ plugins/org.eclipse.swt.gtk.linux.x86/build.xml	2005-10-02 00:10:45.000000000 +0200
@@ -14,6 +14,7 @@
 		<property name="destination" value="${basedir}"/>
 		<property name="plugindir" value="../org.eclipse.swt"/>
 		<property name="bootclasspath" value=""/>
+		<property name="toolsplugindir" value="../org.eclipse.swt.tools"/>
 		<property name="javacVerbose" value="true"/>
 	</target>
 
@@ -37,64 +38,64 @@
 		<delete dir="${temp.folder}/@dot.bin"/>
 		<mkdir dir="${temp.folder}/@dot.bin"/>
 		<javac destdir="${temp.folder}/@dot.bin" verbose="${javacVerbose}" debug="on" failonerror="no" bootclasspath="${bootclasspath}" source="1.3" target="1.2">
-			<src path="${plugindir}/Eclipse SWT/cairo/"/>
-			<src path="${plugindir}/Eclipse SWT/common/"/>
-			<src path="${plugindir}/Eclipse SWT/common_j2se/"/>
-			<src path="${plugindir}/Eclipse SWT/emulated/bidi/"/>
-			<src path="${plugindir}/Eclipse SWT/emulated/coolbar/"/>
-			<src path="${plugindir}/Eclipse SWT/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Accessibility/common/"/>
-			<src path="${plugindir}/Eclipse SWT Accessibility/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT AWT/common/"/>
-			<src path="${plugindir}/Eclipse SWT AWT/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Browser/common/"/>
-			<src path="${plugindir}/Eclipse SWT Browser/mozilla/"/>
-			<src path="${plugindir}/Eclipse SWT Custom Widgets/common/"/>
-			<src path="${plugindir}/Eclipse SWT Drag and Drop/common/"/>
-			<src path="${plugindir}/Eclipse SWT Drag and Drop/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT PI/cairo/"/>
-			<src path="${plugindir}/Eclipse SWT PI/common/"/>
-			<src path="${plugindir}/Eclipse SWT PI/common_j2se/"/>
-			<src path="${plugindir}/Eclipse SWT PI/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Mozilla/common/"/>
-			<src path="${plugindir}/Eclipse SWT Mozilla/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Printing/common/"/>
-			<src path="${plugindir}/Eclipse SWT Printing/gtk/"/>
-			<src path="${plugindir}/Eclipse SWT Program/cde/"/>
-			<src path="${plugindir}/Eclipse SWT Program/common/"/>
-			<src path="${plugindir}/Eclipse SWT Program/gnome/"/>
-			<src path="${plugindir}/Eclipse SWT Program/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT/cairo/"/>
+			<src path="${basedir}/src/Eclipse SWT/common/"/>
+			<src path="${basedir}/src/Eclipse SWT/common_j2se/"/>
+			<src path="${basedir}/src/Eclipse SWT/emulated/bidi/"/>
+			<src path="${basedir}/src/Eclipse SWT/emulated/coolbar/"/>
+			<src path="${basedir}/src/Eclipse SWT/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Accessibility/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Accessibility/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT AWT/common/"/>
+			<src path="${basedir}/src/Eclipse SWT AWT/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Browser/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Browser/mozilla/"/>
+			<src path="${basedir}/src/Eclipse SWT Custom Widgets/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Drag and Drop/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Drag and Drop/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Mozilla/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Mozilla/common/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/cairo/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/common/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/common_j2se/"/>
+			<src path="${basedir}/src/Eclipse SWT PI/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Printing/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Printing/gtk/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/cde/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/common/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/gnome/"/>
+			<src path="${basedir}/src/Eclipse SWT Program/gtk/"/>
 		</javac>
         <property name="includes" value=""/>
         <property name="excludes" value="**/*.java,**/library/,**/package.htm*"/>
 		<copy todir="${temp.folder}/@dot.bin">
-			<fileset dir="${plugindir}/Eclipse SWT/cairo/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/mozilla/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/gtk/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/common/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/" includes="${includes}" excludes="${excludes}"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/cairo/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/bidi/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/coolbar/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/mozilla/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Custom Widgets/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common_j2se/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/gtk/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/common/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/" includes="${includes}" excludes="${excludes}"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gtk/" includes="${includes}" excludes="${excludes}"/>
 		</copy>
 
 		<mkdir dir="${build.result.folder}/@dot"/>
@@ -108,57 +109,117 @@
 
 	<target name="build.jars" depends="init">
 		<available property="@dot" file="${build.result.folder}/@dot"/>
+		<available property="source.present" file="${basedir}/src" type="dir" />
+		<antcall target="copy.source" />
 		<antcall target="@dot"/>
 	</target>
 
+	<target name="copy.source" unless="source.present">
+			<echo>Copying source from org.eclipse.swt project to folder ${basedir}/src folder ${temp.folder}.</echo>
+			<delete dir="${basedir}/src"/>
+			<mkdir dir="${basedir}/src"/>
+		
+			<!-- Copy the existing 32 bit SWT source folders to the 64 bit source folder -->
+			<copy todir="${basedir}/src">
+				<fileset dir="${plugindir}" includes="Eclipse*/**"/>
+			</copy>
+	</target>
+	
 	<target name="src.zip" depends="init" unless="src.zip">
 		<mkdir dir="${build.result.folder}/"/>
 		<zip zipfile="${build.result.folder}/src.zip">
-			<fileset dir="${plugindir}/Eclipse SWT/cairo/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/bidi/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/emulated/coolbar/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Accessibility/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT AWT/gtk/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Browser/mozilla/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Custom Widgets/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Drag and Drop/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/common/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Mozilla/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/cairo/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/common_j2se/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT PI/gtk/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Printing/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/cde/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/common/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gnome/library/"/>
-			<fileset dir="${plugindir}/Eclipse SWT Program/gtk/" includes="**/*.java" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common_j2se/" includes="**/*.properties" excludes=""/>
-			<fileset dir="${plugindir}/Eclipse SWT/common/" includes="**/version.txt" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/cairo/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/bidi/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/emulated/coolbar/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Accessibility/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Browser/mozilla/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Custom Widgets/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Drag and Drop/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/common_j2se/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Printing/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/common/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gtk/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/" includes="**/*.java" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/library/"/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common_j2se/" includes="**/*.properties" excludes=""/>
+			<fileset dir="${basedir}/src/Eclipse SWT/common/" includes="**/version.txt" excludes=""/>
 			<fileset dir="${basedir}" includes="about.html,about_files/" excludes=""/>
 		</zip>
 	</target>
 
-	<target name="build.sources" depends="init">
+	<target name="build.sources" depends="build.cfiles">
 		<available property="src.zip" file="${build.result.folder}/src.zip"/>
 		<antcall target="src.zip"/>
 	</target>
 
+	<target name="build.cfiles" depends="build.jars">
+		<!--compile the jar in org.eclipse.swt.tools-->
+		<ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="build.jars" />
+
+		<!-- generate the C code from the SWT PI java classes -->
+		<!-- assumes the swttools.jar has already been built  -->
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.gtk.OS"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.accessibility.gtk.ATK"/><arg value="${basedir}/src/Eclipse SWT PI/gtk/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.cairo.Cairo"/><arg value="${basedir}/src/Eclipse SWT PI/cairo/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.gnome.GNOME"/><arg value="${basedir}/src/Eclipse SWT Program/gnome/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.cde.CDE"/><arg value="${basedir}/src/Eclipse SWT Program/cde/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+		<java classname="org.eclipse.swt.tools.internal.JNIGeneratorApp" classpath="${toolsplugindir}/bin:${toolsplugindir}/swttools.jar:${basedir}/swt.jar"><arg value="org.eclipse.swt.internal.mozilla.XPCOM"/><arg value="${basedir}/src/Eclipse SWT Mozilla/common/library/"/><arg value="${build.result.folder}/swt.jar"/></java>
+
+		<!-- copy all the files into /library folders into a temporary bin/library folder  -->
+		<!-- since this is the structure assumed by the native makefile and given that     -->
+		<!-- this script needs to work outside of the Eclipse workspace without modifying  -->
+		<!-- the content of the org.eclipse.swt project.                                   -->
+		<mkdir dir="${basedir}/src/bin/library"/>
+		<copy todir="${basedir}/src/bin/library">
+			<fileset dir="${basedir}/src/Eclipse SWT/common/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT AWT/gtk/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Mozilla/common/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/cairo/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT PI/gtk/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/cde/library"/>
+			<fileset dir="${basedir}/src/Eclipse SWT Program/gnome/library"/>
+		</copy>
+	</target>
+
+	<target name="build.nativeLibraries" depends="build.cfiles" description="Build native libraries without changing the content of org.eclipse.swt">
+		<property name="sourcedir" value="${basedir}/src/bin/library" />
+	    <property name="lib_destdir" value="${sourcedir}/../../../../${fragment}" />
+		<tstamp/>
+		<exec dir="${sourcedir}" executable="sh">
+			<arg line="./build.sh"/>
+			<arg line="clean"/>
+		</exec>
+		<mkdir dir="${lib_destdir}" />
+		<exec dir="${sourcedir}" executable="sh">
+			<arg line="./build.sh"/>
+			<arg line="all"/>
+		</exec>
+		<copy todir="${lib_destdir}">
+			<fileset dir="${sourcedir}/" includes="*.so"/>
+		</copy>
+	</target>
+
 	<target name="build.zips" depends="init">
 	</target>
 
@@ -217,6 +278,8 @@
 		<delete file="${plugin.destination}/${full.name}.jar"/>
 		<delete file="${plugin.destination}/${full.name}.zip"/>
 		<delete dir="${temp.folder}"/>
+		<!-- delete swttools.jar so that it will be compiled in the build.jars target -->
+		<ant antfile="build.xml" dir="${toolsplugindir}" inheritAll="false" target="clean"/>
 	</target>
 
 	<target name="refresh" depends="init" if="eclipse.running">
openSUSE Build Service is sponsored by