diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-01-01 16:55:34 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-01-01 16:55:34 +0100 |
commit | 4d058c67929aa9d464fcb1ff0217122424078cb8 (patch) | |
tree | ddcaa67983811b94a6323631172e4faf827a9e7f /guix | |
parent | 450fb5a6b44f05dbaa35daf2b696dfc4d502be96 (diff) | |
download | gnu-guix-4d058c67929aa9d464fcb1ff0217122424078cb8.tar gnu-guix-4d058c67929aa9d464fcb1ff0217122424078cb8.tar.gz |
build-system/gnu: Add `static-package'.
* distro/packages/make-bootstrap.scm (static-package): Move to...
* guix/build-system/gnu.scm (static-package): ... here. New procedure.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build-system/gnu.scm | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 53fc4749f0..4d7ecd54de 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -21,6 +21,7 @@ #:use-module (guix utils) #:use-module (guix derivations) #:use-module (guix build-system) + #:use-module (guix build-system gnu) #:use-module (guix packages) #:use-module (srfi srfi-1) #:use-module (srfi srfi-39) @@ -29,7 +30,8 @@ gnu-build-system package-with-explicit-inputs package-with-extra-configure-variable - static-libgcc-package)) + static-libgcc-package + static-package)) ;; Commentary: ;; @@ -117,6 +119,28 @@ configure flags for VARIABLE, the associated value is augmented." "A version of P linked with `-static-gcc'." (package-with-extra-configure-variable p "LDFLAGS" "-static-libgcc")) +(define* (static-package p #:optional (loc (current-source-location))) + "Return a statically-linked version of package P." + (let ((args (package-arguments p))) + (package (inherit p) + (location (source-properties->location loc)) + (arguments + (let ((augment (lambda (args) + (let ((a (default-keyword-arguments args + '(#:configure-flags '() + #:strip-flags #f)))) + (substitute-keyword-arguments a + ((#:configure-flags flags) + `(cons* "--disable-shared" + "LDFLAGS=-static" + ,flags)) + ((#:strip-flags _) + ''("--strip-all"))))))) + (if (procedure? args) + (lambda x + (augment (apply args x))) + (augment args))))))) + (define %store ;; Store passed to STANDARD-INPUTS. |