nss: cross compile support
This commit is contained in:
parent
5b00f65402
commit
8f4dcedbb0
1 changed files with 20 additions and 5 deletions
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames }:
|
{ stdenv, fetchurl, nspr, perl, zlib, sqlite, fixDarwinDylibNames, buildPackages }:
|
||||||
|
|
||||||
let
|
let
|
||||||
nssPEM = fetchurl {
|
nssPEM = fetchurl {
|
||||||
|
@ -17,7 +17,11 @@ in stdenv.mkDerivation rec {
|
||||||
sha256 = "1ihzqspvqjmysp1c15xxr7kqvj3zm9dqnanxhkaxyjgx71yv6z88";
|
sha256 = "1ihzqspvqjmysp1c15xxr7kqvj3zm9dqnanxhkaxyjgx71yv6z88";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ perl zlib sqlite ]
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ perl ];
|
||||||
|
|
||||||
|
buildInputs = [ zlib sqlite ]
|
||||||
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
|
||||||
|
|
||||||
propagatedBuildInputs = [ nspr ];
|
propagatedBuildInputs = [ nspr ];
|
||||||
|
@ -43,7 +47,9 @@ in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
preConfigure = "cd nss";
|
preConfigure = "cd nss";
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = let
|
||||||
|
cpu = stdenv.hostPlatform.parsed.cpu.name;
|
||||||
|
in [
|
||||||
"NSPR_INCLUDE_DIR=${nspr.dev}/include"
|
"NSPR_INCLUDE_DIR=${nspr.dev}/include"
|
||||||
"NSPR_LIB_DIR=${nspr.out}/lib"
|
"NSPR_LIB_DIR=${nspr.out}/lib"
|
||||||
"NSDISTMODE=copy"
|
"NSDISTMODE=copy"
|
||||||
|
@ -52,6 +58,12 @@ in stdenv.mkDerivation rec {
|
||||||
"NSS_ENABLE_ECC=1"
|
"NSS_ENABLE_ECC=1"
|
||||||
"USE_SYSTEM_ZLIB=1"
|
"USE_SYSTEM_ZLIB=1"
|
||||||
"NSS_USE_SYSTEM_SQLITE=1"
|
"NSS_USE_SYSTEM_SQLITE=1"
|
||||||
|
"NATIVE_CC=${buildPackages.stdenv.cc}/bin/cc"
|
||||||
|
"OS_TEST=${cpu}"
|
||||||
|
"CPU_ARCH=${cpu}"
|
||||||
|
] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [
|
||||||
|
"CROSS_COMPILE=1"
|
||||||
|
"NSS_DISABLE_GTESTS=1" # don't want to build tests when cross-compiling
|
||||||
] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1"
|
] ++ stdenv.lib.optional stdenv.is64bit "USE_64=1"
|
||||||
++ stdenv.lib.optional stdenv.isDarwin "CCC=clang++";
|
++ stdenv.lib.optional stdenv.isDarwin "CCC=clang++";
|
||||||
|
|
||||||
|
@ -95,7 +107,10 @@ in stdenv.mkDerivation rec {
|
||||||
chmod 0755 $out/bin/nss-config
|
chmod 0755 $out/bin/nss-config
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = let
|
||||||
|
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||||
|
nss = if isCross then buildPackages.nss.tools else "$out";
|
||||||
|
in ''
|
||||||
for libname in freebl3 nssdbm3 softokn3
|
for libname in freebl3 nssdbm3 softokn3
|
||||||
do '' +
|
do '' +
|
||||||
(if stdenv.isDarwin
|
(if stdenv.isDarwin
|
||||||
|
@ -106,7 +121,7 @@ in stdenv.mkDerivation rec {
|
||||||
libfile="$out/lib/lib$libname.so"
|
libfile="$out/lib/lib$libname.so"
|
||||||
LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
|
LD_LIBRARY_PATH=$out/lib:${nspr.out}/lib \
|
||||||
'') + ''
|
'') + ''
|
||||||
$out/bin/shlibsign -v -i "$libfile"
|
${nss}/bin/shlibsign -v -i "$libfile"
|
||||||
done
|
done
|
||||||
|
|
||||||
moveToOutput bin "$tools"
|
moveToOutput bin "$tools"
|
||||||
|
|
Loading…
Reference in a new issue