summaryrefslogtreecommitdiff
path: root/guix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-11-03 21:07:52 +0100
committerLudovic Courtès <ludo@gnu.org>2012-11-03 21:11:28 +0100
commit00e219d1c98e55dd1b6c6af00ae73c23ed52583e (patch)
tree28565d9ddd0ed72f7d35b0500b61745e3e7412d2 /guix
parente76bdf8b87920b87a2a2e728c2e40ff24ca39ffe (diff)
build: Produce (guix config) instead of using compile-time tricks.
* guix/config.scm.in: New file. * guix/utils.scm: Use it. (%libgcrypt): Remove. (%nixpkgs-directory): Don't capture the compile-time $NIXPKGS; use %NIXPKGS instead. (nixpkgs-derivation): Use %NIX-INSTANTIATE. * pre-inst-env.in (NIX_INSTANTIATE, NIXPKGS, LIBGCRYPT): Remove. * configure.ac: Emit `guix/config.scm'. * Makefile.am (GOBJECTS): Add `guix/config.go'. (nobase_nodist_guilemodule_DATA): Add `guix/config.scm'.
Diffstat (limited to 'guix')
-rw-r--r--guix/config.scm.in53
-rw-r--r--guix/utils.scm10
2 files changed, 56 insertions, 7 deletions
diff --git a/guix/config.scm.in b/guix/config.scm.in
new file mode 100644
index 0000000000..462dcd0ed1
--- /dev/null
+++ b/guix/config.scm.in
@@ -0,0 +1,53 @@
+;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
+;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of Guix.
+;;;
+;;; Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix config)
+ #:export (%guix-package-name
+ %guix-version
+ %guix-bug-report-address
+ %libgcrypt
+ %nixpkgs
+ %nix-instantiate))
+
+;;; Commentary:
+;;;
+;;; Compile-time configuration of Guix.
+;;;
+;;; Code:
+
+(define %guix-package-name
+ "@PACKAGE_NAME@")
+
+(define %guix-version
+ "@PACKAGE_VERSION@")
+
+(define %guix-bug-report-address
+ "@PACKAGE_BUGREPORT@")
+
+(define %libgcrypt
+ "@LIBGCRYPT@")
+
+(define %nixpkgs
+ (if (string=? "@NIXPKGS@" "")
+ #f
+ "@NIXPKGS@"))
+
+(define %nix-instantiate
+ "@NIX_INSTANTIATE@")
+
+;;; config.scm ends here
diff --git a/guix/utils.scm b/guix/utils.scm
index 287a6d4f3a..10b0c15fad 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -17,6 +17,7 @@
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix utils)
+ #:use-module (guix config)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
@@ -392,10 +393,6 @@ starting from the right of S."
;;; Hash.
;;;
-(define %libgcrypt
- ;; Name of the libgcrypt shared library.
- (compile-time-value (or (getenv "LIBGCRYPT") "libgcrypt")))
-
(define sha256
(cond
((compile-time-value
@@ -458,13 +455,12 @@ starting from the right of S."
(define %nixpkgs-directory
(make-parameter
;; Capture the build-time value of $NIXPKGS.
- (or (compile-time-value (getenv "NIXPKGS"))
- (getenv "NIXPKGS"))))
+ (or %nixpkgs (getenv "NIXPKGS"))))
(define* (nixpkgs-derivation attribute #:optional (system (%current-system)))
"Return the derivation path of ATTRIBUTE in Nixpkgs."
(let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE")
- "nix-instantiate")
+ %nix-instantiate)
"-A" attribute (%nixpkgs-directory)
"--argstr" "system" system))
(l (read-line p))