@ -1,21 +1,27 @@
{ stdenv , fetchurl , fetchgit , perl , texinfo }:
{ stdenv , fetchFromRepoOrCz , perl , texinfo }:
assert stdenv ? glibc ;
assert ( stdenv . isGlibc ) ;
with stdenv . lib ;
let
date = " 2 0 1 6 0 5 2 5 " ;
version = " 0 . 9 . 2 7 p r e - ${ date } " ;
rev = " 1 c a 6 8 5 f 8 8 7 3 1 0 b 5 c b d c 4 1 5 c d f c 3 a 5 7 8 d b c 8 d 8 2 d 8 " ;
sha256 = " 1 4 9 s 8 4 7 j k g 2 z d m k 0 9 h 0 c p 0 q 6 9 m 8 k x x c i 4 4 1 z y w 8 b 0 8 f y 9 b 8 7 a y d 8 " ;
in
stdenv . mkDerivation rec {
#name = "tcc-0.9.26";
name = " t c c - g i t - 0 . 9 . 2 7 p r e - 2 0 1 6 0 3 2 8 " ;
#src = fetchurl {
# url = "mirror://savannah/tinycc/${name}.tar.bz2";
# sha256 = "0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj";
#};
src = fetchgit {
url = " g i t : / / r e p o . o r . c z / t i n y c c . g i t " ;
rev = " 8 0 3 4 3 a b 7 d 8 2 9 c 2 1 c 6 5 f 8 f 9 a 1 4 d d 2 0 1 5 8 d 0 2 8 5 4 9 f " ;
sha256 = " 0 l 2 q h l v w y a 2 d j j b w x g w v h f a 1 1 b s c q c w 1 x 8 w 5 d z y 7 k l z n s 7 7 3 p v 7 d " ;
name = " t c c - ${ version } " ;
src = fetchFromRepoOrCz {
repo = " t i n y c c " ;
inherit rev ;
inherit sha256 ;
} ;
outputs = [ " d e v " " o u t " " b i n " ] ;
nativeBuildInputs = [ perl texinfo ] ;
postPatch = ''
@ -33,37 +39,41 @@ stdenv.mkDerivation rec {
doCheck = true ;
checkTarget = " t e s t " ;
postFixup = ''
paxmark m $ out/bin/tcc
'' ;
meta = {
description = " S m a l l , f a s t , a n d e m b e d d a b l e C c o m p i l e r a n d i n t e r p r e t e r " ;
longDescription =
'' T i n y C C ( a k a T C C ) i s a s m a l l b u t h y p e r f a s t C c o m p i l e r . U n l i k e
other C compilers , it is meant to be self-sufficient : you do not
need an external assembler or linker because TCC does that for
you .
longDescription = ''
TinyCC ( aka TCC ) is a small but hyper fast C compiler . Unlik e
other C compilers , it is meant to be self-sufficient : you do not
need an external assembler or linker because TCC does that for
you .
TCC compiles so fast that even for big projects Makefiles may not
be necessary .
TCC compiles so fast that even for big projects Makefiles may not
be necessary .
TCC not only supports ANSI C , but also most of the new ISO C99
standard and many GNU C extensions .
TCC not only supports ANSI C , but also most of the new ISO C99
standard and many GNU C extensions .
TCC can also be used to make C scripts , i . e . pieces of C source
that you run as a Perl or Python script . Compilation is so fast
that your script will be as fast as if it was an executable .
TCC can also be used to make C scripts , i . e . pieces of C source
that you run as a Perl or Python script . Compilation is so fast
that your script will be as fast as if it was an executable .
TCC can also automatically generate memory and bound checks while
allowing all C pointers operations . TCC can do these checks even
if non patched libraries are used .
TCC can also automatically generate memory and bound checks while
allowing all C pointers operations . TCC can do these checks even
if non patched libraries are used .
With libtcc , you can use TCC as a backend for dynamic code
generation .
'' ;
With libtcc , you can use TCC as a backend for dynamic code
generation .
'' ;
homepage = http://www.tinycc.org/ ;
license = stdenv . lib . licenses . lgpl2Plus ;
license = licenses . lgpl2Plus ;
platforms = stdenv . lib . platforms . unix ;
maintainers = [ ] ;
platforms = platforms . unix ;
maintainers = [ maintainers . joachifm ] ;
} ;
}