From ed41d48ef195960d784db0e547d5ff6dcaa9b774 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 16 Oct 2013 16:27:45 +0200 Subject: gnu: make: Update to 4.0, with Guile support. * gnu/packages/base.scm (gnu-make): Update to 4.0. Add Guile as an input. (gnu-make-boot0): Patch 'build.sh' so it does not attempt to build 'guile.c'. (gnu-make-final): New variable. (%final-inputs): Use it. (glibc): Add 'glibc-make-4.0.patch'. * gnu/packages/patches/glibc-make-4.0.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/base.scm | 24 +++++++++++++++++++----- gnu/packages/patches/glibc-make-4.0.patch | 12 ++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/glibc-make-4.0.patch diff --git a/gnu-system.am b/gnu-system.am index 844ba10f6f..2397e85a32 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -218,6 +218,7 @@ dist_patch_DATA = \ gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-ldd-x86_64.patch \ + gnu/packages/patches/glibc-make-4.0.patch \ gnu/packages/patches/glibc-no-ld-so-cache.patch \ gnu/packages/patches/grub-gets-undeclared.patch \ gnu/packages/patches/guile-1.8-cpp-4.5.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 7cf328a80c..8a9cee1694 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -276,16 +276,17 @@ functionality beyond that which is outlined in the POSIX standard.") (define-public gnu-make (package (name "make") - (version "3.82") + (version "4.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/make/make-" version ".tar.bz2")) (sha256 (base32 - "0ri98385hsd7li6rh4l5afcq92v8l2lgiaz85wgcfh4w2wzsghg2")) + "1nyvn8mknw0mf7727lprva3lisl1y0n03lvar342rrpdmz3qc1p6")) (patches (list (search-patch "make-impure-dirs.patch"))))) (build-system gnu-build-system) + (inputs `(("guile" ,guile-2.0))) (outputs '("out" "debug")) (arguments '(#:phases (alist-cons-before @@ -364,7 +365,8 @@ archives.") "18spla703zav8dq9fw7rbzkyv9qfisxb26p7amg1x3wjh7iy3d1c")) (patches (map search-patch '("glibc-no-ld-so-cache.patch" - "glibc-ldd-x86_64.patch"))))) + "glibc-ldd-x86_64.patch" + "glibc-make-4.0.patch"))))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc @@ -560,6 +562,10 @@ and daylight-saving rules.") ((#:phases phases) `(alist-replace 'build (lambda _ + ;; Don't attempt to build 'guile.c' since we don't + ;; have Guile here. + (substitute* "build.sh" + (("guile\\.\\$\\{OBJEXT\\}") "")) (zero? (system* "./build.sh"))) (alist-replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -991,6 +997,14 @@ store.") (current-source-location) #:guile %bootstrap-guile))) +(define-public gnu-make-final + ;; The final GNU Make, which uses the final Guile. + (package-with-bootstrap-guile + (package-with-explicit-inputs gnu-make + `(("guile" ,guile-final) + ,@%boot4-inputs) + (current-source-location)))) + (define-public ld-wrapper ;; The final `ld' wrapper, which uses the final Guile. (package (inherit ld-wrapper-boot3) @@ -1021,8 +1035,8 @@ store.") ("sed" ,sed) ("grep" ,grep) ("findutils" ,findutils) - ("gawk" ,gawk) - ("make" ,gnu-make))) + ("gawk" ,gawk))) + ("make" ,gnu-make-final) ("bash" ,bash-final) ("ld-wrapper" ,ld-wrapper) ("binutils" ,binutils-final) diff --git a/gnu/packages/patches/glibc-make-4.0.patch b/gnu/packages/patches/glibc-make-4.0.patch new file mode 100644 index 0000000000..d83de1d33d --- /dev/null +++ b/gnu/packages/patches/glibc-make-4.0.patch @@ -0,0 +1,12 @@ +Allow libc to be compiled with GNU Make 4.0. + +--- glibc-2.18/configure 2013-08-11 00:52:55.000000000 +0200 ++++ glibc-2.18/configure 2013-10-16 16:53:09.000000000 +0200 +@@ -4772,7 +4772,7 @@ $as_echo_n "checking version of $MAKE... + ac_prog_version=`$MAKE --version 2>&1 | sed -n 's/^.*GNU Make[^0-9]*\([0-9][0-9.]*\).*$/\1/p'` + case $ac_prog_version in + '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; +- 3.79* | 3.[89]*) ++ 3.79* | 3.[89]* | 4.*) + ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; + *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; -- cgit v1.2.3