summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/gnumake
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers/gnumake')
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.80/default.nix10
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.80/log.patch125
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.81/default.nix (renamed from pkgs/development/tools/build-managers/gnumake/3.81.nix)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.81/impure-dirs.patch (renamed from pkgs/development/tools/build-managers/gnumake/impure-dirs.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.81/log-3.81.patch (renamed from pkgs/development/tools/build-managers/gnumake/log-3.81.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/MAKEFLAGS-reexec.patch (renamed from pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/archives-many-objs.patch (renamed from pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/construct-command-line.patch (renamed from pkgs/development/tools/build-managers/gnumake/construct-command-line.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/copy-on-expand.patch (renamed from pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/darwin-library_search-dylib.patch (renamed from pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/default.nix (renamed from pkgs/development/tools/build-managers/gnumake/default.nix)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/glob-speedup.patch (renamed from pkgs/development/tools/build-managers/gnumake/glob-speedup.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/impure-dirs.patch34
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/intermediate-parallel.patch (renamed from pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/log.patch (renamed from pkgs/development/tools/build-managers/gnumake/log.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/long-command-line.patch (renamed from pkgs/development/tools/build-managers/gnumake/long-command-line.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/memory-corruption.patch (renamed from pkgs/development/tools/build-managers/gnumake/memory-corruption.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/oneshell.patch (renamed from pkgs/development/tools/build-managers/gnumake/oneshell.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/3.82/parallel-remake.patch (renamed from pkgs/development/tools/build-managers/gnumake/parallel-remake.patch)0
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/darwin-library_search-dylib.patch17
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/default.nix49
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.0/impure-dirs.patch34
22 files changed, 269 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/gnumake/3.80/default.nix b/pkgs/development/tools/build-managers/gnumake/3.80/default.nix
new file mode 100644
index 000000000000..b0926a7f531c
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/3.80/default.nix
@@ -0,0 +1,10 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "gnumake-3.80";
+  src = fetchurl {
+    url = http://tarballs.nixos.org/make-3.80.tar.bz2;
+    md5 = "0bbd1df101bc0294d440471e50feca71";
+  };
+  patches = [./log.patch];
+}
diff --git a/pkgs/development/tools/build-managers/gnumake/3.80/log.patch b/pkgs/development/tools/build-managers/gnumake/3.80/log.patch
new file mode 100644
index 000000000000..fa90acfe8de5
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/3.80/log.patch
@@ -0,0 +1,125 @@
+diff -rc make-3.80-orig/job.c make-3.80/job.c
+*** make-3.80-orig/job.c	2002-08-10 03:27:17.000000000 +0200
+--- make-3.80/job.c	2004-04-02 17:38:04.000000000 +0200
+***************
+*** 987,993 ****
+       appear.  */
+  
+    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
+! 	   ? "%s" : (char *) 0, p);
+  
+    /* Tell update_goal_chain that a command has been started on behalf of
+       this target.  It is important that this happens here and not in
+--- 987,993 ----
+       appear.  */
+  
+    message (0, (just_print_flag || (!(flags & COMMANDS_SILENT) && !silent_flag))
+! 	   ? "\e[3s\e[a%s\e[b" : (char *) 0, p);
+  
+    /* Tell update_goal_chain that a command has been started on behalf of
+       this target.  It is important that this happens here and not in
+diff -rc make-3.80-orig/main.c make-3.80/main.c
+*** make-3.80-orig/main.c	2002-08-10 03:27:17.000000000 +0200
+--- make-3.80/main.c	2004-04-02 17:42:50.000000000 +0200
+***************
+*** 254,259 ****
+--- 254,263 ----
+     they appear out of date or not.  */
+  
+  int always_make_flag = 0;
++ 
++ int logNestingStdout = 0;
++ int logNestingStderr = 0;
++ 
+  
+  /* The usage output.  We write it this way to make life easier for the
+     translators, especially those trying to translate to right-to-left
+***************
+*** 827,832 ****
+--- 831,845 ----
+  }
+  
+  
++ static void closeNesting()
++ {
++   while (logNestingStdout--)
++     printf("\e[q");
++   while (logNestingStderr--)
++     fprintf(stderr, "\e[q");
++ }
++ 
++ 
+  #ifndef _AMIGA
+  int
+  main (argc, argv, envp)
+***************
+*** 854,859 ****
+--- 867,874 ----
+    no_default_sh_exe = 1;
+  #endif
+  
++   atexit(closeNesting);
++ 
+    default_goal_file = 0;
+    reading_file = 0;
+  
+***************
+*** 2782,2787 ****
+--- 2797,2808 ----
+  
+    /* Use entire sentences to give the translators a fighting chance.  */
+  
++   if (entering)
++     {
++       printf("\e[p");
++       logNestingStdout++;
++     }
++   
+    if (makelevel == 0)
+      if (starting_directory == 0)
+        if (entering)
+***************
+*** 2810,2813 ****
+--- 2831,2840 ----
+        else
+          printf (_("%s[%u]: Leaving directory `%s'\n"),
+                  program, makelevel, starting_directory);
++ 
++   if (!entering)
++     {
++       printf("\e[q");
++       logNestingStdout--;
++     }
+  }
+diff -rc make-3.80-orig/make.h make-3.80/make.h
+*** make-3.80-orig/make.h	2002-09-11 18:55:44.000000000 +0200
+--- make-3.80/make.h	2004-04-02 17:42:15.000000000 +0200
+***************
+*** 559,562 ****
+--- 559,567 ----
+  extern int atomic_stat PARAMS ((const char *file, struct stat *buf));
+  extern struct dirent *atomic_readdir PARAMS ((DIR *dir));
+  
++ 
+  #endif
++ 
++ 
++ extern int logNestingStdout;
++ extern int logNestingStderr;
+diff -rc make-3.80-orig/remake.c make-3.80/remake.c
+*** make-3.80-orig/remake.c	2002-08-08 02:11:19.000000000 +0200
+--- make-3.80/remake.c	2004-04-04 23:10:19.000000000 +0200
+***************
+*** 1049,1055 ****
+--- 1049,1059 ----
+        /* The normal case: start some commands.  */
+        if (!touch_flag || file->cmds->any_recurse)
+  	{
++           fprintf(stderr, "\e[pbuilding %s\n", file->name);
++           logNestingStderr++;
+  	  execute_file_commands (file);
++           fprintf(stderr, "\e[q");
++           logNestingStderr--;
+  	  return;
+  	}
+  
diff --git a/pkgs/development/tools/build-managers/gnumake/3.81.nix b/pkgs/development/tools/build-managers/gnumake/3.81/default.nix
index 56d2326c916b..56d2326c916b 100644
--- a/pkgs/development/tools/build-managers/gnumake/3.81.nix
+++ b/pkgs/development/tools/build-managers/gnumake/3.81/default.nix
diff --git a/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/3.81/impure-dirs.patch
index f6646f1d0126..f6646f1d0126 100644
--- a/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.81/impure-dirs.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/log-3.81.patch b/pkgs/development/tools/build-managers/gnumake/3.81/log-3.81.patch
index b98d85a08265..b98d85a08265 100644
--- a/pkgs/development/tools/build-managers/gnumake/log-3.81.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.81/log-3.81.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch b/pkgs/development/tools/build-managers/gnumake/3.82/MAKEFLAGS-reexec.patch
index a2f59657d4ca..a2f59657d4ca 100644
--- a/pkgs/development/tools/build-managers/gnumake/MAKEFLAGS-reexec.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/MAKEFLAGS-reexec.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch b/pkgs/development/tools/build-managers/gnumake/3.82/archives-many-objs.patch
index 73c0381ced45..73c0381ced45 100644
--- a/pkgs/development/tools/build-managers/gnumake/archives-many-objs.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/archives-many-objs.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/construct-command-line.patch b/pkgs/development/tools/build-managers/gnumake/3.82/construct-command-line.patch
index aa4a1afe3fd0..aa4a1afe3fd0 100644
--- a/pkgs/development/tools/build-managers/gnumake/construct-command-line.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/construct-command-line.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch b/pkgs/development/tools/build-managers/gnumake/3.82/copy-on-expand.patch
index 3f202b4db96b..3f202b4db96b 100644
--- a/pkgs/development/tools/build-managers/gnumake/copy-on-expand.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/copy-on-expand.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch b/pkgs/development/tools/build-managers/gnumake/3.82/darwin-library_search-dylib.patch
index de7e4f615212..de7e4f615212 100644
--- a/pkgs/development/tools/build-managers/gnumake/darwin-library_search-dylib.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/darwin-library_search-dylib.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/default.nix b/pkgs/development/tools/build-managers/gnumake/3.82/default.nix
index 4f3c7defa488..4f3c7defa488 100644
--- a/pkgs/development/tools/build-managers/gnumake/default.nix
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/default.nix
diff --git a/pkgs/development/tools/build-managers/gnumake/glob-speedup.patch b/pkgs/development/tools/build-managers/gnumake/3.82/glob-speedup.patch
index 45971f33590b..45971f33590b 100644
--- a/pkgs/development/tools/build-managers/gnumake/glob-speedup.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/glob-speedup.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/3.82/impure-dirs.patch b/pkgs/development/tools/build-managers/gnumake/3.82/impure-dirs.patch
new file mode 100644
index 000000000000..f6646f1d0126
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/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/development/tools/build-managers/gnumake/intermediate-parallel.patch b/pkgs/development/tools/build-managers/gnumake/3.82/intermediate-parallel.patch
index 9bb7add0bde2..9bb7add0bde2 100644
--- a/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/intermediate-parallel.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/log.patch b/pkgs/development/tools/build-managers/gnumake/3.82/log.patch
index e6197fd8e78f..e6197fd8e78f 100644
--- a/pkgs/development/tools/build-managers/gnumake/log.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/log.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/long-command-line.patch b/pkgs/development/tools/build-managers/gnumake/3.82/long-command-line.patch
index 39ea05843bfd..39ea05843bfd 100644
--- a/pkgs/development/tools/build-managers/gnumake/long-command-line.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/long-command-line.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/memory-corruption.patch b/pkgs/development/tools/build-managers/gnumake/3.82/memory-corruption.patch
index b28c07353ec2..b28c07353ec2 100644
--- a/pkgs/development/tools/build-managers/gnumake/memory-corruption.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/memory-corruption.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/oneshell.patch b/pkgs/development/tools/build-managers/gnumake/3.82/oneshell.patch
index fbade127ce61..fbade127ce61 100644
--- a/pkgs/development/tools/build-managers/gnumake/oneshell.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/oneshell.patch
diff --git a/pkgs/development/tools/build-managers/gnumake/parallel-remake.patch b/pkgs/development/tools/build-managers/gnumake/3.82/parallel-remake.patch
index a19fe7b7d629..a19fe7b7d629 100644
--- a/pkgs/development/tools/build-managers/gnumake/parallel-remake.patch
+++ b/pkgs/development/tools/build-managers/gnumake/3.82/parallel-remake.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 000000000000..de7e4f615212
--- /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 000000000000..6a76fa0302b6
--- /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 000000000000..f6646f1d0126
--- /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