summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-01-29 17:51:51 +0100
committerLudovic Courtès <ludo@gnu.org>2023-02-06 16:51:02 +0100
commit32f33756d0fbbf28e848f087375f75c265d0a46c (patch)
treefad30e72fe9ee12c339c316474fc7e44b27ab7ee
parenta211c8aaffcb583df3072aed88c8b6a982a8698e (diff)
downloadguile-32f33756d0fbbf28e848f087375f75c265d0a46c.tar.gz
maint: Add variants of the default package for Guix.
* build-aux/guix/guile-package.scm (package-with-configure-flags): New procedure. (guile-without-threads, guile-without-networking) (guile-debug, guile-strict-typing): New variables. * build-aux/manifest.scm: Use (guile-package) module instead of 'load'. (native-builds): Add the variants above + "guile-clang".
-rw-r--r--build-aux/guix/guile-package.scm38
-rw-r--r--build-aux/manifest.scm30
2 files changed, 56 insertions, 12 deletions
diff --git a/build-aux/guix/guile-package.scm b/build-aux/guix/guile-package.scm
index 827ef5ef8..65c225d16 100644
--- a/build-aux/guix/guile-package.scm
+++ b/build-aux/guix/guile-package.scm
@@ -40,10 +40,9 @@
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
- #:use-module (gnu packages pkg-config)
- #:export (guile))
+ #:use-module (gnu packages pkg-config))
-(define guile
+(define-public guile
(let ((vcs-file? (or (git-predicate
(string-append (current-source-directory)
"/../.."))
@@ -147,4 +146,37 @@ without requiring the source code to be rewritten.")
(home-page "https://www.gnu.org/software/guile/")
(license license:lgpl3+))))
+(define (package-with-configure-flags p flags)
+ "Return P with FLAGS as addition 'configure' flags."
+ (package/inherit p
+ (arguments
+ (substitute-keyword-arguments (package-arguments p)
+ ((#:configure-flags original-flags #~'())
+ #~(append #$original-flags #$flags))))))
+
+(define-public guile-without-threads
+ (package
+ (inherit (package-with-configure-flags guile
+ #~'("--without-threads")))
+ (name "guile-without-threads")))
+
+(define-public guile-without-networking
+ (package
+ (inherit (package-with-configure-flags guile
+ #~'("--disable-networking")))
+ (name "guile-without-networking")))
+
+(define-public guile-debug
+ (package
+ (inherit (package-with-configure-flags guile
+ #~'("--enable-guile-debug")))
+ (name "guile-debug")))
+
+(define-public guile-strict-typing
+ (package
+ (inherit (package-with-configure-flags
+ guile
+ #~'("CPPFLAGS=-DSCM_DEBUG_TYPING_STRICTNESS=2")))
+ (name "guile-strict-typing")))
+
guile
diff --git a/build-aux/manifest.scm b/build-aux/manifest.scm
index 5699f80f4..0a25b2925 100644
--- a/build-aux/manifest.scm
+++ b/build-aux/manifest.scm
@@ -19,10 +19,8 @@
;; integration service running at <https://ci.guix.gnu.org>.
(use-modules (guix)
- (guix profiles))
-
-(define guile
- (load "../guix.scm"))
+ (guix profiles)
+ (guile-package))
(define* (package->manifest-entry* package system
#:key target)
@@ -40,11 +38,25 @@ TARGET."
(define native-builds
(manifest
- (map (lambda (system)
- (package->manifest-entry* guile system))
- '("x86_64-linux" "i686-linux"
- "aarch64-linux" "armhf-linux"
- "powerpc64le-linux"))))
+ (append (map (lambda (system)
+ (package->manifest-entry* guile system))
+
+ '("x86_64-linux" "i686-linux"
+ "aarch64-linux" "armhf-linux"
+ "powerpc64le-linux"))
+ (map (lambda (guile)
+ (package->manifest-entry* guile "x86_64-linux"))
+ (cons (package
+ (inherit (package-with-c-toolchain
+ guile
+ `(("clang-toolchain"
+ ,(specification->package
+ "clang-toolchain")))))
+ (name "guile-clang"))
+ (list guile-without-threads
+ guile-without-networking
+ guile-debug
+ guile-strict-typing))))))
(define cross-builds
(manifest