diff options
Diffstat (limited to 'pkgs/development/tools/build-managers/gnumake/4.0')
3 files changed, 100 insertions, 0 deletions
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 |