forked from mirrors/nixpkgs
Made more libraries cross compile. fontconfig, libxcb, bzip2, libdrm, zlib...
I was trying to cross compile SDL. Many dependencies work, but I ended seeing libX11 not ready for cross compilation. Other xorg libraries cross-compile well. libX11 may need a small patch. The problem is the usual "configure test cannot be run in cross compilation", so the configure script halts. I made the pkgconfig expression always return buildDrv, as I think it rarely will be needed as buildInput. So to avoid rewriting all its mentions to use it as buildNativeInput, I prefered this small change. svn path=/nixpkgs/branches/stdenv-updates/; revision=18500
This commit is contained in:
parent
3136303d63
commit
ca5d91aa60
|
@ -13,6 +13,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
configureFlags = "--with-confdir=/etc/fonts --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
|
configureFlags = "--with-confdir=/etc/fonts --with-cache-dir=/var/cache/fontconfig --disable-docs --with-default-fonts=";
|
||||||
|
|
||||||
|
crossArch = stdenv.cross.arch;
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
if test -n "$crossConfig"; then
|
||||||
|
configureFlags="$configureFlags --with-arch=$crossArch";
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
# Don't try to write to /etc/fonts or /var/cache/fontconfig at install time.
|
# Don't try to write to /etc/fonts or /var/cache/fontconfig at install time.
|
||||||
installFlags = "CONFDIR=$(out)/etc/fonts RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
|
installFlags = "CONFDIR=$(out)/etc/fonts RUN_FC_CACHE_TEST=false fc_cachedir=$(TMPDIR)/dummy";
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,13 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = [ pkgconfig libpthreadstubs ];
|
buildInputs = [ pkgconfig libpthreadstubs ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
# General case: non intel.
|
||||||
|
if test -n "$crossConfig"; then
|
||||||
|
configureFlags="$configureFlags --disable-intel";
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = http://dri.freedesktop.org/libdrm/;
|
homepage = http://dri.freedesktop.org/libdrm/;
|
||||||
description = "Library for accessing the kernel's Direct Rendering Manager";
|
description = "Library for accessing the kernel's Direct Rendering Manager";
|
||||||
|
|
|
@ -8,6 +8,13 @@ stdenv.mkDerivation {
|
||||||
};
|
};
|
||||||
configureFlags = if static then "" else "--shared";
|
configureFlags = if static then "" else "--shared";
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
if test -n "$crossConfig"; then
|
||||||
|
export CC=$crossConfig-gcc
|
||||||
|
configureFlags=${if static then "" else "--shared"}
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
# zlib doesn't like the automatic --disable-shared from the Cygwin stdenv.
|
# zlib doesn't like the automatic --disable-shared from the Cygwin stdenv.
|
||||||
cygwinConfigureEnableShared = true;
|
cygwinConfigureEnableShared = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,17 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
libxcb = attrs : attrs // {
|
libxcb = attrs : attrs // {
|
||||||
buildInputs = attrs.buildInputs ++ [ xorg.xproto ];
|
# I only remove python from the original, and add xproto. I don't know how
|
||||||
|
# to achieve that referring to attrs.buildInputs.
|
||||||
|
buildInputs = [args.pkgconfig args.libxslt xorg.libpthreadstubs /*xorg.python*/
|
||||||
|
xorg.libXau xorg.xcbproto xorg.libXdmcp ] ++ [ xorg.xproto ];
|
||||||
|
buildNativeInputs = [ args.python ];
|
||||||
|
};
|
||||||
|
|
||||||
|
xcbproto = attrs : attrs // {
|
||||||
|
# I only remove python from the original.
|
||||||
|
buildInputs = [args.pkgconfig /*xorg.python*/ ];
|
||||||
|
buildNativeInputs = [ args.python ];
|
||||||
};
|
};
|
||||||
|
|
||||||
libXext = attrs: attrs // {
|
libXext = attrs: attrs // {
|
||||||
|
|
|
@ -2874,11 +2874,16 @@ let
|
||||||
* pkgconfig is optionally taken from the stdenv to allow bootstrapping
|
* pkgconfig is optionally taken from the stdenv to allow bootstrapping
|
||||||
* of glib and pkgconfig itself on MinGW.
|
* of glib and pkgconfig itself on MinGW.
|
||||||
*/
|
*/
|
||||||
pkgconfig = useFromStdenv "pkgconfig"
|
pkgconfigReal = useFromStdenv "pkgconfig"
|
||||||
(import ../development/tools/misc/pkgconfig {
|
(import ../development/tools/misc/pkgconfig {
|
||||||
inherit fetchurl stdenv;
|
inherit fetchurl stdenv;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* Make pkgconfig always return a buildDrv, never a proper hostDrv,
|
||||||
|
because most usage of pkgconfig as buildInput (inheritance of
|
||||||
|
pre-cross nixpkgs) means using it using as buildNativeInput */
|
||||||
|
pkgconfig = pkgconfigReal // { hostDrv = pkgconfigReal.buildDrv; };
|
||||||
|
|
||||||
radare = import ../development/tools/analysis/radare {
|
radare = import ../development/tools/analysis/radare {
|
||||||
inherit stdenv fetchurl pkgconfig libusb readline gtkdialog python
|
inherit stdenv fetchurl pkgconfig libusb readline gtkdialog python
|
||||||
ruby libewf perl;
|
ruby libewf perl;
|
||||||
|
|
Loading…
Reference in a new issue