mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 23:03:40 +01:00
lcalc: init at 1.23 (#38796)
This commit is contained in:
parent
313b5fce7b
commit
10124a4743
3 changed files with 193 additions and 0 deletions
78
pkgs/development/libraries/science/math/lcalc/default.nix
Normal file
78
pkgs/development/libraries/science/math/lcalc/default.nix
Normal file
|
@ -0,0 +1,78 @@
|
|||
{ stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pari
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.23";
|
||||
pname = "lcalc";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
# original at http://oto.math.uwaterloo.ca/~mrubinst/L_function_public/CODE/L-${version}.tar.gz, no longer available
|
||||
# "newer" version at google code https://code.google.com/archive/p/l-calc/source/default/source
|
||||
url = "http://mirrors.mit.edu/sage/spkg/upstream/lcalc/lcalc-${version}.tar.bz2";
|
||||
sha256 = "1c6dsdshgxhqppjxvxhp8yhpxaqvnz3d1mlh26r571gkq8z2bm43";
|
||||
};
|
||||
|
||||
preConfigure = "cd src";
|
||||
|
||||
buildInputs = [
|
||||
pari
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Port to newer pari
|
||||
(fetchpatch {
|
||||
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/pari-2.7.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
|
||||
sha256 = "1x3aslldm8njjm7p9g9s9w2c91kphnci2vpkxkrcxfihw3ayss6c";
|
||||
})
|
||||
|
||||
# Uncomment the definition of lcalc_to_double(const long double& x).
|
||||
# (Necessary for GCC >= 4.6.0, cf. https://trac.sagemath.org/ticket/10892)
|
||||
(fetchpatch {
|
||||
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/Lcommon.h.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
|
||||
sha256 = "0g4ybvsrcv48rmlh1xjnkms19jp25k58azv6ds1f2cm34hxs8fdx";
|
||||
})
|
||||
|
||||
# Include also <time.h> in Lcommandline_numbertheory.h (at least required
|
||||
# on Cygwin, cf. https://trac.sagemath.org/ticket/9845)
|
||||
(fetchpatch {
|
||||
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/time.h.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
|
||||
sha256 = "1brf04n11kkc43ylagf8dm32j5r2g9zv51dp5wag1mpm4p04l7cl";
|
||||
})
|
||||
|
||||
# Fix for gcc >4.6
|
||||
(fetchpatch {
|
||||
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/lcalc-1.23_default_parameters_1.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
|
||||
sha256 = "0i2yvxm5fx4z0v6m4srgh8rj98kijmlvyirlxf1ky0bp2si6bpka";
|
||||
})
|
||||
|
||||
# gcc 5.1
|
||||
(fetchpatch {
|
||||
url = "https://git.sagemath.org/sage.git/plain/build/pkgs/lcalc/patches/lcalc-1.23_default_parameters_2.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
|
||||
sha256 = "0dqwmxpm9wb53qbypsyfkgsvk2f8nf67sydphd4dkc2vw4yz6vlh";
|
||||
})
|
||||
|
||||
# based on gentoos makefile patch -- fix paths, adhere to flags
|
||||
./makefile.patch
|
||||
];
|
||||
|
||||
installFlags = [
|
||||
"DESTDIR=$(out)"
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PARI_DEFINE=-DINCLUDE_PARI"
|
||||
"PARI_PREFIX=${pari}"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://oto.math.uwaterloo.ca/~mrubinst/L_function_public/L.html;
|
||||
description = "A program for calculating with L-functions";
|
||||
license = with licenses; [ gpl2 ];
|
||||
maintainers = with maintainers; [ timokau ];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
113
pkgs/development/libraries/science/math/lcalc/makefile.patch
Normal file
113
pkgs/development/libraries/science/math/lcalc/makefile.patch
Normal file
|
@ -0,0 +1,113 @@
|
|||
diff --git a/src/Makefile b/src/Makefile
|
||||
index 84e4e88..56ca676 100644
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -58,7 +58,7 @@ ifeq ($(G5),TRUE)
|
||||
#MACHINE_SPECIFIC_FLAGS = -mpowerpc -mpowerpc64 -m64
|
||||
endif
|
||||
|
||||
-CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
||||
+CCFLAGS = $(CXXFLAGS) $(OPENMP_FLAG) $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS)
|
||||
#CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
||||
#CCFLAGS = -Wa,-W -O2 -fno-exceptions -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MACHINE_SPECIFIC_FLAGS) $(EXTRA)
|
||||
|
||||
@@ -68,12 +68,12 @@ CCFLAGS = -Wa,-W -O3 $(OPENMP_FLAG) -Wno-deprecated $(PREPROCESSOR_DEFINE) $(MA
|
||||
|
||||
ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
||||
#location of pari.h.
|
||||
- LOCATION_PARI_H = /usr/local/include/pari #usual location
|
||||
+ LOCATION_PARI_H = $(PARI_PREFIX)/include/pari #usual location
|
||||
|
||||
#location of libpari.a or of libpari.so
|
||||
#depending on whether static or dynamic libraries are being used.
|
||||
#On mac os x it's the former, on linux I think usually the latter.
|
||||
- LOCATION_PARI_LIBRARY = /usr/local/lib #usual location
|
||||
+ LOCATION_PARI_LIBRARY = $(PARI_PREFIX)/lib #usual location
|
||||
else
|
||||
#supplied as a dummy so as to avoid more ifeq's below
|
||||
LOCATION_PARI_H = .
|
||||
@@ -89,24 +89,24 @@ INCLUDEFILES= -I../include
|
||||
|
||||
ifeq ($(OS_NAME),Darwin)
|
||||
LDFLAGS2 =
|
||||
- DYN_OPTION=dynamiclib
|
||||
+ DYN_OPTION=-dynamiclib
|
||||
else
|
||||
- LDFLAGS1 = -Xlinker -export-dynamic #not sure why pari calls these when linking but on the web I found
|
||||
+ LDFLAGS1 = #not sure why pari calls these when linking but on the web I found
|
||||
#'Libtool provides the `-export-dynamic' link flag (see section Link mode), which does this declaration.
|
||||
#You need to use this flag if you are linking a shared library that will be dlopened'
|
||||
#see notes below
|
||||
#ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
||||
- LDFLAGS2 = $(LDFLAGS1) -Xlinker -rpath -Xlinker $(LOCATION_PARI_LIBRARY)
|
||||
+ LDFLAGS2 = $(LDFLAGS)
|
||||
#else
|
||||
# LDFLAGS2 = $(LDFLAGS1)
|
||||
#endif
|
||||
- DYN_OPTION=shared
|
||||
+ DYN_OPTION=$(LDFLAGS) -shared -Wl,-soname,libLfunction.so
|
||||
endif
|
||||
|
||||
ifeq ($(PARI_DEFINE),-DINCLUDE_PARI)
|
||||
- LDFLAGS = $(LDFLAGS2) -L$(LOCATION_PARI_LIBRARY) -lpari
|
||||
+ MYLDFLAGS = $(LDFLAGS2) -L$(LOCATION_PARI_LIBRARY) -lpari
|
||||
else
|
||||
- LDFLAGS = $(LDFLAGS2)
|
||||
+ MYLDFLAGS = $(LDFLAGS2)
|
||||
endif
|
||||
|
||||
|
||||
@@ -129,7 +129,8 @@ endif
|
||||
#become clear which libraries the computer can find.
|
||||
|
||||
|
||||
-INSTALL_DIR= /usr/local
|
||||
+INSTALL_DIR= $(DESTDIR)
|
||||
+LIB_DIR ?=lib
|
||||
|
||||
#object files for the libLfunction library
|
||||
OBJ_L = Lglobals.o Lgamma.o Lriemannsiegel.o Lriemannsiegel_blfi.o Ldokchitser.o
|
||||
@@ -141,9 +142,8 @@ OBJECTS = $(OBJ3)
|
||||
|
||||
all:
|
||||
# make print_vars
|
||||
- make libLfunction.so
|
||||
- make lcalc
|
||||
- make examples
|
||||
+ ${MAKE} libLfunction.so
|
||||
+ ${MAKE} lcalc
|
||||
# make find_L
|
||||
# make test
|
||||
|
||||
@@ -151,7 +151,7 @@ print_vars:
|
||||
@echo OS_NAME = $(OS_NAME)
|
||||
|
||||
lcalc: $(OBJECTS)
|
||||
- $(CC) $(CCFLAGS) $(INCLUDEFILES) $(OBJECTS) $(LDFLAGS) -o lcalc $(GMP_FLAGS)
|
||||
+ $(CC) $(CCFLAGS) $(INCLUDEFILES) $(OBJECTS) $(MYLDFLAGS) -o lcalc $(GMP_FLAGS)
|
||||
|
||||
examples:
|
||||
$(CC) $(CCFLAGS) $(INCLUDEFILES) example_programs/example.cc libLfunction.so -o example_programs/example $(GMP_FLAGS)
|
||||
@@ -262,15 +262,18 @@ Lcommandline.o: ../include/Lcommandline_values_zeros.h
|
||||
|
||||
|
||||
libLfunction.so: $(OBJ_L)
|
||||
- g++ -$(DYN_OPTION) -o libLfunction.so $(OBJ_L)
|
||||
+ g++ $(DYN_OPTION) -o libLfunction.so $(OBJ_L)
|
||||
|
||||
clean:
|
||||
rm -f *.o lcalc libLfunction.so example_programs/example
|
||||
|
||||
install:
|
||||
- cp -f lcalc $(INSTALL_DIR)/bin/.
|
||||
- cp -f libLfunction.so $(INSTALL_DIR)/lib/.
|
||||
- cp -rf ../include $(INSTALL_DIR)/include/Lfunction
|
||||
+ install -d $(INSTALL_DIR)/bin
|
||||
+ install -d $(INSTALL_DIR)/$(LIB_DIR)
|
||||
+ install -d $(INSTALL_DIR)/include/libLfunction
|
||||
+ install lcalc $(INSTALL_DIR)/bin
|
||||
+ install libLfunction.so $(INSTALL_DIR)/$(LIB_DIR)
|
||||
+ install -m 644 -t $(INSTALL_DIR)/include/libLfunction ../include/*.h
|
||||
|
||||
|
||||
SRCS = Lcommandline.cc Lcommandline_elliptic.cc Lcommandline_globals.cc Lcommandline_misc.cc Lcommandline_numbertheory.cc Lcommandline_twist.cc Lcommandline_values_zeros.cc Lgamma.cc Lglobals.cc Lmisc.cc Lriemannsiegel.cc Lriemannsiegel_blfi.cc cmdline.c
|
|
@ -19903,6 +19903,8 @@ with pkgs;
|
|||
docs = true;
|
||||
};
|
||||
|
||||
lcalc = callPackage ../development/libraries/science/math/lcalc { };
|
||||
|
||||
lrcalc = callPackage ../applications/science/math/lrcalc { };
|
||||
|
||||
lie = callPackage ../applications/science/math/LiE { };
|
||||
|
|
Loading…
Reference in a new issue