blob: e55fd2c3324ccfd61c5526174d0b30919a5567f6 (
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
|
{ stdenv, idris, packages }: stdenv.mkDerivation {
inherit (idris) name;
inherit packages;
unpackPhase = ''
cat >idris.c <<EOF
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int main (int argc, char ** argv) {
/* idris currently only supports a single library path, so respect it if the user set it */
setenv("IDRIS_LIBRARY_PATH", "$out/lib/${idris.name}", 0);
execv("${idris}/bin/idris", argv);
perror("executing ${idris}/bin/idris");
return 127;
}
EOF
'';
buildPhase = ''
gcc -O3 -o idris idris.c
'';
installPhase = ''
mkdir -p $out/lib/${idris.name}
for package in $packages
do
ln -sv $package/lib/${idris.name}/* $out/lib/${idris.name}
done
mkdir -p $out/bin
mv idris $out/bin
'';
stripAllList = [ "bin" ];
}
|