{ stdenv, lib, kernel, fetchurl, pkgconfig, numactl, shared ? false }: let kver = kernel.modDirVersion or null; mod = kernel != null; in stdenv.mkDerivation rec { name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}"; version = "17.11.2"; src = fetchurl { url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz"; sha256 = "19m5l3jkrns8r1zbjb6ry18w50ff36kbl5b5g6pfcp9p57sfisd2"; }; nativeBuildInputs = [ pkgconfig ]; buildInputs = [ numactl ] ++ lib.optional mod kernel.moduleBuildDependencies; RTE_KERNELDIR = if mod then "${kernel.dev}/lib/modules/${kver}/build" else "/var/empty"; RTE_TARGET = "x86_64-native-linuxapp-gcc"; # we need sse3 instructions to build NIX_CFLAGS_COMPILE = [ "-msse3" ]; hardeningDisable = [ "pic" ]; postPatch = '' cat >>config/defconfig_$RTE_TARGET <>config/defconfig_$RTE_TARGET <