diff --git a/sigil/sigil-builder/build.xml b/sigil/sigil-builder/build.xml
new file mode 100644
index 0000000..4161e54
--- /dev/null
+++ b/sigil/sigil-builder/build.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+    http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<project name="sigil-builder" default="build">
+  <property name="user.props" value="user.properties" />
+  <property file="${user.props}"/>
+  <property file="project.properties"/>
+  <property file="download.properties"/>
+
+  <property name="error.internal.target" value="Do not call this target directly"/>
+
+  <property name="eclipse.sdk" value="${eclipse.install.dir}"/>
+  <property name="extras.sdk" value="build-libs/target-platform-extras"/>
+
+  <condition property="isUnix">
+      <os family="unix"/>
+  </condition>
+
+  <!-- PUBLIC TARGETS -->
+
+  <target name="build"
+    depends="clean-tmp, target-platform, pdebuild"/>
+
+  <target name="clean-tmp">
+    <delete dir="target/tmp" />
+  </target>
+  
+  <target name="clean">
+    <delete dir="target"/>
+    <delete dir="build-libs/classes"/>
+  </target>
+
+  <!-- create target platform -->
+  <target name="target-platform" depends="rsync-platform, copy-platform"/>
+
+  <target name="rsync-platform" if="isUnix">
+      <mkdir dir="${target.platform}/eclipse" />
+      <exec executable="rsync" append="true"
+        output="${target.platform}/rsync.log" >
+	<arg line="-av --delete ${eclipse.sdk}/ ${extras.sdk}/ ${target.platform}/eclipse" />
+      </exec>
+  </target>
+
+  <target name="copy-platform" unless="isUnix">
+      <mkdir dir="${target.platform}/eclipse" />
+      <copy todir="${target.platform}/eclipse">
+	<fileset dir="${eclipse.sdk}"/>
+	<fileset dir="${extras.sdk}" />
+      </copy>
+  </target>
+
+  <target name="init">
+    <mkdir dir="target"/>
+    <mkdir dir="target/features"/>
+    <mkdir dir="target/plugins"/>
+  </target>
+
+  <target name="custom.tasks">
+    <mkdir dir="build-libs/classes"/>
+    <javac srcdir="src" destdir="build-libs/classes" debug="on">
+      <classpath>
+        <fileset dir="build-libs">
+          <include name="osgi.core.jar"/>
+        </fileset>
+      </classpath>
+    </javac>
+    <taskdef name="findbundle" classname="org.cauldron.sigil.build.FindBundlesTask">
+      <classpath>
+        <pathelement location="build-libs/osgi.core.jar"/>
+        <pathelement location="build-libs/classes"/>
+      </classpath>
+    </taskdef>
+    <taskdef name="siteInsertFeatures" classname="org.cauldron.sigil.build.SiteInsertFeatures">
+      <classpath>
+        <pathelement location="build-libs/classes"/>
+      </classpath>
+    </taskdef>
+  </target>
+
+  <target name="findbundles" depends="custom.tasks">
+    <!-- Find the Equinox launcher JAR -->
+    <echo>${eclipse.install.dir}</echo>
+    <findbundle dir="${eclipse.install.dir}/plugins" symbolicname="org.eclipse.equinox.launcher" property="eclipse.launcher.version"/>
+    <property name="eclipse.launcher.jar" location="${eclipse.install.dir}/plugins/org.eclipse.equinox.launcher_${eclipse.launcher.version}.jar"/>
+
+    <!-- Find the PDE Build scripts -->
+    <findbundle dir="${eclipse.install.dir}/plugins" symbolicname="org.eclipse.pde.build" property="eclipse.pdebuild.version"/>
+    <property name="eclipse.productBuild.xml" location="${eclipse.install.dir}/plugins/org.eclipse.pde.build_${eclipse.pdebuild.version}/scripts/productBuild/productBuild.xml"/>
+    <property name="eclipse.featureBuild.xml" location="${eclipse.install.dir}/plugins/org.eclipse.pde.build_${eclipse.pdebuild.version}/scripts/build.xml"/>
+  </target>
+
+  <!-- Unused
+  <target name="download" depends="init">
+    <mkdir dir="${target.platform}"/>
+
+    <echo message="Downloading platform runtime"/>
+    <get dest="${target.platform}/platform-runtime.zip"
+       src="${download.base}/${download.dir}/${download.platform.runtime}" verbose="true"/>
+
+    <echo message="Downloading RCP delta pack"/>
+    <get dest="${target.platform}/deltapack.zip"
+       src="${download.base}/${download.dir}/${download.deltapack}" verbose="true"/>
+
+    <echo message="Downloading CVS client"/>
+    <get dest="${target.platform}/cvsclient.zip"
+       src="${download.base}/${download.dir}/${download.cvsclient}" verbose="true"/>
+
+    <unzip src="${target.platform}/platform-runtime.zip" dest="${target.platform}" overwrite="true"/>
+    <unzip src="${target.platform}/deltapack.zip" dest="${target.platform}" overwrite="true"/>
+    <unzip src="${target.platform}/cvsclient.zip" dest="${target.platform}" overwrite="true"/>
+  </target>
+  -->
+
+  <target name="copy.projects" depends="init">
+    <foreach list="${plugins}" param="plugin.id"  target="__copy.plugin"/>
+    <foreach list="${features}" param="feature.id" target="__copy.feature"/>
+  </target>
+
+  <target name="copy.properties" depends="init">
+    <copy file="builder/template.build.properties" tofile="builder/build.properties" overwrite="true"/>
+    <pathconvert property="basedir.unix" targetos="unix">
+      <path location="${basedir}"/>
+    </pathconvert>
+    <replace file="builder/build.properties">
+      <replacefilter token="@@WARNING_TEXT" value="Warning! This file is auto-generated. Changes will be overwritten!"/>
+      <replacefilter token="@@BUILD_PROJECT_DIR" value="${basedir.unix}"/>
+      <replacefilter token="@@TARGET_PLATFORM" value="${target.platform}"/>
+    </replace>
+  </target>
+
+  <!-- Unused
+  <target name="copy.deps">
+    <copy todir="${target.platform}/eclipse/plugins">
+      <fileset dir="target-libs" includes="*.jar"/>
+    </copy>
+  </target>
+  -->
+
+  <target name="pdebuild" depends="findbundles,copy.projects,copy.properties">
+    <java jar="${eclipse.launcher.jar}" fork="true" failonerror="true">
+      <sysproperty key="builder" path="${basedir}/builder"/>
+      <arg line="-application org.eclipse.ant.core.antRunner"/>
+      <arg line="-buildfile ${eclipse.featureBuild.xml}"/>
+    </java>
+  </target>
+  
+  <target name="new.updateSite">
+    <copy file="site.xml" todir="${updateSiteDir}"/>
+    <antcall target="copy.updateSite" />
+  </target>
+
+  <target name="copy.updateSite" depends="custom.tasks">
+    <copy todir="${updateSiteDir}">
+      <fileset dir="target/tmp/eclipse" includes="**/*.jar"/>
+    </copy>
+    <property file="target/finalFeaturesVersions.properties" prefix="featureVersions"/>
+    <siteInsertFeatures sitexmlfile="${updateSiteDir}/site.xml"
+      features="${features}"
+      versionPropPrefix="featureVersions"
+      categoryPropPrefix="category"/>
+  </target>
+
+  <!-- INTERNAL TARGETS -->
+  <target name="__copy.plugin">
+    <fail unless="plugin.id" message="${error.internal.target}"/>
+    <echo message="Copying plugin ${plugin.id}"/>
+    <antcall target="__copy.artifact">
+      <param name="artifact.id" value="${plugin.id}"/>
+      <param name="artifact.type" value="plugin"/>
+    </antcall>
+  </target>
+
+  <target name="__copy.feature">
+    <fail unless="feature.id" message="${error.internal.target}"/>
+    <antcall target="__copy.artifact">
+      <param name="artifact.id" value="${feature.id}"/>
+      <param name="artifact.type" value="feature"/>
+    </antcall>
+    
+    <replace file="target/features/${feature.id}/feature.xml">
+      <replacefilter token="http://replace.with.real.url" value="${updateUrl}"/>
+    </replace>
+  </target>
+
+  <target name="__copy.artifact">
+    <fail unless="artifact.id" message="${error.internal.target}"/>
+    <fail unless="artifact.type" message="${error.internal.target}"/>
+
+    <echo message="Copying from ${source.dir}/${artifact.id} to target/${artifact.type}s"/>
+    <copy todir="target/${artifact.type}s">
+      <fileset dir="${source.dir}">
+        <exclude name="${artifact.id}/bin/**"/>
+        <exclude name="${artifact.id}/build/**"/>
+        <exclude name="${artifact.id}/**/*.class"/>
+        <include name="${artifact.id}/**"/>
+      </fileset>
+    </copy>
+  </target>
+
+  <target name="__nodefault">
+    <fail message="There is no default target"/>
+  </target>
+
+  <!-- TASK DEFINITIONS -->
+  <taskdef resource="net/sf/antcontrib/antlib.xml">
+    <classpath>
+      <pathelement location="build-libs/ant-contrib/ant-contrib-1.0b3.jar"/>
+    </classpath>
+  </taskdef>
+
+</project>
