Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagesmc
Path: blob/master/build/pkgs/lcalc/SPKG.txt
8817 views
1
= lcalc =
2
3
== Description ==
4
5
Michael Rubinstein's L-function calculator.
6
7
== License ==
8
9
* LGPL V2+
10
11
== SPKG Maintainers ==
12
13
* Rishikesh
14
15
== Upstream contact ==
16
17
Michael Rubinstein <[email protected]>
18
19
Sources: http://oto.math.uwaterloo.ca/~mrubinst/L_function_public/L.html
20
21
Newer beta version 1.3 (not yet in Sage):
22
http://code.google.com/p/l-calc/
23
24
== Dependencies ==
25
26
* GMP/MPIR
27
* MPFR
28
* PARI
29
* GNU patch
30
31
== Special Update/Build Instructions ==
32
33
* There is some garbage in the upstream sources which should be removed:
34
src/include/.Lexplicit_formula.h.swp
35
src/include/.Lvalue.h.swp
36
src/include/._.DS_Store
37
src/include/.DS_Store
38
src/include/Lexplicit_formula.h.swap.crap
39
src/include/Lvalue.h.bak
40
src/src/Makefile.old
41
src/src/.Makefile.old.swp
42
src/src/._.DS_Store
43
src/src/.DS_Store
44
src/src/.Lcommandline.ggo.swp
45
src/src/libLfunction.a
46
* We (and apparently also upstream) currently don't build Lcalc's tests
47
(see Makefile), hence there's no spkg-check.
48
This might change in newer upstream versions.
49
* The original Makefile uses $(CC) to compile C++ (also using $(CCFLAGS)),
50
which it defines to 'g++', and hardcodes 'g++' when linking the shared
51
library. (It should use $(CXX) instead, which might *default* to 'g++'.)
52
We now (lcalc-1.23.p10) patch the Makefile also to use $(CXX) for compiling
53
and linking C++; $(CXX) now *defaults* to 'g++', and $(CC) to 'gcc', but
54
both can be overridden by simply setting their respective environment
55
variables. (Same for $(INSTALL_DIR) btw.)
56
57
== Patches ==
58
59
* Makefile.patch:
60
We change a lot there, since Lcalc doesn't have a 'configure' script,
61
and hence the Makefile is supposed to be edited to customize Lcalc (build
62
options, locations of headers and libraries etc.).
63
Besides that, we
64
- put CXXFLAGS into Lcalc's "CCFLAGS" used for compiling C++,
65
- remove some stuff involving LDFLAGS1 and LDFLAGS2, setting just LDFLAGS,
66
- use $(MAKE) instead of 'make' in the crude build receipts,
67
- use CXXFLAG64 when linking the shared library,
68
- now use $(CXX) for compiling and linking C++, which *defaults* to 'g++',
69
but can be overridden by setting the environment variable of the same
70
name. ($(CC) now *defaults* to 'gcc', although currently not really
71
used as far as I can see.)
72
- $(INSTALL_DIR) can now be overridden by simply setting the environment
73
variable of the same name.
74
* Lcommon.h.patch:
75
Uncomment the definition of lcalc_to_double(const long double& x).
76
(Necessary for GCC >= 4.6.0, cf. #10892.)
77
Comment from there:
78
The reason is the following code horror from src/src/include/Lcommon.h:
79
[...]
80
But somebody who is familiar with the codebase should really rewrite lcalc
81
to not redefine the double() cast, thats just fragile and will sooner or
82
later again fail inside some system headers.
83
* pari-2.4.4.patch:
84
Replace obsolete lgeti() by (long)cgeti().
85
* init_stack.patch:
86
Replace obsolete allocatemoremem() by a direct call to the private
87
function pari_init_stack(). The public function allocatemem() prints
88
useless warnings and is by definition treated as an error.
89
* time.h.patch:
90
(Patches src/include/Lcommandline_numbertheory.h)
91
Include also <time.h> in Lcommandline_numbertheory.h (at least required
92
on Cygwin, cf. #9845).
93
This should get reported upstream.
94
95