summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--distro/base.scm30
-rw-r--r--distro/make-impure-dirs.patch40
3 files changed, 71 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
index b6203eff70..a18695c009 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -40,6 +40,7 @@ nobase_dist_guilemodule_DATA =			\
   distro/guile-1.8-cpp-4.5.patch		\
   distro/m4-readlink-EINVAL.patch		\
   distro/m4-s_isdir.patch			\
+  distro/make-impure-dirs.patch			\
   distro/readline-link-ncurses.patch
 
 nobase_nodist_guilemodule_DATA = $(GOBJECTS)
diff --git a/distro/base.scm b/distro/base.scm
index cc3bff3705..1a1fe76281 100644
--- a/distro/base.scm
+++ b/distro/base.scm
@@ -156,6 +156,36 @@ macro processor in its own right.")
    (license "GPLv3+")
    (home-page "http://www.gnu.org/software/m4/")))
 
+(define-public gnu-make
+  (package
+   (name "make")
+   (version "3.82")
+   (source (origin
+            (method http-fetch)
+            (uri (string-append "http://ftp.gnu.org/gnu/make/make-" version
+                                ".tar.bz2"))
+            (sha256
+             (base32
+              "0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2"))))
+   (build-system gnu-build-system)
+   (native-inputs
+    `(("patch/impure-dirs"
+       ,(search-path %load-path "distro/make-impure-dirs.patch"))))
+   (arguments `(#:patches (list (assoc-ref %build-inputs
+                                           "patch/impure-dirs"))))
+   (description "GNU Make, a program controlling the generation of non-source
+files from sources")
+   (long-description
+    "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.")
+   (license "GPLv3+")
+   (home-page "http://www.gnu.org/software/make/")))
+
 (define-public gmp
   (package
    (name "gmp")
diff --git a/distro/make-impure-dirs.patch b/distro/make-impure-dirs.patch
new file mode 100644
index 0000000000..83a5fbe3a5
--- /dev/null
+++ b/distro/make-impure-dirs.patch
@@ -0,0 +1,40 @@
+Purity: don't look for library dependencies (of the form `-lfoo') in
+/lib and /usr/lib.  Likewise, when searching for included Makefiles,
+don't look in /usr/include and friends.
+
+Patch from Nixpkgs, by Eelco Dolstra.
+
+diff -rc make-3.81-orig/read.c make-3.81/read.c
+*** make-3.81-orig/read.c	2006-03-17 15:24:20.000000000 +0100
+--- make-3.81/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 make-3.81-orig/remake.c make-3.81/remake.c
+*** make-3.81-orig/remake.c	2006-03-20 03:36:37.000000000 +0100
+--- make-3.81/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