1{ lib
2, stdenv
3, fetchFromGitHub
4, pkg-config
5, autoreconfHook
6, enablePsm2 ? (stdenv.isx86_64 && stdenv.isLinux)
7, libpsm2
8, enableOpx ? (stdenv.isx86_64 && stdenv.isLinux)
9, libuuid
10, numactl
11}:
12
13stdenv.mkDerivation rec {
14 pname = "libfabric";
15 version = "1.18.0";
16
17 enableParallelBuilding = true;
18
19 src = fetchFromGitHub {
20 owner = "ofiwg";
21 repo = pname;
22 rev = "v${version}";
23 sha256 = "sha256-30ADIUbpzwyxMJtPyLDwXYGJF4c1ZiSJH2mBBtgfE18=";
24 };
25
26 nativeBuildInputs = [ pkg-config autoreconfHook ];
27
28 buildInputs = lib.optionals enableOpx [ libuuid numactl ] ++ lib.optionals enablePsm2 [ libpsm2 ];
29
30 configureFlags = [
31 (if enablePsm2 then "--enable-psm2=${libpsm2}" else "--disable-psm2")
32 (if enableOpx then "--enable-opx" else "--disable-opx")
33 ];
34
35 meta = with lib; {
36 homepage = "https://ofiwg.github.io/libfabric/";
37 description = "Open Fabric Interfaces";
38 license = with licenses; [ gpl2 bsd2 ];
39 platforms = platforms.all;
40 maintainers = [ maintainers.bzizou ];
41 };
42}