diff options
Diffstat (limited to 'pkgs/development/tools/uftrace/default.nix')
-rw-r--r-- | pkgs/development/tools/uftrace/default.nix | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/pkgs/development/tools/uftrace/default.nix b/pkgs/development/tools/uftrace/default.nix index beb0a511aacf6..8b8f9d80feb18 100644 --- a/pkgs/development/tools/uftrace/default.nix +++ b/pkgs/development/tools/uftrace/default.nix @@ -1,4 +1,17 @@ -{lib, stdenv, fetchFromGitHub}: +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, pandoc +, capstone +, elfutils +, libtraceevent +, ncurses +, withLuaJIT ? false +, luajit +, withPython ? false +, python3 +}: stdenv.mkDerivation rec { pname = "uftrace"; @@ -11,8 +24,23 @@ stdenv.mkDerivation rec { sha256 = "sha256-JuBwyE6JH3CpJH863LbnWELUIIEKVaAcz8h8beeABGQ="; }; + nativeBuildInputs = [ pkg-config pandoc ]; + buildInputs = + [ capstone elfutils libtraceevent ncurses ] + ++ lib.optional withLuaJIT luajit + ++ lib.optional withPython python3; + + # libmcount.so dlopens python and luajit, make sure they're in the RUNPATH + preBuild = + let + libs = lib.optional withLuaJIT "luajit" ++ lib.optional withPython "python3-embed"; + in + lib.optionalString (withLuaJIT || withPython) '' + makeFlagsArray+=(LDFLAGS_lib="$(pkg-config --libs ${lib.concatStringsSep " " libs})") + ''; + postUnpack = '' - patchShebangs . + patchShebangs . ''; meta = { @@ -21,6 +49,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/namhyung/uftrace"; license = lib.licenses.gpl2; platforms = lib.platforms.linux; - maintainers = [lib.maintainers.nthorne]; + maintainers = [ lib.maintainers.nthorne ]; }; } |