utils: Add `mkdir-p'; use it.
* guix/build/utils.scm (mkdir-p): New procedure. * distro/packages/base.scm (gnu-make-boot0, gcc-boot0-wrapped, ld-wrapper-boot3, %static-binaries, %guile-static-stripped): Use it. * distro/packages/typesetting.scm (lout): Likewise.
This commit is contained in:
parent
7172116ca5
commit
7da95264f1
|
@ -1481,8 +1481,7 @@ previous value of the keyword argument."
|
||||||
'install (lambda* (#:key outputs #:allow-other-keys)
|
'install (lambda* (#:key outputs #:allow-other-keys)
|
||||||
(let* ((out (assoc-ref outputs "out"))
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
(bin (string-append out "/bin")))
|
(bin (string-append out "/bin")))
|
||||||
(mkdir out)
|
(mkdir-p bin)
|
||||||
(mkdir bin)
|
|
||||||
(copy-file "make"
|
(copy-file "make"
|
||||||
(string-append bin "/make"))))
|
(string-append bin "/make"))))
|
||||||
%standard-phases))))
|
%standard-phases))))
|
||||||
|
@ -1709,7 +1708,7 @@ identifier SYSTEM."
|
||||||
(out (assoc-ref %outputs "out"))
|
(out (assoc-ref %outputs "out"))
|
||||||
(bindir (string-append out "/bin"))
|
(bindir (string-append out "/bin"))
|
||||||
(triplet ,(boot-triplet system)))
|
(triplet ,(boot-triplet system)))
|
||||||
(mkdir out) (mkdir bindir)
|
(mkdir-p bindir)
|
||||||
(with-directory-excursion bindir
|
(with-directory-excursion bindir
|
||||||
(for-each (lambda (tool)
|
(for-each (lambda (tool)
|
||||||
(symlink (string-append binutils "/bin/"
|
(symlink (string-append binutils "/bin/"
|
||||||
|
@ -1807,7 +1806,7 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/lib/~a \"$@\"~%"
|
||||||
(assoc-ref %build-inputs "binutils")
|
(assoc-ref %build-inputs "binutils")
|
||||||
out)
|
out)
|
||||||
|
|
||||||
(mkdir out) (mkdir bin)
|
(mkdir-p bin)
|
||||||
(copy-file (assoc-ref %build-inputs "wrapper") ld)
|
(copy-file (assoc-ref %build-inputs "wrapper") ld)
|
||||||
(substitute* ld
|
(substitute* ld
|
||||||
(("@GUILE@")
|
(("@GUILE@")
|
||||||
|
@ -2020,7 +2019,7 @@ store.")
|
||||||
|
|
||||||
(let* ((out (assoc-ref %outputs "out"))
|
(let* ((out (assoc-ref %outputs "out"))
|
||||||
(bin (string-append out "/bin")))
|
(bin (string-append out "/bin")))
|
||||||
(mkdir out) (mkdir bin)
|
(mkdir-p bin)
|
||||||
|
|
||||||
;; Copy Coreutils binaries.
|
;; Copy Coreutils binaries.
|
||||||
(let* ((coreutils (assoc-ref %build-inputs "coreutils"))
|
(let* ((coreutils (assoc-ref %build-inputs "coreutils"))
|
||||||
|
@ -2127,17 +2126,11 @@ store.")
|
||||||
|
|
||||||
(let ((in (assoc-ref %build-inputs "guile"))
|
(let ((in (assoc-ref %build-inputs "guile"))
|
||||||
(out (assoc-ref %outputs "out")))
|
(out (assoc-ref %outputs "out")))
|
||||||
(mkdir out)
|
(mkdir-p (string-append out "/share/guile/2.0"))
|
||||||
(mkdir (string-append out "/share"))
|
|
||||||
(mkdir (string-append out "/share/guile"))
|
|
||||||
(mkdir (string-append out "/share/guile/2.0"))
|
|
||||||
(copy-recursively (string-append in "/share/guile/2.0")
|
(copy-recursively (string-append in "/share/guile/2.0")
|
||||||
(string-append out "/share/guile/2.0"))
|
(string-append out "/share/guile/2.0"))
|
||||||
|
|
||||||
(mkdir (string-append out "/lib"))
|
(mkdir-p (string-append out "/lib/guile/2.0/ccache"))
|
||||||
(mkdir (string-append out "/lib/guile"))
|
|
||||||
(mkdir (string-append out "/lib/guile/2.0"))
|
|
||||||
(mkdir (string-append out "/lib/guile/2.0/ccache"))
|
|
||||||
(copy-recursively (string-append in "/lib/guile/2.0/ccache")
|
(copy-recursively (string-append in "/lib/guile/2.0/ccache")
|
||||||
(string-append out "/lib/guile/2.0/ccache"))
|
(string-append out "/lib/guile/2.0/ccache"))
|
||||||
|
|
||||||
|
|
|
@ -46,12 +46,10 @@
|
||||||
(("^MANDIR[[:blank:]]*=.*$")
|
(("^MANDIR[[:blank:]]*=.*$")
|
||||||
(string-append "MANDIR = " out "/man\n")))
|
(string-append "MANDIR = " out "/man\n")))
|
||||||
(mkdir out)
|
(mkdir out)
|
||||||
(mkdir (string-append out "/bin")) ; TODO: use `mkdir-p'
|
(mkdir (string-append out "/bin"))
|
||||||
(mkdir (string-append out "/lib"))
|
(mkdir (string-append out "/lib"))
|
||||||
(mkdir (string-append out "/man"))
|
(mkdir (string-append out "/man"))
|
||||||
(mkdir doc)
|
(mkdir-p (string-append doc "/doc/lout")))))
|
||||||
(mkdir (string-append doc "/doc"))
|
|
||||||
(mkdir (string-append doc "/doc/lout")))))
|
|
||||||
(install-man-phase
|
(install-man-phase
|
||||||
'(lambda* (#:key outputs #:allow-other-keys)
|
'(lambda* (#:key outputs #:allow-other-keys)
|
||||||
(zero? (system* "make" "installman"))))
|
(zero? (system* "make" "installman"))))
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#:use-module (rnrs io ports)
|
#:use-module (rnrs io ports)
|
||||||
#:export (directory-exists?
|
#:export (directory-exists?
|
||||||
with-directory-excursion
|
with-directory-excursion
|
||||||
|
mkdir-p
|
||||||
set-path-environment-variable
|
set-path-environment-variable
|
||||||
search-path-as-string->list
|
search-path-as-string->list
|
||||||
list->search-path-as-string
|
list->search-path-as-string
|
||||||
|
@ -62,6 +63,31 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(chdir init)))))
|
(chdir init)))))
|
||||||
|
|
||||||
|
(define (mkdir-p dir)
|
||||||
|
"Create directory DIR and all its ancestors."
|
||||||
|
(define absolute?
|
||||||
|
(string-prefix? "/" dir))
|
||||||
|
|
||||||
|
(define not-slash
|
||||||
|
(char-set-complement (char-set #\/)))
|
||||||
|
|
||||||
|
(let loop ((components (string-tokenize dir not-slash))
|
||||||
|
(root (if absolute?
|
||||||
|
""
|
||||||
|
".")))
|
||||||
|
(match components
|
||||||
|
((head tail ...)
|
||||||
|
(let ((path (string-append root "/" head)))
|
||||||
|
(catch 'system-error
|
||||||
|
(lambda ()
|
||||||
|
(mkdir path)
|
||||||
|
(loop tail path))
|
||||||
|
(lambda args
|
||||||
|
(if (= EEXIST (system-error-errno args))
|
||||||
|
(loop tail path)
|
||||||
|
(apply throw args))))))
|
||||||
|
(() #t))))
|
||||||
|
|
||||||
|
|
||||||
;;;
|
;;;
|
||||||
;;; Search paths.
|
;;; Search paths.
|
||||||
|
|
Loading…
Reference in New Issue