<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -39,7 +39,7 @@
   &lt;!-- import ivy's ant tasks --&gt;
   &lt;target name=&quot;install-ivy&quot; depends=&quot;download-ivy&quot;&gt;
     &lt;path id=&quot;ivy.lib.path&quot;&gt;
-      &lt;fileset dir=&quot;${ivy.jar.dir}&quot; includes=&quot;*.jar&quot;/&gt;
+      &lt;fileset dir=&quot;${ivy.jar.dir}&quot; includes=&quot;ivy-${ivy.install.version}.jar&quot;/&gt;
     &lt;/path&gt;
     &lt;taskdef resource=&quot;org/apache/ivy/ant/antlib.xml&quot; uri=&quot;antlib:org.apache.ivy.ant&quot; classpathref=&quot;ivy.lib.path&quot; /&gt;
   &lt;/target&gt;</diff>
      <filename>ant/bootstrap.xml</filename>
    </modified>
    <modified>
      <diff>@@ -17,6 +17,8 @@
         skipemptyfilesets=&quot;true&quot; verbose=&quot;true&quot;&gt;
         &lt;arg value=&quot;--gen&quot; /&gt;
         &lt;arg value=&quot;java&quot; /&gt;
+        &lt;arg value=&quot;--gen&quot; /&gt;
+        &lt;arg value=&quot;rb&quot; /&gt;
         &lt;arg value=&quot;-o&quot; /&gt;
         &lt;arg value=&quot;${target.dir}&quot; /&gt;
         &lt;arg value=&quot;&quot; /&gt;
@@ -59,13 +61,15 @@
 
   &lt;target name=&quot;compile-jni&quot; depends=&quot;check-jni-source&quot; if=&quot;build.jni.ok&quot;&gt;
     &lt;ant dir=&quot;src/main/jni&quot; target=&quot;compile&quot; inheritAll=&quot;false&quot; /&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;install-jni&quot; depends=&quot;compile-jni&quot; if=&quot;build.jni&quot;&gt;
     &lt;copy todir=&quot;${dist.dir}&quot; flatten=&quot;true&quot;&gt;
       &lt;fileset dir=&quot;src/main/jni&quot; includes=&quot;**/target/*.${os.jni.ext}&quot; /&gt;
       &lt;fileset dir=&quot;src/main/jni&quot; includes=&quot;**/target/*.jar&quot; /&gt;
     &lt;/copy&gt;
   &lt;/target&gt;
 
-
   &lt;!-- compile old-skool java --&gt;
 
   &lt;target name=&quot;compile-java&quot; if=&quot;build.java&quot;&gt;
@@ -92,7 +96,25 @@
 
   &lt;!-- create properties file with build info --&gt;
 
-  &lt;target name=&quot;write-build-info&quot; depends=&quot;init&quot; if=&quot;ivy.extra.buildpackage&quot;&gt;
+  &lt;target name=&quot;find-git-revision&quot; unless=&quot;no.git&quot;&gt;
+    &lt;!-- ask git for the current &quot;head&quot; commit-id, for memoizing inside the built jar --&gt;
+    &lt;exec outputproperty=&quot;revision&quot; executable=&quot;git-rev-parse&quot; failifexecutionfails=&quot;false&quot;&gt;
+      &lt;arg value=&quot;head&quot; /&gt;
+    &lt;/exec&gt;
+    &lt;exec executable=&quot;git-rev-parse&quot; failifexecutionfails=&quot;false&quot;&gt;
+      &lt;arg value=&quot;head&quot; /&gt;
+      &lt;redirector outputproperty=&quot;revision-short&quot;&gt;
+        &lt;outputfilterchain&gt;
+          &lt;tokenfilter&gt;
+            &lt;filetokenizer /&gt;
+            &lt;replaceregex pattern=&quot;(.{8}).*&quot; replace=&quot;\1&quot;/&gt;
+          &lt;/tokenfilter&gt;
+        &lt;/outputfilterchain&gt;
+      &lt;/redirector&gt;
+    &lt;/exec&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;write-build-info&quot; depends=&quot;init, find-git-revision&quot; if=&quot;ivy.extra.buildpackage&quot;&gt;
     &lt;tstamp&gt;
       &lt;format property=&quot;build.timestamp&quot; pattern=&quot;yyyyMMdd-HHmmss&quot; /&gt;
     &lt;/tstamp&gt;
@@ -104,6 +126,7 @@
       &lt;entry key=&quot;name&quot; value=&quot;${ivy.module}&quot; /&gt;
       &lt;entry key=&quot;version&quot; value=&quot;${ivy.revision}&quot; /&gt;
       &lt;entry key=&quot;build_name&quot; value=&quot;${build.timestamp}&quot; /&gt;
+      &lt;entry key=&quot;build_revision&quot; value=&quot;${revision}&quot; /&gt;
     &lt;/propertyfile&gt;
   &lt;/target&gt;
 
@@ -114,17 +137,10 @@
     &lt;copy todir=&quot;${dist.dir}/libs&quot; flatten=&quot;true&quot;&gt;
       &lt;path refid=&quot;deps.path&quot; /&gt;
     &lt;/copy&gt;
-    &lt;pathconvert refid=&quot;deps.path&quot; pathsep=&quot; &quot; property=&quot;deps.path.jar-format&quot;&gt;
-      &lt;chainedmapper&gt;
-        &lt;flattenmapper /&gt;
-        &lt;globmapper from=&quot;*&quot; to=&quot;libs/*&quot; /&gt;
-      &lt;/chainedmapper&gt;
-    &lt;/pathconvert&gt;
-
-    &lt;copy todir=&quot;${target.dir}/test-classes/resources&quot; failonerror=&quot;false&quot;&gt;
+    &lt;copy todir=&quot;${target.dir}/test-classes/&quot; failonerror=&quot;false&quot;&gt;
       &lt;fileset dir=&quot;${test.source.dir}/resources&quot; /&gt;
     &lt;/copy&gt;
-    &lt;copy todir=&quot;${dist.dir}/resources&quot; overwrite=&quot;true&quot; failonerror=&quot;false&quot;&gt;
+    &lt;copy todir=&quot;${target.dir}/classes/&quot; overwrite=&quot;true&quot; failonerror=&quot;false&quot;&gt;
       &lt;fileset dir=&quot;${source.dir}/resources&quot; /&gt;
     &lt;/copy&gt;
   &lt;/target&gt;
@@ -157,7 +173,7 @@
 
 
   &lt;target name=&quot;compile&quot; depends=&quot;prepare, find-source, compile-thrift, check-jni-source, compile-jni,
-    compile-java, compile-scala, write-build-info, copy-extra&quot;
+    install-jni, compile-java, compile-scala, write-build-info, copy-extra&quot;
     description=&quot;compile java and scala code&quot; /&gt;
 
 &lt;/project&gt;</diff>
      <filename>ant/compile.xml</filename>
    </modified>
    <modified>
      <diff>@@ -6,13 +6,17 @@
     &lt;pathconvert property=&quot;doc.sources&quot; pathsep=&quot; &quot;&gt;
       &lt;fileset dir=&quot;${source.dir}&quot; includes=&quot;**/*.scala&quot; /&gt;
     &lt;/pathconvert&gt;
+    &lt;path id=&quot;docs.path&quot;&gt;
+      &lt;path refid=&quot;bootstrap.path&quot; /&gt;
+      &lt;pathelement location=&quot;${target.dir}/classes&quot; /&gt;
+    &lt;/path&gt;
     &lt;echo message=&quot;Building vscaladoc...&quot; /&gt;
     &lt;java classname=&quot;org.scala_tools.vscaladoc.Main&quot; fork=&quot;true&quot; failonerror=&quot;true&quot;&gt;
       &lt;classpath&gt;
         &lt;path refid=&quot;bootstrap.path&quot; /&gt;
       &lt;/classpath&gt;
       &lt;arg value=&quot;-classpath&quot; /&gt;
-      &lt;arg pathref=&quot;bootstrap.path&quot; /&gt;
+      &lt;arg pathref=&quot;docs.path&quot; /&gt;
       &lt;arg value=&quot;-d&quot; /&gt;
       &lt;arg value=&quot;${docs.target.dir}/scaladoc&quot; /&gt;
       &lt;arg value=&quot;-sourcepath&quot; /&gt;</diff>
      <filename>ant/docs.xml</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,32 @@
 &lt;project xmlns:ivy=&quot;antlib:org.apache.ivy.ant&quot;&gt;
 
-  &lt;target name=&quot;make-non-executable-jar&quot; unless=&quot;ivy.extra.jarclassname&quot;&gt;
-    &lt;jar destfile=&quot;${dist.dir}/${ivy.module}-${ivy.revision}.jar&quot;&gt;
+  &lt;!-- unzip all the dependent jars into target/ so that the final jar will depend on nothing. kinda evil. --&gt;
+  &lt;target name=&quot;pack-deps&quot; if=&quot;pack.deps&quot;&gt;
+    &lt;pathconvert pathsep=&quot;,&quot; property=&quot;deps.path.list&quot;&gt;
+      &lt;path refid=&quot;deps.path&quot; /&gt;
+      &lt;map from=&quot;/&quot; to=&quot;&quot; /&gt;
+    &lt;/pathconvert&gt;
+    &lt;unzip dest=&quot;${target.dir}/classes&quot;&gt;
+      &lt;fileset dir=&quot;/&quot; includes=&quot;${deps.path.list}&quot; /&gt;
+    &lt;/unzip&gt;
+    &lt;delete dir=&quot;${target.dir}/classes/META-INF&quot; /&gt;
+  &lt;/target&gt;
+
+  &lt;target name=&quot;make-non-executable-jar&quot; unless=&quot;ivy.extra.jarclassname&quot; depends=&quot;pack-deps&quot;&gt;
+    &lt;jar destfile=&quot;${dist.dir}/${jar.name}.jar&quot;&gt;
       &lt;fileset dir=&quot;${target.dir}/classes&quot; /&gt;
     &lt;/jar&gt;
   &lt;/target&gt;
 
   &lt;!-- generate a jar that contains all deps inside it, so it can be run with &quot;java -jar&quot; --&gt;
-  &lt;target name=&quot;make-executable-jar&quot; if=&quot;ivy.extra.jarclassname&quot; depends=&quot;copy-extra&quot;&gt;
-    &lt;jar destfile=&quot;${dist.dir}/${ivy.module}-${ivy.revision}.jar&quot;&gt;
+  &lt;target name=&quot;make-executable-jar&quot; if=&quot;ivy.extra.jarclassname&quot; depends=&quot;copy-extra,pack-deps&quot;&gt;
+    &lt;pathconvert refid=&quot;deps.path&quot; pathsep=&quot; &quot; property=&quot;deps.path.jar-format&quot;&gt;
+      &lt;chainedmapper&gt;
+        &lt;flattenmapper /&gt;
+        &lt;globmapper from=&quot;*&quot; to=&quot;libs/*&quot; /&gt;
+      &lt;/chainedmapper&gt;
+    &lt;/pathconvert&gt;
+    &lt;jar destfile=&quot;${dist.dir}/${jar.name}.jar&quot;&gt;
       &lt;fileset dir=&quot;${target.dir}/classes&quot; /&gt;
       &lt;manifest&gt;
         &lt;attribute name=&quot;Main-Class&quot; value=&quot;${ivy.extra.jarclassname}&quot; /&gt;
@@ -20,6 +38,13 @@
   &lt;target name=&quot;generate-scripts&quot; depends=&quot;prepare&quot; if=&quot;generate.scripts&quot;&gt;
     &lt;pathconvert refid=&quot;deps.path&quot; property=&quot;classpath&quot; /&gt;
     &lt;pathconvert refid=&quot;test.path&quot; property=&quot;test.classpath&quot; /&gt;
+    &lt;pathconvert refid=&quot;deps.path&quot; property=&quot;deps.path.dist-format&quot;&gt;
+      &lt;chainedmapper&gt;
+        &lt;flattenmapper /&gt;
+        &lt;globmapper from=&quot;*&quot; to=&quot;$${DIST_HOME}/libs/*&quot; /&gt;
+      &lt;/chainedmapper&gt;
+    &lt;/pathconvert&gt;
+
     &lt;!-- delete dir=&quot;${basedir}/target/scripts&quot; /--&gt;
     &lt;mkdir dir=&quot;${dist.dir}/scripts&quot; /&gt;
     &lt;copy todir=&quot;${dist.dir}/scripts&quot; overwrite=&quot;true&quot;&gt;
@@ -27,22 +52,30 @@
       &lt;filterset&gt;
         &lt;filter token=&quot;CLASSPATH&quot; value=&quot;${classpath}:${target.dir}/classes&quot; /&gt;
         &lt;filter token=&quot;TEST_CLASSPATH&quot; value=&quot;${test.classpath}:${target.dir}/classes:${target.dir}/test-classes&quot; /&gt;
+        &lt;filter token=&quot;DIST_CLASSPATH&quot; value=&quot;${deps.path.dist-format}:$${DIST_HOME}/${jar.name}.jar&quot; /&gt;
+        &lt;filter token=&quot;TARGET&quot; value=&quot;${target.dir}&quot; /&gt;
+        &lt;filter token=&quot;DIST_NAME&quot; value=&quot;${dist.name}&quot; /&gt;
       &lt;/filterset&gt;
     &lt;/copy&gt;
     &lt;chmod dir=&quot;${dist.dir}/scripts&quot; includes=&quot;*&quot; perm=&quot;ugo+x&quot; /&gt;
   &lt;/target&gt;
 
   &lt;target name=&quot;package&quot; depends=&quot;test, make-non-executable-jar, make-executable-jar,
-    generate-scripts&quot; description=&quot;build complete jar(s) and docs&quot;&gt;
-    &lt;ivy:makepom ivyfile=&quot;${basedir}/ivy/ivy.xml&quot; pomfile=&quot;${dist.dir}/${ivy.module}-${ivy.revision}.pom&quot; /&gt;
+    generate-scripts, docs&quot; description=&quot;build complete jar(s) and docs&quot;&gt;
+    &lt;ivy:makepom ivyfile=&quot;${basedir}/ivy/ivy.xml&quot; pomfile=&quot;${dist.dir}/${dist.name}.pom&quot; /&gt;
     &lt;ivy:deliver conf=&quot;*(public)&quot; /&gt;
-    &lt;zip destfile=&quot;${basedir}/dist/${ivy.module}-${ivy.revision}.zip&quot;
+    &lt;condition property=&quot;dist.zip.name&quot; value=&quot;namesearch-${revision-short}.zip&quot;&gt;
+      &lt;isset property=&quot;dist_use_build_number&quot; /&gt;
+    &lt;/condition&gt;
+    &lt;property name=&quot;dist.zip.name&quot; value=&quot;${dist.name}.zip&quot; /&gt;
+    &lt;zip destfile=&quot;${basedir}/dist/${dist.zip.name}&quot;
       basedir=&quot;${basedir}/dist&quot;&gt;
-      &lt;include name=&quot;${ivy.module}-${ivy.revision}/${ivy.module}-${ivy.revision}.jar&quot; /&gt;
-      &lt;include name=&quot;${ivy.module}-${ivy.revision}/*.so&quot; /&gt;
-      &lt;include name=&quot;${ivy.module}-${ivy.revision}/*.jnilib&quot; /&gt;
-      &lt;include name=&quot;${ivy.module}-${ivy.revision}/libs/**&quot; /&gt;
-      &lt;include name=&quot;${ivy.module}-${ivy.revision}/config/**&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/${jar.name}.jar&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/*.so&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/*.jnilib&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/libs/**&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/config/**&quot; /&gt;
+      &lt;include name=&quot;${dist.name}/scripts/**&quot; /&gt;
     &lt;/zip&gt;
     &lt;ivy:publish resolver=&quot;local&quot; overwrite=&quot;true&quot;&gt;
       &lt;artifacts pattern=&quot;${dist.dir}/[artifact]-[revision].[ext]&quot; /&gt;</diff>
      <filename>ant/package.xml</filename>
    </modified>
    <modified>
      <diff>@@ -7,12 +7,16 @@
     &lt;property name=&quot;ivy.deliver.ivy.pattern&quot; value=&quot;${dist.dir}/[artifact]-[revision].[ext]&quot; /&gt;
 
     &lt;ivy:info file=&quot;${ivy.dep.file}&quot; /&gt;
-    &lt;property name=&quot;dist.dir&quot; value=&quot;${basedir}/dist/${ivy.module}-${ivy.revision}&quot; /&gt;
+
+    &lt;property name=&quot;jar.name&quot; value=&quot;${ivy.module}-${ivy.revision}&quot; /&gt;
+    &lt;property name=&quot;dist.name&quot; value=&quot;${ivy.module}-${ivy.revision}&quot; /&gt;
+    &lt;property name=&quot;dist.relative.dir&quot; value=&quot;dist/${dist.name}&quot; /&gt;
+    &lt;property name=&quot;dist.dir&quot; value=&quot;${basedir}/${dist.relative.dir}&quot; /&gt;
     &lt;property name=&quot;docs.target.dir&quot; value=&quot;${dist.dir}/docs&quot; /&gt;
   &lt;/target&gt;
 
   &lt;target name=&quot;resolve&quot; depends=&quot;init&quot;&gt;
-    &lt;ivy:retrieve conf=&quot;bootstrap,default,test&quot; pattern=&quot;${target.dir}/libs/[conf]/[artifact]-[revision].[ext]&quot; /&gt;
+    &lt;ivy:retrieve log=&quot;download-only&quot; conf=&quot;bootstrap,default,test&quot; pattern=&quot;${target.dir}/libs/[conf]/[artifact]-[revision].[ext]&quot; /&gt;
     &lt;ivy:cachepath pathid=&quot;bootstrap.path&quot; conf=&quot;bootstrap&quot; /&gt;
     &lt;ivy:cachepath pathid=&quot;deps.path&quot; conf=&quot;default&quot; /&gt;
     &lt;ivy:cachepath pathid=&quot;test.path&quot; conf=&quot;test&quot; /&gt;</diff>
      <filename>ant/prepare.xml</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>bb2a0b685473f3e2749b42c078b3f32564768689</id>
    </parent>
  </parents>
  <author>
    <name>Robey Pointer</name>
    <email>robey@twitter.com</email>
  </author>
  <url>http://github.com/robey/smile/commit/6965f4cb944fbafeaaf6e8342cceb12bf6dec0a6</url>
  <id>6965f4cb944fbafeaaf6e8342cceb12bf6dec0a6</id>
  <committed-date>2009-01-08T23:57:30-08:00</committed-date>
  <authored-date>2009-01-08T23:57:30-08:00</authored-date>
  <message>update scala-build.</message>
  <tree>8c81aab1df882542c276585dcc9a307a796e083a</tree>
  <committer>
    <name>Robey Pointer</name>
    <email>robey@twitter.com</email>
  </committer>
</commit>
