python312Packages.vdf: avoid using pname for src.repo
[NixPkgs.git] / pkgs / os-specific / linux / minimal-bootstrap / gnumake / musl.nix
blob47b3de03c4ca9c042c6ec9cd4afbddecd3ca43ea
1 { lib
2 , buildPlatform
3 , hostPlatform
4 , fetchurl
5 , bash
6 , tinycc
7 , gnumakeBoot
8 , gnupatch
9 , gnused
10 , gnugrep
11 , gawk
12 , gnutar
13 , gzip
15 let
16   pname = "gnumake-musl";
17   version = "4.4.1";
19   src = fetchurl {
20     url = "mirror://gnu/make/make-${version}.tar.gz";
21     hash = "sha256-3Rb7HWe/q3mnL16DkHNcSePo5wtJRaFasfgd23hlj7M=";
22   };
24   patches = [
25     # Replaces /bin/sh with sh, see patch file for reasoning
26     ./0001-No-impure-bin-sh.patch
27     # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
28     # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
29     # included Makefiles, don't look in /usr/include and friends.
30     ./0002-remove-impure-dirs.patch
31   ];
33 bash.runCommand "${pname}-${version}" {
34   inherit pname version;
36   nativeBuildInputs = [
37     tinycc.compiler
38     gnumakeBoot
39     gnupatch
40     gnused
41     gnugrep
42     gawk
43     gnutar
44     gzip
45   ];
47   passthru.tests.get-version = result:
48     bash.runCommand "${pname}-get-version-${version}" {} ''
49       ${result}/bin/make --version
50       mkdir $out
51     '';
53   meta = with lib; {
54     description = "Tool to control the generation of non-source files from sources";
55     homepage = "https://www.gnu.org/software/make";
56     license = licenses.gpl3Plus;
57     maintainers = teams.minimal-bootstrap.members;
58     mainProgram = "make";
59     platforms = platforms.unix;
60   };
61 } ''
62   # Unpack
63   tar xzf ${src}
64   cd make-${version}
66   # Patch
67   ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches}
69   # Configure
70   export CC="tcc -B ${tinycc.libs}/lib"
71   export LD=tcc
72   bash ./configure \
73     --prefix=$out \
74     --build=${buildPlatform.config} \
75     --host=${hostPlatform.config}
77   # Build
78   make AR="tcc -ar"
80   # Install
81   make install