blob: a5b8980e32cf519a280fd6eff668cba338024dd8 (
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
43
44
45
46
47
48
49
50
51
52
|
{ stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep, file }:
stdenv.mkDerivation rec {
version = "1.0.6";
name = "arduino-core";
src = fetchFromGitHub {
owner = "arduino";
repo = "Arduino";
rev = "${version}";
sha256 = "0nr5b719qi03rcmx6swbhccv6kihxz3b8b6y46bc2j348rja5332";
};
buildInputs = [ jdk ant file ];
buildPhase = ''
cd ./core && ant
cd ../build && ant
cd ..
'';
installPhase = ''
mkdir -p $out/share/arduino
cp -r ./build/linux/work/hardware/ $out/share/arduino
cp -r ./build/linux/work/libraries/ $out/share/arduino
cp -r ./build/linux/work/tools/ $out/share/arduino
cp -r ./build/linux/work/lib/ $out/share/arduino
echo ${version} > $out/share/arduino/lib/version.txt
# Fixup "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
echo "running patchelf on prebuilt binaries:"
find "$out" | while read filepath; do
if file "$filepath" | grep -q "ELF.*executable"; then
# skip target firmware files
if echo "$filepath" | grep -q "\.elf$"; then
continue
fi
echo "setting interpreter $(cat "$NIX_CC"/nix-support/dynamic-linker) in $filepath"
patchelf --set-interpreter "$(cat "$NIX_CC"/nix-support/dynamic-linker)" "$filepath"
test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; }
fi
done
'';
meta = {
description = "Libraries for the open-source electronics prototyping platform";
homepage = http://arduino.cc/;
license = stdenv.lib.licenses.gpl2;
maintainers = [ stdenv.lib.maintainers.antono stdenv.lib.maintainers.robberer ];
};
}
|