summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2015-05-11 20:24:59 +0200
committerRicardo Wurmus <rekado@elephly.net>2015-05-11 22:25:54 +0200
commitd49976ed4edc2eb6f42fb215917d1c67079bdf1f (patch)
tree75cc33eba4cb5020be8300fc8f419a0f62389ddb /gnu/packages
parentd48c8e7b6070a63dc12ead0bb9ea47b790e237f0 (diff)
downloadguix-d49976ed4edc2eb6f42fb215917d1c67079bdf1f.tar.gz
gnu: ardour: Extract RUNPATH phase.
* gnu/packages/audio.scm (ardour-rpath-phase): New procedure.
* gnu/packages/audio.scm (ardour, ardour-3): Generate version-dependent build
  phase with ardour-rpath-phase.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/audio.scm44
1 files changed, 25 insertions, 19 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 543fe49390..e15381b68a 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -21,6 +21,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
+  #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system waf)
@@ -128,6 +129,22 @@ attacks, performing pitch detection, tapping the beat and producing MIDI
 streams from live audio.")
     (license license:gpl3+)))
 
+(define (ardour-rpath-phase major-version)
+  `(lambda* (#:key outputs #:allow-other-keys)
+     (let ((libdir (string-append (assoc-ref outputs "out")
+                                  "/lib/ardour" ,major-version)))
+       (substitute* "wscript"
+         (("linker_flags = \\[\\]")
+          (string-append "linker_flags = [\""
+                         "-Wl,-rpath="
+                         libdir ":"
+                         libdir "/backends" ":"
+                         libdir "/engines" ":"
+                         libdir "/panners" ":"
+                         libdir "/surfaces" ":"
+                         libdir "/vamp" "\"]"))))
+     #t))
+
 (define-public ardour-3
   (package
     (name "ardour")
@@ -158,24 +175,7 @@ namespace ARDOUR { const char* revision = \"3.5-403-gec2cb31\" ; }"))))
        (modify-phases %standard-phases
          (add-after
           'unpack 'set-rpath-in-LDFLAGS
-          (lambda _
-            (substitute* "wscript"
-              (("linker_flags = \\[\\]")
-               (string-append "linker_flags = [\""
-                              "-Wl,-rpath="
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/backends" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/engines" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/panners" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/surfaces" ":"
-                              (assoc-ref %outputs "out")
-                              "/lib/ardour3/vamp" "\"]")))
-            #t)))
+          ,(ardour-rpath-phase (version-prefix version 1))))
        #:tests? #f ; no check target
        #:python ,python-2))
     (inputs
@@ -246,7 +246,13 @@ namespace ARDOUR { const char* revision = \"4.0\" ; }"))))
               (sha256
                (base32
                 "0a8bydc24xv0cahdqfaxdmi1f43cyr9psiyshxpbrkdqw2c7a4xi"))
-              (file-name (string-append name "-" version))))))
+              (file-name (string-append name "-" version))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ardour-3)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (replace 'set-rpath-in-LDFLAGS
+                    ,(ardour-rpath-phase (version-prefix version 1)))))))))
 
 (define-public azr3
   (package