3
0
Fork 0
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:
Lluís Batlle i Rossell 2009-11-21 10:44:22 +00:00
parent 3136303d63
commit ca5d91aa60
5 changed files with 39 additions and 2 deletions

View file

@ -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";

View file

@ -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";

View file

@ -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;
} }

View file

@ -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 // {

View file

@ -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;