stdenvMulti: Set the configure/install flags in the pre-hook

Flags like $(dev)/include don't always get expanded, e.g. leading to
incorrect pkgconfig files.  So set them in the pre-hook.
This commit is contained in:
Eelco Dolstra 2012-08-25 21:19:26 -04:00
parent 283164779b
commit c642f84838

View File

@ -6,30 +6,34 @@ with stdenv.lib;
stdenv.mkDerivation (args // { stdenv.mkDerivation (args // {
configureFlags =
optionals (elem "bin" outputs)
[ "--bindir=$(bin)/bin" "--mandir=$(bin)/share/man" ]
++ optionals (elem "lib" outputs)
[ "--libdir=$(lib)/lib" ]
++ optional (elem "dev" outputs)
"--includedir=$(dev)/include"
++ [ (toString args.configureFlags or []) ];
installFlags =
optionals (elem "dev" outputs)
[ "pkgconfigdir=$(dev)/lib/pkgconfig" "m4datadir=$(dev)/share/aclocal" "aclocaldir=$(dev)/share/aclocal" ]
++ [ (toString args.installFlags or []) ];
#postPhases = [ "fixupOutputsPhase" ] ++ args.postPhases or []; #postPhases = [ "fixupOutputsPhase" ] ++ args.postPhases or [];
preHook =
''
${optionalString (elem "bin" outputs) ''
configureFlags="--bindir=$bin/bin --mandir=$bin/share/man $configureFlags"
''}
${optionalString (elem "lib" outputs) ''
configureFlags="--libdir=$lib/lib $configureFlags"
''}
${optionalString (elem "dev" outputs) ''
configureFlags="--includedir=$dev/include $configureFlags"
installFlags="pkgconfigdir=$dev/lib/pkgconfig m4datadir=$dev/share/aclocal aclocaldir=$dev/share/aclocal $installFlags"
''}
'';
preFixup = preFixup =
'' ''
runHook preFixupOutputs runHook preFixupOutputs
if [ -n "$doc" -a -e $out/share/doc ]; then if [ -n "$doc" ]; then
mkdir -p $doc/share/doc for i in share/doc share/gtk-doc; do
mv $out/share/doc/* $doc/share/doc if [ -e $out/$i ]; then
rmdir $out/share/doc mkdir -p $doc/$i
mv $out/$i/* $doc/$i/
rmdir $out/$i
fi
done
rmdir --ignore-fail-on-non-empty $out/share rmdir --ignore-fail-on-non-empty $out/share
fi fi