summary refs log tree commit diff
path: root/gnu/packages/agda.scm
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 /gnu/packages/agda.scm
parent856def7bb3b4af85a1325bc732e81d705156a482 (diff)
downloadguix-8d06906017901822c9186a6885f85bcd8cd97467.tar.gz
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.
Diffstat (limited to 'gnu/packages/agda.scm')
-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)