nixpkgs/pkgs/development/compilers/tinycc/default.nix
Michael Raskin 9e48add3e0 Try protecting FreeBSD from instntiating TinyCC
svn path=/nixpkgs/trunk/; revision=13184
2008-11-03 19:16:21 +00:00

42 lines
1.2 KiB
Nix

{ stdenv, fetchurl, perl, texinfo }:
assert stdenv ? glibc;
let version = "0.9.24"; in
stdenv.mkDerivation {
name = "tinycc-${version}";
src = fetchurl {
url = "mirror://savannah/tinycc/tcc-${version}.tar.bz2";
sha256 = "0yafz627ky0lhppa6g1mfmisnis745m39l15aixmmv5n383x9bi7";
};
buildInputs = [ perl texinfo ];
patchPhase = ''
substituteInPlace "texi2pod.pl" \
--replace "/usr/bin/perl" "${perl}/bin/perl"
# To produce executables, `tcc' needs to know where `crt*.o' are.
sed -i "tcc.c" \
-e's|define CONFIG_TCC_CRT_PREFIX.*$|define CONFIG_TCC_CRT_PREFIX "${stdenv.glibc}/lib"|g ;
s|tcc_add_library_path(s, "/usr/lib");|tcc_add_library_path(s, "${stdenv.glibc}/lib");|g'
# Tell it about the loader's location.
sed -i "tccelf.c" \
-e's|".*/ld-linux\([^"]\+\)"|"${stdenv.glibc}/lib/ld-linux\1"|g'
'';
postInstall = ''
makeinfo --force tcc-doc.texi || true
ensureDir "$out/share/info"
mv tcc-doc.info* "$out/share/info"
'';
meta = {
description = "TinyCC, a small, fast, and embeddable C compiler and interpreter";
homepage = http://www.tinycc.org/;
license = "LGPLv2+";
};
}