[bug#78246,2/3] gnu: Add symfpu.

Message ID 75016ee93ed5132c6c3cff0d078e84fdf301b246.1746379841.git.soeren@soeren-tempel.net
State New
Headers
Series gnu: Add bitwuzla. |

Commit Message

Sören Tempel May 4, 2025, 5:40 p.m. UTC
  From: Sören Tempel <soeren@soeren-tempel.net>

* gnu/packages/maths.scm (symfpu): New variable.
---
 gnu/packages/maths.scm | 56 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
  

Comments

Liliana Marie Prikler May 5, 2025, 7:32 a.m. UTC | #1
Am Sonntag, dem 04.05.2025 um 19:40 +0200 schrieb
soeren@soeren-tempel.net:
> From: Sören Tempel <soeren@soeren-tempel.net>
> 
> * gnu/packages/maths.scm (symfpu): New variable.
> ---
>  gnu/packages/maths.scm | 56
> ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 56 insertions(+)
> 
> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 53f726f620..572912ca82 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -8218,6 +8218,62 @@ (define-public yices
>  s-expression-based format.")
>     (license license:gpl3+)))
>  
> +(define-public symfpu
> +  (let ((commit "22d993d880f66b2e470c3928e0e61bdf61419702"))
Commit and revision should both be let-bound.
> +    (package
> +      (name "symfpu")
> +      (version (git-version "20220910" "0" commit))
Whence cometh the base version?
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://github.com/martin-cs/symfpu")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32
> "1h20zzkyi225290kc6mzg8i4dwkj0p1vlwfgc9ycs61snlyd8gr8"))))
> +      (build-system copy-build-system)
> +      (arguments
> +       (list
> +        #:phases
> +        #~(modify-phases %standard-phases
> +            (delete 'configure)
> +            (replace 'install
> +              (lambda* (#:key outputs #:allow-other-keys)
> +                (let* ((outdir (assoc-ref outputs "out"))
> +                       (incdir (string-append outdir
> "/include/symfpu"))
> +                       (libdir (string-append outdir "/lib"))
> +
> +                       (coredir (string-append incdir "/core"))
> +                       (utilsdir (string-append incdir "/utils")))
> +                  (mkdir-p coredir)
> +                  (mkdir-p utilsdir)
> +                  (copy-recursively "core" coredir)
> +                  (copy-recursively "utils" utilsdir)
This should be an install plan.
> +                  (mkdir-p (string-append libdir "/pkgconfig"))
> +                  (with-output-to-file (string-append libdir
> +                                                     
> "/pkgconfig/symfpu.pc")
> +                    (lambda _
> +                      (format #t
> +                       "prefix=~a~@
> +                        exec_prefix=${prefix}~@
> +                        includedir=${prefix}/include~@
> +                        ~@
> +                        ~@
> +                        Name: symfpu~@
> +                        Version: ~a~@
> +                        Description: library for IEEE-754 floats~@
> +                        Cflags: -I${includedir}~%"
> +                       outdir
> +                       #$version)))))))))
Consider writing this to the current directory and refering to it in
the install plan.
> +      (synopsis
> +       "Concrete and symbolic implementation of IEEE-754 floating-
> point numbers")
> +      (description
> +       "This library provides a C++ implementation of concrete and
> symbolic semantics
> +for floating point numbers as defined in IEEE Standard for Floating-
> Point Arithmetic.")
> +      (home-page "https://github.com/martin-cs/symfpu")
> +      (license license:gpl3))))
> +
Should probably be gpl3+


Cheers
  

Patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 53f726f620..572912ca82 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -8218,6 +8218,62 @@  (define-public yices
 s-expression-based format.")
    (license license:gpl3+)))
 
+(define-public symfpu
+  (let ((commit "22d993d880f66b2e470c3928e0e61bdf61419702"))
+    (package
+      (name "symfpu")
+      (version (git-version "20220910" "0" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/martin-cs/symfpu")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1h20zzkyi225290kc6mzg8i4dwkj0p1vlwfgc9ycs61snlyd8gr8"))))
+      (build-system copy-build-system)
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (delete 'configure)
+            (replace 'install
+              (lambda* (#:key outputs #:allow-other-keys)
+                (let* ((outdir (assoc-ref outputs "out"))
+                       (incdir (string-append outdir "/include/symfpu"))
+                       (libdir (string-append outdir "/lib"))
+
+                       (coredir (string-append incdir "/core"))
+                       (utilsdir (string-append incdir "/utils")))
+                  (mkdir-p coredir)
+                  (mkdir-p utilsdir)
+                  (copy-recursively "core" coredir)
+                  (copy-recursively "utils" utilsdir)
+                  (mkdir-p (string-append libdir "/pkgconfig"))
+                  (with-output-to-file (string-append libdir
+                                                      "/pkgconfig/symfpu.pc")
+                    (lambda _
+                      (format #t
+                       "prefix=~a~@
+                        exec_prefix=${prefix}~@
+                        includedir=${prefix}/include~@
+                        ~@
+                        ~@
+                        Name: symfpu~@
+                        Version: ~a~@
+                        Description: library for IEEE-754 floats~@
+                        Cflags: -I${includedir}~%"
+                       outdir
+                       #$version)))))))))
+      (synopsis
+       "Concrete and symbolic implementation of IEEE-754 floating-point numbers")
+      (description
+       "This library provides a C++ implementation of concrete and symbolic semantics
+for floating point numbers as defined in IEEE Standard for Floating-Point Arithmetic.")
+      (home-page "https://github.com/martin-cs/symfpu")
+      (license license:gpl3))))
+
 (define-public z3
   (package
     (name "z3")