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.19.0";
16
17 enableParallelBuilding = true;
18
19 src = fetchFromGitHub {
20 owner = "ofiwg";
21 repo = pname;
22 rev = "v${version}";
23 sha256 = "sha256-7VOhdZOPBe1qh8OK8OTNKA5I4A5whl6aOubAzsUDSRw=";
24 };
25
26 outputs = [ "out" "dev" "man" ];
27
28 nativeBuildInputs = [ pkg-config autoreconfHook ];
29
30 buildInputs = lib.optionals enableOpx [ libuuid numactl ] ++ lib.optionals enablePsm2 [ libpsm2 ];
31
32 configureFlags = [
33 (if enablePsm2 then "--enable-psm2=${libpsm2}" else "--disable-psm2")
34 (if enableOpx then "--enable-opx" else "--disable-opx")
35 ];
36
37 meta = with lib; {
38 homepage = "https://ofiwg.github.io/libfabric/";
39 description = "Open Fabric Interfaces";
40 license = with licenses; [ gpl2 bsd2 ];
41 platforms = platforms.all;
42 maintainers = [ maintainers.bzizou ];
43 };
44}