mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
gnu: Add libtommath.
* gnu/packages/multiprecision.scm (libtommath): New variable. * gnu/packages/patches/libtommath.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it.
This commit is contained in:
parent
13eb556f9f
commit
1a753385c7
3 changed files with 113 additions and 1 deletions
|
@ -993,6 +993,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
|
||||
%D%/packages/patches/libtar-CVE-2013-4420.patch \
|
||||
%D%/packages/patches/libtheora-config-guess.patch \
|
||||
%D%/packages/patches/libtommath-fix-linkage.patch \
|
||||
%D%/packages/patches/libtool-skip-tests2.patch \
|
||||
%D%/packages/patches/libusb-0.1-disable-tests.patch \
|
||||
%D%/packages/patches/libusb-for-axoloti.patch \
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -290,3 +290,59 @@ (define-public tomsfastmath
|
|||
ISO C. It is a port of LibTomMath with optional support for inline assembler
|
||||
multiplies.")
|
||||
(license public-domain)))
|
||||
|
||||
(define-public libtommath
|
||||
(package
|
||||
(name "libtommath")
|
||||
(version "1.1.0")
|
||||
(outputs '("out" "static"))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/libtom/libtommath/releases/"
|
||||
"download/v" version "/ltm-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bbyagqzfdbg37k1n08nsqzdf44z8zsnjjinqbsyj7rxg246qilh"))
|
||||
(patches (search-patches "libtommath-fix-linkage.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure
|
||||
(add-after 'unpack 'prepare-build
|
||||
(lambda _
|
||||
;; Don't pull in coreutils.
|
||||
(substitute* "makefile_include.mk"
|
||||
(("arch") "uname -m"))
|
||||
|
||||
;; We want the shared library by default so force it to be the
|
||||
;; default makefile target.
|
||||
(delete-file "makefile")
|
||||
(symlink "makefile.shared" "makefile")
|
||||
#t))
|
||||
(add-after 'install 'remove-static-library
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(delete-file (string-append (assoc-ref outputs "out")
|
||||
"/lib/libtommath.a"))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "test_standalone" make-flags)
|
||||
(invoke "sh" "test")))
|
||||
(add-after 'install 'install-static-library
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "make" "-f" "makefile.unix" "install"
|
||||
(string-append "PREFIX=" (assoc-ref outputs "static"))
|
||||
(string-append "CC=" (which "gcc"))))))
|
||||
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
"CC=gcc")))
|
||||
(native-inputs
|
||||
`(("libtool" ,libtool)))
|
||||
(home-page "https://www.libtom.net/LibTomMath/")
|
||||
(synopsis "Portable number theoretic multiple-precision integer library")
|
||||
(description "LibTomMath is a portable number theoretic multiple-precision
|
||||
integer library written entirely in C. It's designed to provide an API that is
|
||||
simple to work with that provides fairly efficient routines that build out of
|
||||
the box without configuration.")
|
||||
(license unlicense)))
|
||||
|
|
55
gnu/packages/patches/libtommath-fix-linkage.patch
Normal file
55
gnu/packages/patches/libtommath-fix-linkage.patch
Normal file
|
@ -0,0 +1,55 @@
|
|||
https://github.com/libtom/libtommath/commit/93dea3a4162527346cd8856bfda6f17ffe98ab04.patch
|
||||
|
||||
From 93dea3a4162527346cd8856bfda6f17ffe98ab04 Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Jaeckel <s@jaeckel.eu>
|
||||
Date: Thu, 31 Jan 2019 14:12:03 +0100
|
||||
Subject: [PATCH] makefile.shared: fix compilation and linkage
|
||||
|
||||
---
|
||||
makefile.shared | 15 ++++++++-------
|
||||
1 file changed, 8 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/makefile.shared b/makefile.shared
|
||||
index 3955f830..870b18d1 100644
|
||||
--- a/makefile.shared
|
||||
+++ b/makefile.shared
|
||||
@@ -18,6 +18,7 @@ ifndef LIBTOOL
|
||||
endif
|
||||
endif
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC)
|
||||
+LTLINK = $(LIBTOOL) --mode=link --tag=CC $(CC)
|
||||
|
||||
LCOV_ARGS=--directory .libs --directory .
|
||||
|
||||
@@ -59,7 +60,7 @@ objs: $(OBJECTS)
|
||||
LOBJECTS = $(OBJECTS:.o=.lo)
|
||||
|
||||
$(LIBNAME): $(OBJECTS)
|
||||
- $(LIBTOOL) --mode=link --tag=CC $(CC) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
|
||||
+ $(LTLINK) $(LDFLAGS) $(LOBJECTS) -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_SO) $(LIBTOOLFLAGS)
|
||||
|
||||
install: $(LIBNAME)
|
||||
install -d $(DESTDIR)$(LIBPATH)
|
||||
@@ -76,16 +77,16 @@ uninstall:
|
||||
rm $(DESTDIR)$(LIBPATH)/pkgconfig/libtommath.pc
|
||||
|
||||
test: $(LIBNAME) demo/demo.o
|
||||
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||
|
||||
test_standalone: $(LIBNAME) demo/demo.o
|
||||
- $(CC) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||
- $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||
+ $(LTCOMPILE) $(CFLAGS) -c demo/demo.c -o demo/demo.o
|
||||
+ $(LTLINK) $(LDFLAGS) -o test demo/demo.o $(LIBNAME)
|
||||
|
||||
.PHONY: mtest
|
||||
mtest:
|
||||
- cd mtest ; $(CC) $(CFLAGS) $(LDFLAGS) mtest.c -o mtest
|
||||
+ cd mtest ; $(CC) $(CFLAGS) -O0 mtest.c $(LDFLAGS) -o mtest
|
||||
|
||||
timing: $(LIBNAME) demo/timing.c
|
||||
- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
|
||||
+ $(LTLINK) $(CFLAGS) $(LDFLAGS) -DTIMER demo/timing.c $(LIBNAME) -o timing
|
Loading…
Reference in a new issue