about summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/apache-ant
diff options
context:
space:
mode:
authorTobias Hammerschmidt <tobias.hammerschmidt@gmx.de>2008-04-11 21:32:00 +0000
committerTobias Hammerschmidt <tobias.hammerschmidt@gmx.de>2008-04-11 21:32:00 +0000
commit085dc5bc74e6494695d982fb8437bba423316f00 (patch)
treeab3ef3cbbf580d917eea9c6d6fcc31bbc5bc4757 /pkgs/development/tools/build-managers/apache-ant
parent2f52d0920433e266414b8162c6867260f3578ba5 (diff)
added ant-contrib, expression works but is really really ugly - maybe someone else can have a look at it?
svn path=/nixpkgs/trunk/; revision=11588
Diffstat (limited to 'pkgs/development/tools/build-managers/apache-ant')
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/builder.sh44
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix17
2 files changed, 50 insertions, 11 deletions
diff --git a/pkgs/development/tools/build-managers/apache-ant/builder.sh b/pkgs/development/tools/build-managers/apache-ant/builder.sh
index 42d5e67d154b3..068925b4755a0 100644
--- a/pkgs/development/tools/build-managers/apache-ant/builder.sh
+++ b/pkgs/development/tools/build-managers/apache-ant/builder.sh
@@ -1,21 +1,53 @@
 source $stdenv/setup
 
-mkdir -p $out/bin
+tar jxf $src || exit 1
+mkdir -p $out
+
+mv apache-ant-*/* $out || exit 1
+
+# add ant-contrib
+cp $antContrib/*.jar $out/lib
+
+# remove crap in the root directory
+
+for file in $out/*
+do
+  if test -f $file ; then
+    rm $file
+  fi
+done
+rm -rf $out/docs
+
+# prevent the use of hacky scripts. This will be handled in Nix.
+rm $out/bin/* || exit 1
+
+# add ant script. This script is to be invoked with all
+# appropiate variables and will try to be clever or user-friendly.
 
 cat >> $out/bin/ant <<EOF
 #! /bin/sh
 
 export JAVA_HOME=$jdk
 export JAVACMD=$jdk/bin/java
-export ANT_OPTS=""
-export ANT_ARGS=""
 export LANG="en_US"
 
-$ant/bin/core-ant \$@
+export ANT_HOME=$out
+ 
+if [ -z "\$LOCALCLASSPATH" ] ; then
+    LOCALCLASSPATH=\$ANT_HOME/lib/ant-launcher.jar
+else
+    LOCALCLASSPATH=\$ANT_HOME/lib/ant-launcher.jar:\$LOCALCLASSPATH
+fi
+
+if [ -n "\$JIKESPATH" ]; then
+  exec "\$JAVACMD" \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" -Dant.home="\${ANT_HOME}" -Djikes.class.path="\$JIKESPATH" org.apache.tools.ant.launch.Launcher \$ANT_ARGS -lib "$CLASSPATH" "\$@"
+else
+  exec "\$JAVACMD" \$NIX_ANT_OPTS \$ANT_OPTS -classpath "\$LOCALCLASSPATH" -Dant.home="\${ANT_HOME}" org.apache.tools.ant.launch.Launcher \$ANT_ARGS -lib "$CLASSPATH" "\$@"
+  fi
+fi
 EOF
 
 chmod a+x $out/bin/ant
 
-ln -s $ant/lib $ant/etc $out/
-
+ln -s $out/bin/ant $out/bin/antRun
 
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index 2532db69f97f1..a9e35d5d70bc3 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -1,16 +1,23 @@
-{stdenv, fetchurl, jdk, name}:
+{fetchurl, stdenv, jdk, name}:
 
 let {
   body =
     stdenv.mkDerivation {
       name = name;
+
       builder = ./builder.sh;
-      buildInputs = [ant jdk];
-      inherit ant jdk;
+      buildInputs = [antContrib jdk];
+
+      inherit antContrib jdk;
+
+      src = fetchurl {
+        url = http://apache.surfnet.nl/ant/binaries/apache-ant-1.6.5-bin.tar.bz2;
+        md5 = "26031ee1a2fd248ad0cc2e7f17c44c39";
+      };
     };
 
-  ant =
-    (import ./core-apache-ant.nix) {
+  antContrib =
+    (import ./ant-contrib.nix) {
       inherit fetchurl stdenv;
     };
 }