274529 - All build.xml files must be updated to get the .api_description file
diff --git a/bundles/org.eclipse.swt.carbon.macosx/.project b/bundles/org.eclipse.swt.carbon.macosx/.project
index b6cdf9f..962dcd0 100644
--- a/bundles/org.eclipse.swt.carbon.macosx/.project
+++ b/bundles/org.eclipse.swt.carbon.macosx/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.carbon.macosx/build.xml b/bundles/org.eclipse.swt.carbon.macosx/build.xml
index a86fec8..1d680e3 100755
--- a/bundles/org.eclipse.swt.carbon.macosx/build.xml
+++ b/bundles/org.eclipse.swt.carbon.macosx/build.xml
@@ -262,6 +262,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -347,4 +355,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.cocoa.macosx.x86_64/.project b/bundles/org.eclipse.swt.cocoa.macosx.x86_64/.project
index 56f60c3..9993d4b 100644
--- a/bundles/org.eclipse.swt.cocoa.macosx.x86_64/.project
+++ b/bundles/org.eclipse.swt.cocoa.macosx.x86_64/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.cocoa.macosx.x86_64/build.xml b/bundles/org.eclipse.swt.cocoa.macosx.x86_64/build.xml
index 29cfa7d..9def31a 100755
--- a/bundles/org.eclipse.swt.cocoa.macosx.x86_64/build.xml
+++ b/bundles/org.eclipse.swt.cocoa.macosx.x86_64/build.xml
@@ -300,6 +300,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -386,4 +394,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.cocoa.macosx/.project b/bundles/org.eclipse.swt.cocoa.macosx/.project
index 56f60c3..9993d4b 100644
--- a/bundles/org.eclipse.swt.cocoa.macosx/.project
+++ b/bundles/org.eclipse.swt.cocoa.macosx/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.cocoa.macosx/build.xml b/bundles/org.eclipse.swt.cocoa.macosx/build.xml
index 999aa7c..6ba5905 100755
--- a/bundles/org.eclipse.swt.cocoa.macosx/build.xml
+++ b/bundles/org.eclipse.swt.cocoa.macosx/build.xml
@@ -264,6 +264,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -349,4 +357,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.gtk.hpux.ia64/.project b/bundles/org.eclipse.swt.gtk.hpux.ia64/.project
index 6ad8eb1..068956e 100644
--- a/bundles/org.eclipse.swt.gtk.hpux.ia64/.project
+++ b/bundles/org.eclipse.swt.gtk.hpux.ia64/.project
@@ -5,7 +5,13 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.hpux.ia64/build.xml b/bundles/org.eclipse.swt.gtk.hpux.ia64/build.xml
index 9302662..74cca44 100755
--- a/bundles/org.eclipse.swt.gtk.hpux.ia64/build.xml
+++ b/bundles/org.eclipse.swt.gtk.hpux.ia64/build.xml
@@ -401,6 +401,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -486,4 +494,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
-</project>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
+</project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.gtk.linux.ia64/.project b/bundles/org.eclipse.swt.gtk.linux.ia64/.project
index 92a9291..f91d05f 100644
--- a/bundles/org.eclipse.swt.gtk.linux.ia64/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.ia64/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.ia64/build.xml b/bundles/org.eclipse.swt.gtk.linux.ia64/build.xml
index 973e182..2b2e401 100644
--- a/bundles/org.eclipse.swt.gtk.linux.ia64/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.ia64/build.xml
@@ -389,6 +389,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -474,4 +482,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.linux.ppc/.project b/bundles/org.eclipse.swt.gtk.linux.ppc/.project
index 1357bc9..c902d5f 100644
--- a/bundles/org.eclipse.swt.gtk.linux.ppc/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.ppc/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.ppc/build.xml b/bundles/org.eclipse.swt.gtk.linux.ppc/build.xml
index 5f03aad..99db46d 100644
--- a/bundles/org.eclipse.swt.gtk.linux.ppc/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.ppc/build.xml
@@ -285,6 +285,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -370,4 +378,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.gtk.linux.s390/.project b/bundles/org.eclipse.swt.gtk.linux.s390/.project
index d65fbc2..78e2591 100644
--- a/bundles/org.eclipse.swt.gtk.linux.s390/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.s390/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.s390/build.xml b/bundles/org.eclipse.swt.gtk.linux.s390/build.xml
index b7895ed..65ee7fa 100644
--- a/bundles/org.eclipse.swt.gtk.linux.s390/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.s390/build.xml
@@ -310,6 +310,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -395,4 +403,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.linux.s390x/.project b/bundles/org.eclipse.swt.gtk.linux.s390x/.project
index f3b0684..bf411ad 100644
--- a/bundles/org.eclipse.swt.gtk.linux.s390x/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.s390x/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.s390x/build.xml b/bundles/org.eclipse.swt.gtk.linux.s390x/build.xml
index 55d3c0f..cc59c4d 100644
--- a/bundles/org.eclipse.swt.gtk.linux.s390x/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.s390x/build.xml
@@ -397,6 +397,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -482,4 +490,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.linux.x86/.project b/bundles/org.eclipse.swt.gtk.linux.x86/.project
index eb46fa0..ef92bca 100644
--- a/bundles/org.eclipse.swt.gtk.linux.x86/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.x86/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.x86/build.xml b/bundles/org.eclipse.swt.gtk.linux.x86/build.xml
index afe1c8c..f032dfd 100644
--- a/bundles/org.eclipse.swt.gtk.linux.x86/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.x86/build.xml
@@ -312,6 +312,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -397,4 +405,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.linux.x86_64/.project b/bundles/org.eclipse.swt.gtk.linux.x86_64/.project
index 0e2106e..79c840e 100644
--- a/bundles/org.eclipse.swt.gtk.linux.x86_64/.project
+++ b/bundles/org.eclipse.swt.gtk.linux.x86_64/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.linux.x86_64/build.xml b/bundles/org.eclipse.swt.gtk.linux.x86_64/build.xml
index 0dbf44b..24dfbbf 100644
--- a/bundles/org.eclipse.swt.gtk.linux.x86_64/build.xml
+++ b/bundles/org.eclipse.swt.gtk.linux.x86_64/build.xml
@@ -319,6 +319,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -405,4 +413,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.solaris.sparc/.project b/bundles/org.eclipse.swt.gtk.solaris.sparc/.project
index 60ed9d6..7ae0d0e 100644
--- a/bundles/org.eclipse.swt.gtk.solaris.sparc/.project
+++ b/bundles/org.eclipse.swt.gtk.solaris.sparc/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.solaris.sparc/build.xml b/bundles/org.eclipse.swt.gtk.solaris.sparc/build.xml
index fbae7e4..7b69032 100644
--- a/bundles/org.eclipse.swt.gtk.solaris.sparc/build.xml
+++ b/bundles/org.eclipse.swt.gtk.solaris.sparc/build.xml
@@ -284,6 +284,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -369,4 +377,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.gtk.solaris.x86/.project b/bundles/org.eclipse.swt.gtk.solaris.x86/.project
index 60ed9d6..7ae0d0e 100644
--- a/bundles/org.eclipse.swt.gtk.solaris.x86/.project
+++ b/bundles/org.eclipse.swt.gtk.solaris.x86/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.gtk.solaris.x86/build.xml b/bundles/org.eclipse.swt.gtk.solaris.x86/build.xml
index 42331ff..aeef76b 100644
--- a/bundles/org.eclipse.swt.gtk.solaris.x86/build.xml
+++ b/bundles/org.eclipse.swt.gtk.solaris.x86/build.xml
@@ -277,6 +277,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="publish.bin.parts" depends="init" if="p2.publish.parts">
@@ -372,4 +380,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.motif.aix.ppc/.project b/bundles/org.eclipse.swt.motif.aix.ppc/.project
index 222982d..d926061 100644
--- a/bundles/org.eclipse.swt.motif.aix.ppc/.project
+++ b/bundles/org.eclipse.swt.motif.aix.ppc/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.motif.aix.ppc/build.xml b/bundles/org.eclipse.swt.motif.aix.ppc/build.xml
index b0d6348..2e64e12 100644
--- a/bundles/org.eclipse.swt.motif.aix.ppc/build.xml
+++ b/bundles/org.eclipse.swt.motif.aix.ppc/build.xml
@@ -318,6 +318,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -403,4 +411,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.motif.hpux.PA_RISC/.project b/bundles/org.eclipse.swt.motif.hpux.PA_RISC/.project
index b823091..c51dec8 100644
--- a/bundles/org.eclipse.swt.motif.hpux.PA_RISC/.project
+++ b/bundles/org.eclipse.swt.motif.hpux.PA_RISC/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.motif.hpux.PA_RISC/build.xml b/bundles/org.eclipse.swt.motif.hpux.PA_RISC/build.xml
index d89c33c..c22c6d4 100644
--- a/bundles/org.eclipse.swt.motif.hpux.PA_RISC/build.xml
+++ b/bundles/org.eclipse.swt.motif.hpux.PA_RISC/build.xml
@@ -317,6 +317,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -391,4 +399,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.motif.hpux.ia64_32/.project b/bundles/org.eclipse.swt.motif.hpux.ia64_32/.project
index 673b7ee..5ceb9ac 100644
--- a/bundles/org.eclipse.swt.motif.hpux.ia64_32/.project
+++ b/bundles/org.eclipse.swt.motif.hpux.ia64_32/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.motif.hpux.ia64_32/build.xml b/bundles/org.eclipse.swt.motif.hpux.ia64_32/build.xml
index 0d84c12..533dad6 100644
--- a/bundles/org.eclipse.swt.motif.hpux.ia64_32/build.xml
+++ b/bundles/org.eclipse.swt.motif.hpux.ia64_32/build.xml
@@ -318,6 +318,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -403,4 +411,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.motif.linux.x86/.project b/bundles/org.eclipse.swt.motif.linux.x86/.project
index 59cd2a1..04ff5e9 100644
--- a/bundles/org.eclipse.swt.motif.linux.x86/.project
+++ b/bundles/org.eclipse.swt.motif.linux.x86/.project
@@ -20,9 +20,15 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.motif.linux.x86/build.xml b/bundles/org.eclipse.swt.motif.linux.x86/build.xml
index 819289f..3ab9bd5 100644
--- a/bundles/org.eclipse.swt.motif.linux.x86/build.xml
+++ b/bundles/org.eclipse.swt.motif.linux.x86/build.xml
@@ -322,6 +322,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib,libXm.so.2,libcairo-swt.so" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -407,4 +415,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.motif.solaris.sparc/.project b/bundles/org.eclipse.swt.motif.solaris.sparc/.project
index 8b596c6..09e3aa0 100644
--- a/bundles/org.eclipse.swt.motif.solaris.sparc/.project
+++ b/bundles/org.eclipse.swt.motif.solaris.sparc/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.motif.solaris.sparc/build.xml b/bundles/org.eclipse.swt.motif.solaris.sparc/build.xml
index 0a7c8ff..f3ed36f 100644
--- a/bundles/org.eclipse.swt.motif.solaris.sparc/build.xml
+++ b/bundles/org.eclipse.swt.motif.solaris.sparc/build.xml
@@ -318,6 +318,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -403,4 +411,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.photon.qnx.x86/.project b/bundles/org.eclipse.swt.photon.qnx.x86/.project
index cf738d3..5175bb9 100644
--- a/bundles/org.eclipse.swt.photon.qnx.x86/.project
+++ b/bundles/org.eclipse.swt.photon.qnx.x86/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.photon.qnx.x86/build.xml b/bundles/org.eclipse.swt.photon.qnx.x86/build.xml
index ca7495e..64e56c9 100644
--- a/bundles/org.eclipse.swt.photon.qnx.x86/build.xml
+++ b/bundles/org.eclipse.swt.photon.qnx.x86/build.xml
@@ -269,6 +269,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -354,4 +362,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.win32.wce_ppc.arm/.project b/bundles/org.eclipse.swt.win32.wce_ppc.arm/.project
index 45e7159..b4bff52 100644
--- a/bundles/org.eclipse.swt.win32.wce_ppc.arm/.project
+++ b/bundles/org.eclipse.swt.win32.wce_ppc.arm/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.win32.wce_ppc.arm/build.xml b/bundles/org.eclipse.swt.win32.wce_ppc.arm/build.xml
index 2047d52..79e0b73 100644
--- a/bundles/org.eclipse.swt.win32.wce_ppc.arm/build.xml
+++ b/bundles/org.eclipse.swt.win32.wce_ppc.arm/build.xml
@@ -240,6 +240,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -289,4 +297,14 @@
 			<mapper type="glob" from="*._properties" to="*.properties" />
 		</move>
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.win32.win32.ia64/.project b/bundles/org.eclipse.swt.win32.win32.ia64/.project
index 519e58f..f2dfe3c 100644
--- a/bundles/org.eclipse.swt.win32.win32.ia64/.project
+++ b/bundles/org.eclipse.swt.win32.win32.ia64/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.win32.win32.ia64/build.xml b/bundles/org.eclipse.swt.win32.win32.ia64/build.xml
index cbea717..73e6e54 100644
--- a/bundles/org.eclipse.swt.win32.win32.ia64/build.xml
+++ b/bundles/org.eclipse.swt.win32.win32.ia64/build.xml
@@ -292,6 +292,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -377,4 +385,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.win32.win32.x86/.project b/bundles/org.eclipse.swt.win32.win32.x86/.project
index 396de0c..91909bb 100644
--- a/bundles/org.eclipse.swt.win32.win32.x86/.project
+++ b/bundles/org.eclipse.swt.win32.win32.x86/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.win32.win32.x86/build.xml b/bundles/org.eclipse.swt.win32.win32.x86/build.xml
index d3fce00..bb0a651 100644
--- a/bundles/org.eclipse.swt.win32.win32.x86/build.xml
+++ b/bundles/org.eclipse.swt.win32.win32.x86/build.xml
@@ -269,6 +269,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -344,4 +352,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.win32.win32.x86_64/.project b/bundles/org.eclipse.swt.win32.win32.x86_64/.project
index a38a32c..02ef08a 100644
--- a/bundles/org.eclipse.swt.win32.win32.x86_64/.project
+++ b/bundles/org.eclipse.swt.win32.win32.x86_64/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.win32.win32.x86_64/build.xml b/bundles/org.eclipse.swt.win32.win32.x86_64/build.xml
index bf9fcc7..c7664d5 100644
--- a/bundles/org.eclipse.swt.win32.win32.x86_64/build.xml
+++ b/bundles/org.eclipse.swt.win32.win32.x86_64/build.xml
@@ -291,6 +291,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -376,4 +384,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>
diff --git a/bundles/org.eclipse.swt.wpf.win32.x86/.project b/bundles/org.eclipse.swt.wpf.win32.x86/.project
index 045cf9e..24a3247 100644
--- a/bundles/org.eclipse.swt.wpf.win32.x86/.project
+++ b/bundles/org.eclipse.swt.wpf.win32.x86/.project
@@ -15,8 +15,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.swt.wpf.win32.x86/build.xml b/bundles/org.eclipse.swt.wpf.win32.x86/build.xml
index e348307..f670257 100644
--- a/bundles/org.eclipse.swt.wpf.win32.x86/build.xml
+++ b/bundles/org.eclipse.swt.wpf.win32.x86/build.xml
@@ -265,6 +265,14 @@
 		</copy>
 		<chmod perm="755" dir="${destination.temp.folder}/${full.name}" includes="swt*.dll,libswt*.so,libswt*.sl,libswt*.a,libswt*.jnilib" />
 		<eclipse.versionReplacer path="${destination.temp.folder}/${full.name}" version="${version.suffix}" />
+		<antcall target="apitools.generation">
+			<param name="target.folder" value="${destination.temp.folder}/${full.name}"/>
+			<param name="projectLocation" value="${basedir}"/>
+			<param name="binary.folders" value="${build.result.folder}/@dot"/>
+			<param name="projectName" value="${full.name}"/>
+			<param name="extraSourceLocations" value="${basedir}/${plugindir}"/>
+			<param name="extraManifests" value="${basedir}/${plugindir}/META-INF/MANIFEST.MF"/>
+		</antcall>
 	</target>
 
 	<target name="swtdownload" depends="init">
@@ -352,4 +360,14 @@
 		<jar jarfile="${plugin.destination}/${full.name}.jar" basedir="${temp.folder}/${full.name}" filesonly="true" />
 		<delete dir="${temp.folder}" />
 	</target>
+
+	<target name="apitools.generation" if="generateAPIDescription">
+		<apitooling.apigeneration
+			projectName="${projectName}"
+			project="${projectLocation}"
+			binary="${binary.folders}"
+			target="${target.folder}"
+			extraManifests="${extraManifests}"
+			extraSourceLocations="${extraSourceLocations}"/>
+	</target>
 </project>