summaryrefslogtreecommitdiff
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