nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix
Jonathan Ringer 9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00

60 lines
2.2 KiB
Nix

{ stdenv, fetchurl, guileSupport ? false, pkg-config ? null , guile ? null }:
assert guileSupport -> ( pkg-config != null && guile != null );
let
version = "4.3";
in
stdenv.mkDerivation {
pname = "gnumake";
inherit version;
src = fetchurl {
url = "mirror://gnu/make/make-${version}.tar.gz";
sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0";
};
patches = [
# Purity: don't look for library dependencies (of the form `-lfoo') in /lib
# and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
# included Makefiles, don't look in /usr/include and friends.
./impure-dirs.patch
];
nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkg-config ];
buildInputs = stdenv.lib.optionals guileSupport [ guile ];
configureFlags = stdenv.lib.optional guileSupport "--with-guile"
# Make uses this test to decide whether it should keep track of
# subseconds. Apple made this possible with APFS and macOS 10.13.
# However, we still support macOS 10.11 and 10.12. Binaries built
# in Nixpkgs will be unable to use futimens to set mtime less than
# a second. So, tell Make to ignore nanoseconds in mtime here by
# overriding the autoconf test for the struct.
# See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
outputs = [ "out" "man" "info" ];
meta = with stdenv.lib; {
homepage = "https://www.gnu.org/software/make/";
description = "A tool to control the generation of non-source files from sources";
license = licenses.gpl3Plus;
longDescription = ''
Make is a tool which controls the generation of executables and
other non-source files of a program from the program's source files.
Make gets its knowledge of how to build your program from a file
called the makefile, which lists each of the non-source files and
how to compute it from other files. When you write a program, you
should write a makefile for it, so that it is possible to use Make
to build and install the program.
'';
platforms = platforms.all;
maintainers = [ maintainers.vrthra ];
};
}