From 6dfc18dc00c159a0ee579153a56811c5ece0905e Mon Sep 17 00:00:00 2001 From: Peter Simons Date: Mon, 9 Dec 2013 16:14:41 +0100 Subject: [PATCH] gnumake: add version 4.0 --- .../4.0/darwin-library_search-dylib.patch | 17 +++++++ .../build-managers/gnumake/4.0/default.nix | 49 +++++++++++++++++++ .../gnumake/4.0/impure-dirs.patch | 34 +++++++++++++ pkgs/top-level/all-packages.nix | 1 + 4 files changed, 101 insertions(+) create mode 100644 pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch create mode 100644 pkgs/development/tools/build-managers/gnumake/4.0/default.nix create mode 100644 pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch b/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch new file mode 100644 index 00000000000..de7e4f61521 --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch @@ -0,0 +1,17 @@ +Fixed default libpatttern on Darwin, imported from prefix overlay. +Got merged upstream: +https://savannah.gnu.org/bugs/?37197 +--- default.c.orig 2009-05-02 12:25:24 +0200 ++++ default.c 2009-05-02 12:25:58 +0200 +@@ -509,7 +509,11 @@ + #ifdef __MSDOS__ + ".LIBPATTERNS", "lib%.a $(DJDIR)/lib/lib%.a", + #else ++#ifdef __APPLE__ ++ ".LIBPATTERNS", "lib%.dylib lib%.a", ++#else + ".LIBPATTERNS", "lib%.so lib%.a", ++#endif + #endif + #endif + diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/default.nix b/pkgs/development/tools/build-managers/gnumake/4.0/default.nix new file mode 100644 index 00000000000..6a76fa0302b --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.0/default.nix @@ -0,0 +1,49 @@ +{stdenv, fetchurl}: + +let version = "4.0"; in +stdenv.mkDerivation { + name = "gnumake-${version}"; + + src = fetchurl { + url = "mirror://gnu/make/make-${version}.tar.bz2"; + sha256 = "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6"; + }; + + /* On Darwin, there are 3 test failures that haven't been investigated + yet. */ + doCheck = !stdenv.isDarwin && !stdenv.isFreeBSD; + + 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 + + # a bunch of patches from Gentoo, mostly should be from upstream (unreleased) + ./darwin-library_search-dylib.patch + ]; + patchFlags = "-p0"; + + meta = { + description = "GNU Make, a program controlling the generation of non-source files from sources"; + + 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. + ''; + + homepage = http://www.gnu.org/software/make/; + + license = "GPLv3+"; + maintainers = [ stdenv.lib.maintainers.ludo ]; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch new file mode 100644 index 00000000000..f6646f1d012 --- /dev/null +++ b/pkgs/development/tools/build-managers/gnumake/4.0/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 3566b63bb6c..4887b05a2b6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3644,6 +3644,7 @@ 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 { }; gnumake = gnumake382; gob2 = callPackage ../development/tools/misc/gob2 { };