aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Sample <samplet@ngyro.com>2020-08-19 23:44:59 -0400
committerTimothy Sample <samplet@ngyro.com>2020-08-19 23:58:47 -0400
commit8d06906017901822c9186a6885f85bcd8cd97467 (patch)
treed9694e5db69851ddce205dcb1b04412732afb987
parent856def7bb3b4af85a1325bc732e81d705156a482 (diff)
downloadguix-8d06906017901822c9186a6885f85bcd8cd97467.tar.gz
guix-8d06906017901822c9186a6885f85bcd8cd97467.zip
gnu: agda: Adjust for using shared libraries.
See also 9e5496e0ae0ee8f638ca93949ecca314fdb9251e. * gnu/packages/agda.scm (agda)[arguments]: Add a phase that sets 'LD_LIBRARY_PATH'; update the 'configure' phase to match the current Haskell build system code.
-rw-r--r--gnu/packages/agda.scm46
1 files changed, 23 insertions, 23 deletions
diff --git a/gnu/packages/agda.scm b/gnu/packages/agda.scm
index 98768c668a..7b0cdd0d89 100644
--- a/gnu/packages/agda.scm
+++ b/gnu/packages/agda.scm
@@ -79,6 +79,11 @@
(ice-9 match))
#:phases
(modify-phases %standard-phases
+ ;; This allows us to call the 'agda' binary before installing.
+ (add-after 'unpack 'set-ld-library-path
+ (lambda _
+ (setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/dist/build"))
+ #t))
;; FIXME: This is a copy of the standard configure phase with a tiny
;; difference: this package needs the -package-db flag to be passed
;; to "runhaskell" in addition to the "configure" action, because
@@ -90,30 +95,25 @@
#:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(name-version (strip-store-file-name out))
- (input-dirs (match inputs
- (((_ . dir) ...)
- dir)
- (_ '())))
(ghc-path (getenv "GHC_PACKAGE_PATH"))
- (params (append `(,(string-append "--prefix=" out))
- `(,(string-append "--libdir=" out "/lib"))
- `(,(string-append "--bindir=" out "/bin"))
- `(,(string-append
- "--docdir=" out
- "/share/doc/" name-version))
- '("--libsubdir=$compiler/$pkg-$version")
- '("--package-db=../package.conf.d")
- '("--global")
- `(,@(map
- (cut string-append "--extra-include-dirs=" <>)
- (search-path-as-list '("include") input-dirs)))
- `(,@(map
- (cut string-append "--extra-lib-dirs=" <>)
- (search-path-as-list '("lib") input-dirs)))
- (if tests?
- '("--enable-tests")
- '())
- configure-flags)))
+ (params
+ `(,(string-append "--prefix=" out)
+ ,(string-append "--libdir=" out "/lib")
+ ,(string-append "--docdir=" out
+ "/share/doc/" name-version)
+ "--libsubdir=$compiler/$pkg-$version"
+ "--package-db=../package.conf.d"
+ "--global"
+ ,@(if tests?
+ '("--enable-tests")
+ '())
+ ;; Build and link with shared libraries
+ "--enable-shared"
+ "--enable-executable-dynamic"
+ "--ghc-option=-fPIC"
+ ,(string-append "--ghc-option=-optl=-Wl,-rpath=" out
+ "/lib/$compiler/$pkg-$version")
+ ,@configure-flags)))
(unsetenv "GHC_PACKAGE_PATH")
(apply invoke "runhaskell" "-package-db=../package.conf.d"
"Setup.hs" "configure" params)