blob: 435747e12486770f8efcdb0b7024ff91c73f8ae7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{ 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+";
};
}
|