* aclocal wrapper: skip directories in ACLOCAL_PATH that don't exist,
otherwise aclocal barfs. Updated the builder to use makeWrapper * Made Automake 1.10 the default. * Fixed `make check' in Automake by turning off indented logging in Make (there is a flag for that now). * Disabled the `make check' in Automake by default because it takes a REALLY long time (e.g. more than 2 hours on Cygwin, 50 minutes on Darwin, 25 minutes on Linux) which is a lot for a package that otherwise takes 10 seconds to build. We can add a Hydra job with doCheck enabled to do regression testing. * make-wrapper: allow --run commands to add additional flags to the invocation of the wrapped program. An example is the aclocal wrapper: it adds additional -I ... flags. * make-wrapper: call the wrapped program .foo-wrapped instead of .wrapped-foo to make it easier to tell programs apart in `ps' output. svn path=/nixpkgs/branches/stdenv-updates/; revision=14885
This commit is contained in:
parent
723dfe4240
commit
e01be47e53
@ -66,7 +66,9 @@ makeWrapper() {
|
||||
fi
|
||||
done
|
||||
|
||||
echo "exec \"$original\" $flagsBefore \"\$@\"" >> $wrapper
|
||||
# Note: extraFlagsArray is an array containing additional flags
|
||||
# that may be set by --run actions.
|
||||
echo exec "$original" $flagsBefore '"${extraFlagsArray[@]}"' '"$@"' >> $wrapper
|
||||
|
||||
chmod +x $wrapper
|
||||
}
|
||||
@ -90,7 +92,7 @@ filterExisting() {
|
||||
# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
|
||||
wrapProgram() {
|
||||
local prog="$1"
|
||||
local hidden="$(dirname "$prog")/.wrapped-$(basename "$prog")"
|
||||
local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
|
||||
mv $prog $hidden
|
||||
makeWrapper $hidden $prog "$@"
|
||||
}
|
||||
|
@ -1,9 +1,10 @@
|
||||
{stdenv, fetchurl, perl, autoconf}:
|
||||
{stdenv, fetchurl, perl, autoconf, makeWrapper, doCheck ? false}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "automake-1.10.2";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
src = fetchurl {
|
||||
@ -11,12 +12,14 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "03v4gsvi71nhqvnxxbhkrksdg5icrn8yda021852njfragzck2n3";
|
||||
};
|
||||
|
||||
patches = [ ./test-broken-make.patch ];
|
||||
buildInputs = [perl autoconf makeWrapper];
|
||||
|
||||
buildInputs = [perl autoconf];
|
||||
|
||||
doCheck = true;
|
||||
inherit doCheck;
|
||||
|
||||
# Disable indented log output from Make, otherwise "make.test" will
|
||||
# fail.
|
||||
preCheck = "unset NIX_INDENT_MAKE";
|
||||
|
||||
# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
|
||||
# "fixed" path in generated files!
|
||||
dontPatchShebangs = true;
|
||||
|
@ -1,14 +1,16 @@
|
||||
{stdenv, fetchurl, perl, autoconf}:
|
||||
{stdenv, fetchurl, perl, autoconf, makeWrapper}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "automake-1.7.9";
|
||||
|
||||
builder = ./builder.sh;
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = http://nixos.org/tarballs/automake-1.7.9.tar.bz2;
|
||||
md5 = "571fd0b0598eb2a27dcf68adcfddfacb";
|
||||
};
|
||||
buildInputs = [perl autoconf];
|
||||
|
||||
buildInputs = [perl autoconf makeWrapper];
|
||||
|
||||
# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
|
||||
# "fixed" path in generated files!
|
||||
|
@ -1,16 +1,33 @@
|
||||
{stdenv, fetchurl, perl, autoconf}:
|
||||
{stdenv, fetchurl, perl, autoconf, makeWrapper}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
name = "automake-1.9.6";
|
||||
|
||||
builder = ./builder.sh;
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
src = fetchurl {
|
||||
url = ftp://ftp.gnu.org/gnu/automake/automake-1.9.6.tar.gz;
|
||||
md5 = "c60f77a42f103606981d456f1615f5b4";
|
||||
};
|
||||
buildInputs = [perl autoconf];
|
||||
|
||||
buildInputs = [perl autoconf makeWrapper];
|
||||
|
||||
# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
|
||||
# "fixed" path in generated files!
|
||||
dontPatchShebangs = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/automake/;
|
||||
description = "GNU Automake, a GNU standard-compliant makefile generator";
|
||||
|
||||
longDescription = ''
|
||||
GNU Automake is a tool for automatically generating
|
||||
`Makefile.in' files compliant with the GNU Coding
|
||||
Standards. Automake requires the use of Autoconf.
|
||||
'';
|
||||
|
||||
license = "GPLv2+";
|
||||
};
|
||||
}
|
||||
|
@ -2,46 +2,25 @@ source $stdenv/setup
|
||||
|
||||
|
||||
postInstall() {
|
||||
|
||||
# Create a wrapper around `aclocal' that converts every element in
|
||||
# `ACLOCAL_PATH' into a `-I dir' option. This way `aclocal'
|
||||
# becomes modular; M4 macros do not need to be stored in a single
|
||||
# global directory, while callers of `aclocal' do not need to pass
|
||||
# `-I' options explicitly.
|
||||
|
||||
mv $out/bin/aclocal $out/bin/_tmp
|
||||
|
||||
for i in $out/bin/aclocal*; do
|
||||
rm $i
|
||||
ln -s aclocal $i
|
||||
done
|
||||
|
||||
cat > $out/bin/aclocal <<EOF
|
||||
#! $SHELL -e
|
||||
|
||||
oldIFS=\$IFS
|
||||
for prog in $out/bin/aclocal*; do
|
||||
wrapProgram $prog --run \
|
||||
'
|
||||
oldIFS=$IFS
|
||||
IFS=:
|
||||
extra=
|
||||
for i in \$ACLOCAL_PATH; do
|
||||
if test -n "\$i"; then
|
||||
extra="\$extra -I \$i"
|
||||
for dir in $ACLOCAL_PATH; do
|
||||
if test -n "$dir" -a -d "$dir"; then
|
||||
extraFlagsArray=("${extraFlagsArray[@]}" "-I" "$dir")
|
||||
fi
|
||||
done
|
||||
IFS=\$oldIFS
|
||||
|
||||
exec $out/bin/aclocal-orig \${extra[@]} "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/aclocal
|
||||
mv $out/bin/_tmp $out/bin/aclocal-orig
|
||||
|
||||
|
||||
# Automatically let `ACLOCAL_PATH' include all build inputs that
|
||||
# have a `.../share/aclocal' directory.
|
||||
test -x $out/nix-support || mkdir $out/nix-support
|
||||
cp -p $setupHook $out/nix-support/setup-hook
|
||||
|
||||
IFS=$oldIFS'
|
||||
done
|
||||
}
|
||||
postInstall=postInstall
|
||||
|
||||
|
||||
genericBuild
|
||||
|
@ -1,16 +0,0 @@
|
||||
The version of GNU Make in Nixpkgs is "broken" in the sense that it
|
||||
produces additional output, making `AM_MAKE_INCLUDE' (tested by `make.test')
|
||||
fail. Thus, we just disable `make.test' for now.
|
||||
|
||||
See http://article.gmane.org/gmane.comp.sysutils.automake.bugs/4234 .
|
||||
|
||||
--- automake-1.10/tests/Makefile.in 2006-10-15 19:25:25.000000000 +0200
|
||||
+++ automake-1.10/tests/Makefile.in 2008-07-02 16:40:35.000000000 +0200
|
||||
@@ -482,7 +482,6 @@ ltdeps.test \
|
||||
ltlibobjs.test \
|
||||
ltlibsrc.test \
|
||||
maintclean.test \
|
||||
-make.test \
|
||||
makej.test \
|
||||
makevars.test \
|
||||
man.test \
|
@ -2271,18 +2271,18 @@ let
|
||||
inherit fetchurl stdenv perl m4 lzma;
|
||||
};
|
||||
|
||||
automake = automake19x;
|
||||
automake = automake110x;
|
||||
|
||||
automake17x = import ../development/tools/misc/automake/automake-1.7.x.nix {
|
||||
inherit fetchurl stdenv perl autoconf;
|
||||
inherit fetchurl stdenv perl autoconf makeWrapper;
|
||||
};
|
||||
|
||||
automake19x = import ../development/tools/misc/automake/automake-1.9.x.nix {
|
||||
inherit fetchurl stdenv perl autoconf;
|
||||
inherit fetchurl stdenv perl autoconf makeWrapper;
|
||||
};
|
||||
|
||||
automake110x = import ../development/tools/misc/automake/automake-1.10.x.nix {
|
||||
inherit fetchurl stdenv perl autoconf;
|
||||
inherit fetchurl stdenv perl autoconf makeWrapper;
|
||||
};
|
||||
|
||||
avrdude = import ../development/tools/misc/avrdude {
|
||||
|
Loading…
Reference in New Issue
Block a user