1{ stdenv, fetchurl, libelf }:
2
3let
4 version = "20181024";
5 src = fetchurl {
6 url = "https://www.prevanders.net/libdwarf-${version}.tar.gz";
7 # Upstream displays this hash broken into three parts:
8 sha512 = "02f8024bb9959c91a1fe322459f7587a589d096595"
9 + "6d643921a173e6f9e0a184db7aef66f0fd2548d669"
10 + "5be7f9ee368f1cc8940cea4ddda01ff99d28bbf1fe58";
11 };
12 meta = {
13 homepage = https://www.prevanders.net/dwarf.html;
14 platforms = stdenv.lib.platforms.linux;
15 license = stdenv.lib.licenses.lgpl21Plus;
16 };
17
18in rec {
19 libdwarf = stdenv.mkDerivation rec {
20 name = "libdwarf-${version}";
21
22 configureFlags = [ "--enable-shared" "--disable-nonshared" ];
23
24 preConfigure = ''
25 cd libdwarf
26 '';
27 buildInputs = [ libelf ];
28
29 installPhase = ''
30 mkdir -p $out/lib $out/include
31 cp libdwarf.so.1 $out/lib
32 ln -s libdwarf.so.1 $out/lib/libdwarf.so
33 cp libdwarf.h dwarf.h $out/include
34 '';
35
36 inherit meta src;
37 };
38
39 dwarfdump = stdenv.mkDerivation rec {
40 name = "dwarfdump-${version}";
41
42 preConfigure = ''
43 cd dwarfdump
44 '';
45
46 buildInputs = [ libelf libdwarf ];
47
48 installPhase = ''
49 install -m755 -D dwarfdump $out/bin/dwarfdump
50 '';
51
52 inherit meta src;
53 };
54}