diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-09-24 14:49:15 +0000 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-09-24 14:49:15 +0000 |
commit | 18e946cb9d89b80bdd69fb1023134e7dee0d8606 (patch) | |
tree | e0003d706fd31b769dfd8d31882d2dea3b78768d /pkgs/development/tools/build-managers/apache-ant | |
parent | 3c021b4a97a7bf46cbe60ece10a4b685a499cbcf (diff) | |
download | nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar.gz nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar.bz2 nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar.lz nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar.xz nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.tar.zst nixlib-18e946cb9d89b80bdd69fb1023134e7dee0d8606.zip |
Add Apache Ant, built from source with GCJ.
svn path=/nixpkgs/trunk/; revision=17401
Diffstat (limited to 'pkgs/development/tools/build-managers/apache-ant')
-rw-r--r-- | pkgs/development/tools/build-managers/apache-ant/from-source.nix | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/apache-ant/from-source.nix b/pkgs/development/tools/build-managers/apache-ant/from-source.nix new file mode 100644 index 000000000000..698066aaba26 --- /dev/null +++ b/pkgs/development/tools/build-managers/apache-ant/from-source.nix @@ -0,0 +1,89 @@ +{ stdenv, fetchurl, javac, jvm, junit }: + +let version = "1.7.1"; in + +/* TODO: Once we have Icedtea, use this Nix expression to build Ant with + Sun's javac. */ + +stdenv.mkDerivation { + name = "ant-gcj-${version}"; + + src = fetchurl { + url = "http://mirrors.linhub.com/apache/ant/source/apache-ant-${version}-src.tar.bz2"; + sha256 = "19pvqvgkxgpgsqm4lvbki5sm0z84kxmykdqicvfad47gc1r9mi2d"; + }; + + patches = [ ./use-gcj.patch ]; + + buildInputs = [ javac jvm junit ]; + + configurePhase = '' + mkdir -p "tool-aliases/bin" + cd "tool-aliases/bin" + cat > javac <<EOF +#!/bin/sh +opts="-C" +echo 'running \`gcj '"\$opts \$@'..." +exec "$(type -P gcj)" \$opts \$@ +EOF + chmod +x javac + ln -sv $(type -P gij) java + export PATH="$PWD:$PATH" + + cd ../.. + export JAVA_HOME="$PWD/tool-aliases" + + # Make JUnit visible. + export CLASSPATH="$(find ${junit} -name \*.jar -printf "%p:")" + ''; + + # Note: We don't build the javadoc. + buildPhase = '' + ensureDir "$out" + ./build.sh -Dant.install="$out" install-lite + ''; + + installPhase = '' + # Actually, everything is already installed at this point, so we just + # rearrange a few things. + rm -v "$out/bin/"*.bat + + ensureDir "$out/lib/java" + mv -v "$out/lib/"*.jar "$out/lib/java" + sed -i "$out/bin/ant" \ + -e "s|^ANT_LIB=.*$|ANT_LIB=$out/lib/java|g ; + s|JAVACMD=java.*$|JAVACMD=$(type -P gij)|g ; + /^ant_exec_command/i export ANT_HOME=$out" + ''; + + meta = { + description = "Apache Ant, a Java-based build tool"; + + longDescription = '' + Apache Ant is a Java-based build tool. In theory, it is kind of like + Make, but without Make's wrinkles. + + Why another build tool when there is already make, gnumake, nmake, jam, + and others? Because all those tools have limitations that Ant's + original author couldn't live with when developing software across + multiple platforms. Make-like tools are inherently shell-based -- they + evaluate a set of dependencies, then execute commands not unlike what + you would issue in a shell. This means that you can easily extend + these tools by using or writing any program for the OS that you are + working on. However, this also means that you limit yourself to the + OS, or at least the OS type such as Unix, that you are working on. + + Ant is different. Instead of a model where it is extended with + shell-based commands, Ant is extended using Java classes. Instead of + writing shell commands, the configuration files are XML-based, calling + out a target tree where various tasks get executed. Each task is run + by an object that implements a particular Task interface. + ''; + + homepage = http://ant.apache.org/; + + license = "Apache-2.0"; + + maintainers = [ stdenv.lib.maintainers.ludo ]; + }; +} |