diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/default.nix b/pkgs/development/tools/build-managers/gnumake/4.1/default.nix new file mode 100644 index 00000000000..edcee1f465f --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.1/default.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl }: + +let + version = "4.1"; +in +stdenv.mkDerivation { + name = "gnumake-${version}"; + + src = fetchurl { + url = "mirror://gnu/make/make-${version}.tar.bz2"; + sha256 = "19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb"; + }; + + patchFlags = "-p0"; + 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 + ]; + + meta = { + homepage = http://www.gnu.org/software/make/; + description = "A tool to control the generation of non-source files from sources"; + license = stdenv.lib.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. + ''; + + maintainers = with stdenv.lib.maintainers; [ ludo simons ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch new file mode 100644 index 00000000000..f6646f1d012 --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.1/impure-dirs.patch @@ -0,0 +1,34 @@ +diff -rc read.c read.c +*** read.c 2006-03-17 15:24:20.000000000 +0100 +--- read.c 2007-05-24 17:16:31.000000000 +0200 +*************** +*** 99,107 **** +--- 99,109 ---- + #endif + INCLUDEDIR, + #ifndef _AMIGA ++ #if 0 + "/usr/gnu/include", + "/usr/local/include", + "/usr/include", ++ #endif + #endif + 0 + }; +diff -rc reremake.c +*** remake.c 2006-03-20 03:36:37.000000000 +0100 +--- remake.c 2007-05-24 17:06:54.000000000 +0200 +*************** +*** 1452,1460 **** +--- 1452,1462 ---- + static char *dirs[] = + { + #ifndef _AMIGA ++ #if 0 + "/lib", + "/usr/lib", + #endif ++ #endif + #if defined(WINDOWS32) && !defined(LIBDIR) + /* + * This is completely up to the user at product install time. Just define diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1a297e485a4..1ab5cab1631 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4577,7 +4577,8 @@ let gnumake380 = callPackage ../development/tools/build-managers/gnumake/3.80 { }; gnumake381 = callPackage ../development/tools/build-managers/gnumake/3.81 { }; gnumake382 = callPackage ../development/tools/build-managers/gnumake/3.82 { }; - gnumake40 = callPackage ../development/tools/build-managers/gnumake/4.0 { }; + gnumake40 = callPackage ../development/tools/build-managers/gnumake/4.0 { }; + gnumake41 = callPackage ../development/tools/build-managers/gnumake/4.1 { }; gnumake = gnumake382; gob2 = callPackage ../development/tools/misc/gob2 { };