sbcl.pkgs.cephes: fix build
The package could not be built because it was trying to write the DLL into $src. One way to fix that is to build the DLL beforehand. Perhaps "make" could be convinced to put its outputs elsewhere, then the build-with-compile-into-pwd could be swapped for just build-asdf-system. It would have to create $out during buildPhase.
This commit is contained in:
parent
2c9ecd1f04
commit
b8daebef9a
2 changed files with 30 additions and 0 deletions
|
@ -243,6 +243,14 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
cephes = build-with-compile-into-pwd {
|
||||
inherit (super.cephes) pname version src lispLibs;
|
||||
patches = [ ./patches/cephes-make.patch ];
|
||||
postConfigure = ''
|
||||
substituteAllInPlace cephes.asd
|
||||
'';
|
||||
};
|
||||
|
||||
clx-truetype = build-asdf-system {
|
||||
pname = "clx-truetype";
|
||||
version = "20160825-git";
|
||||
|
|
22
pkgs/development/lisp-modules/patches/cephes-make.patch
Normal file
22
pkgs/development/lisp-modules/patches/cephes-make.patch
Normal file
|
@ -0,0 +1,22 @@
|
|||
--- a/cephes.asd
|
||||
+++ b/cephes.asd
|
||||
@@ -5,7 +5,7 @@
|
||||
(defclass makefile (source-file) ((type :initform "m")))
|
||||
(defmethod perform ((o load-op) (c makefile)) t)
|
||||
(defmethod perform ((o compile-op) (c makefile))
|
||||
- (let* ((lib-dir (system-relative-pathname "cephes" "scipy-cephes"))
|
||||
+ (let* ((lib-dir #P"@out@/scipy-cephes")
|
||||
(lib (make-pathname :directory `(:relative ,(namestring lib-dir))
|
||||
:name "libmd"
|
||||
:type #+darwin "dylib" #+(and unix (not darwin)) "so" #+(or windows win32) "dll"))
|
||||
@@ -14,7 +14,7 @@
|
||||
(format *error-output* "Library ~S exists, skipping build" lib)
|
||||
(format *error-output* "Building ~S~%" lib))
|
||||
(unless built
|
||||
- (chdir (native-namestring lib-dir))
|
||||
+ (chdir "scipy-cephes")
|
||||
(run-program "make" :output t))))
|
||||
|
||||
(defsystem "cephes"
|
||||
|
||||
Diff finished. Thu Mar 28 08:13:30 2024
|
Loading…
Reference in a new issue