From ab77686565478e9e66fd1cf0b3f73d08843af04b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 21 Aug 2012 18:14:57 +0200 Subject: distro: Add GNU Make. * distro/base.scm (gnu-make): New variable. * distro/make-impure-dirs.patch: New file. * Makefile.am (nobase_dist_guilemodule_DATA): Add it. --- Makefile.am | 1 + distro/base.scm | 30 ++++++++++++++++++++++++++++++ distro/make-impure-dirs.patch | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 distro/make-impure-dirs.patch 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 -- cgit v1.2.3