about summary refs log tree commit diff
path: root/pkgs/os-specific/bsd/netbsd/pkgs/libc.nix
blob: d755e4b6870a1cf935cec56d5d056b6bd05ca46c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{
  lib,
  mkDerivation,
  defaultMakeFlags,
  _mainLibcExtraPaths,
  fetchNetBSD,
  bsdSetupHook,
  netbsdSetupHook,
  makeMinimal,
  install,
  mandoc,
  groff,
  flex,
  byacc,
  genassym,
  gencat,
  lorder,
  tsort,
  statHook,
  rsync,
  rpcgen,
  csu,
  headers,
  librt,
}:

mkDerivation {
  path = "lib/libc";
  version = "9.2";
  sha256 = "1y9c13igg0kai07sqvf9cm6yqmd8lhfd8hq3q7biilbgs1l99as3";
  USE_FORT = "yes";
  MKPROFILE = "no";
  extraPaths = _mainLibcExtraPaths ++ [
    (fetchNetBSD "external/bsd/jemalloc" "9.2" "0cq704swa0h2yxv4gc79z2lwxibk9k7pxh3q5qfs7axx3jx3n8kb")
  ];
  nativeBuildInputs = [
    bsdSetupHook
    netbsdSetupHook
    makeMinimal
    install
    mandoc
    groff
    flex
    byacc
    genassym
    gencat
    lorder
    tsort
    statHook
    rsync
    rpcgen
  ];
  buildInputs = [
    headers
    csu
  ];
  env.NIX_CFLAGS_COMPILE = "-B${csu}/lib -fcommon";
  meta.platforms = lib.platforms.netbsd;
  SHLIBINSTALLDIR = "$(out)/lib";
  MKPICINSTALL = "yes";
  NLSDIR = "$(out)/share/nls";
  makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/var/db" ];
  postInstall = ''
    pushd ${headers}
    find . -type d -exec mkdir -p $out/\{} \;
    find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
    popd

    pushd ${csu}
    find . -type d -exec mkdir -p $out/\{} \;
    find . \( -type f -o -type l \) -exec cp -pr \{} $out/\{} \;
    popd

    NIX_CFLAGS_COMPILE+=" -B$out/lib"
    NIX_CFLAGS_COMPILE+=" -I$out/include"
    NIX_LDFLAGS+=" -L$out/lib"

    make -C $BSDSRCDIR/lib/libpthread $makeFlags
    make -C $BSDSRCDIR/lib/libpthread $makeFlags install

    make -C $BSDSRCDIR/lib/libm $makeFlags
    make -C $BSDSRCDIR/lib/libm $makeFlags install

    make -C $BSDSRCDIR/lib/libresolv $makeFlags
    make -C $BSDSRCDIR/lib/libresolv $makeFlags install

    make -C $BSDSRCDIR/lib/librpcsvc $makeFlags
    make -C $BSDSRCDIR/lib/librpcsvc $makeFlags install

    make -C $BSDSRCDIR/lib/i18n_module $makeFlags
    make -C $BSDSRCDIR/lib/i18n_module $makeFlags install

    make -C $BSDSRCDIR/lib/libutil $makeFlags
    make -C $BSDSRCDIR/lib/libutil $makeFlags install

    make -C $BSDSRCDIR/lib/librt $makeFlags
    make -C $BSDSRCDIR/lib/librt $makeFlags install

    make -C $BSDSRCDIR/lib/libcrypt $makeFlags
    make -C $BSDSRCDIR/lib/libcrypt $makeFlags install
  '';
  inherit (librt) postPatch;
}