{ lib, stdenv, pkg-config, net-snmp, erlang, }: stdenv.mkDerivation { pname = "towerops-nif"; version = "0.1.0"; src = lib.sourceByRegex ../. [ "^c_src" "^c_src/.*\\.c$" "^c_src/.*\\.h$" "^c_src/Makefile$" ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ net-snmp erlang ]; # Set Erlang include path for NIF headers preBuild = '' export ERL_INCLUDE_PATH="${erlang}/lib/erlang/erts-${erlang.version}/include" ''; # Build using the existing Makefile buildPhase = '' runHook preBuild cd c_src make -j$NIX_BUILD_CORES runHook postBuild ''; # Install the shared library installPhase = '' runHook preInstall mkdir -p $out/lib cp ../priv/towerops_nif.so $out/lib/ runHook postInstall ''; meta = { description = "C NIF for SNMP MIB resolution in Towerops"; license = lib.licenses.proprietary; platforms = lib.platforms.unix; }; }