1 | # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 |
---|
2 | # $Id: Portfile 142083 2015-11-03 11:06:55Z ryandesign@macports.org $ |
---|
3 | |
---|
4 | PortSystem 1.0 |
---|
5 | PortGroup muniversal 1.0 |
---|
6 | |
---|
7 | name pari |
---|
8 | version 2.7.5 |
---|
9 | categories math |
---|
10 | platforms darwin |
---|
11 | license GPL-2+ |
---|
12 | maintainers gmail.com:watsonbladd openmaintainer |
---|
13 | |
---|
14 | description PARI/GP computer algebra system |
---|
15 | |
---|
16 | long_description PARI/GP is a widely used computer algebra system designed \ |
---|
17 | for fast computations in number theory (factorizations, \ |
---|
18 | algebraic number theory, elliptic curves...) |
---|
19 | |
---|
20 | homepage http://pari.math.u-bordeaux.fr/ |
---|
21 | master_sites ${homepage}pub/pari/unix/ |
---|
22 | |
---|
23 | checksums md5 87a0d8a49e0845bc372dadfacb5b889e \ |
---|
24 | sha256 2140fe2d40b5a42acd5b7fce7e49b576777efdfc59370b531e07cb07d4401431 |
---|
25 | |
---|
26 | depends_lib port:gmp \ |
---|
27 | port:ncurses \ |
---|
28 | port:readline |
---|
29 | |
---|
30 | platform darwin 8 { |
---|
31 | build.args-append EXTRADLLDFLAGS="-Wl,-single_module" |
---|
32 | destroot.args-append EXTRADLLDFLAGS="-Wl,-single_module" |
---|
33 | } |
---|
34 | |
---|
35 | # llvm-gcc produces incorrect code, ticket #33024 |
---|
36 | compiler.blacklist llvm-gcc-4.2 |
---|
37 | |
---|
38 | configure.cmd ./Configure |
---|
39 | |
---|
40 | # PARI/GP doesn't use autoconf, and if only *FLAGS environment variables are |
---|
41 | # used, libreadline is not found. One needs *PATH environment variables. |
---|
42 | configure.env C_INCLUDE_PATH=${prefix}/include |
---|
43 | |
---|
44 | # Always use GMP (forced by --with-gmp), as advised by the PARI developers: |
---|
45 | # http://www.math.u-bordeaux.fr/~belabas/pari/doc/faq.html#gnump |
---|
46 | # There are no reasons not to use it. If a no_gmp variant is needed, |
---|
47 | # one would need --without-gmp, as by default, PARI's Configure will |
---|
48 | # choose GMP if it can find it. |
---|
49 | configure.args --mandir=${prefix}/share/man \ |
---|
50 | --with-gmp \ |
---|
51 | --with-readline \ |
---|
52 | --graphic=none |
---|
53 | configure.universal_args-delete --disable-dependency-tracking |
---|
54 | |
---|
55 | set merger_must_run_binaries yes |
---|
56 | |
---|
57 | # pari does not build for ppc on intel |
---|
58 | if {${build_arch} eq "i386" || ${build_arch} eq "x86_64"} { |
---|
59 | supported_archs i386 x86_64 |
---|
60 | } elseif {${build_arch} eq "ppc" || ${build_arch} eq "ppc64"} { |
---|
61 | supported_archs ppc ppc64 |
---|
62 | } |
---|
63 | set universal_archs_supported ${supported_archs} |
---|
64 | |
---|
65 | post-patch { |
---|
66 | if {![variant_isset doc]} { |
---|
67 | reinplace "s/\\(doc all:\\).*/\\1/" \ |
---|
68 | ${worksrcpath}/config/DOC_Make.SH |
---|
69 | reinplace "/INSTALL_DATA.*\\.\\(dvi\\|ps\\)/d" \ |
---|
70 | ${worksrcpath}/config/Makefile.SH |
---|
71 | } |
---|
72 | } |
---|
73 | |
---|
74 | build.args-append CPLUSPLUS=${configure.cxx} |
---|
75 | |
---|
76 | build.target gp |
---|
77 | |
---|
78 | post-destroot { |
---|
79 | set docdir ${destroot}${prefix}/share/doc/${name} |
---|
80 | file mkdir ${docdir} |
---|
81 | xinstall -m 644 -v -W ${worksrcpath} \ |
---|
82 | AUTHORS CHANGES COPYING ${docdir} |
---|
83 | ln -s ../../${name}/doc ${docdir}/doc |
---|
84 | } |
---|
85 | |
---|
86 | variant doc description {Build DVI/PDF/PS documentation} { |
---|
87 | depends_build-append path:bin/tex:texlive |
---|
88 | build.target-append docpdf |
---|
89 | post-destroot { |
---|
90 | if {[variant_isset universal]} { |
---|
91 | set dir ${worksrcpath}-[lindex ${universal_archs_to_use} 0] |
---|
92 | } else { |
---|
93 | set dir ${worksrcpath} |
---|
94 | } |
---|
95 | xinstall -m 644 -W ${dir}/doc \ |
---|
96 | develop.pdf libpari.pdf refcard.pdf tutorial.pdf users.pdf \ |
---|
97 | ${destroot}${prefix}/share/${name}/doc |
---|
98 | } |
---|
99 | } |
---|
100 | |
---|
101 | # Qt support doesn't work with: |
---|
102 | # depends_lib-append port:qt4-mac |
---|
103 | # configure.args-delete --graphic=none |
---|
104 | # configure.args-append --graphic=Qt --with-qt=${prefix} |
---|
105 | # Configure succeeds, but the build of src/graph/plotQt.c fails because |
---|
106 | # ${prefix}/include/Qt is not in the include search path. |
---|
107 | |
---|
108 | # Plotting works with X11, but the redraw after a window resize is |
---|
109 | # sometimes incorrect. |
---|
110 | variant x11 conflicts fltk description {Build with X11 support for the high-resolution plotting functions} { |
---|
111 | depends_lib-append port:xorg-libX11 |
---|
112 | configure.args-delete --graphic=none |
---|
113 | configure.args-append --graphic=X11 |
---|
114 | } |
---|
115 | |
---|
116 | # Plotting works with fltk @1.1.10_3, but the GUI part freezes |
---|
117 | # (a Force Quit is needed). |
---|
118 | variant fltk conflicts x11 description {Build with FLTK support for the high-resolution plotting functions} { |
---|
119 | depends_lib-append path:lib/libfltk.dylib:fltk |
---|
120 | configure.args-delete --graphic=none |
---|
121 | configure.args-append --graphic=fltk |
---|
122 | } |
---|
123 | |
---|
124 | livecheck.type regex |
---|
125 | livecheck.url [lindex ${master_sites} 0] |
---|
126 | livecheck.regex ${name}-(\\d+\\.\\d+\\.\\d+) |
---|