~ruther/guix-local

ed41d48ef195960d784db0e547d5ff6dcaa9b774 — Ludovic Courtès 12 years ago 63760b5
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.
3 files changed, 32 insertions(+), 5 deletions(-)

M gnu-system.am
M gnu/packages/base.scm
A gnu/packages/patches/glibc-make-4.0.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 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			\

M gnu/packages/base.scm => gnu/packages/base.scm +19 -5
@@ 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 <limits.h> refers to <linux/limit.h>, 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)

A gnu/packages/patches/glibc-make-4.0.patch => gnu/packages/patches/glibc-make-4.0.patch +12 -0
@@ 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;;