source: trunk/dports/lang/pure/Portfile

Last change on this file was 148006, checked in by ryandesign@…, 8 months ago

pure: fix an issue with Pure running as a VST plug-in (#51056)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
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 148006 2016-04-24 14:05:44Z ryandesign@macports.org $
3
4PortSystem              1.0
5PortGroup               bitbucket 1.0
6
7# Keep the versions of pure and pure-docs in sync.
8bitbucket.setup         purelang pure-lang 0.64 pure-
9name                    pure
10categories              lang
11platforms               darwin
12maintainers             ryandesign gmail.com:aggraef
13license                 LGPL-3+ GPL-3+ BSD
14use_parallel_build      yes
15homepage                http://purelang.bitbucket.org/
16
17description             functional programming language based on term rewriting
18
19long_description        Pure is a functional programming language based on \
20                        term rewriting. It has a modern syntax featuring \
21                        curried function applications, lexical closures and \
22                        equational definitions with pattern matching, and \
23                        thus is somewhat similar to languages of the Haskell \
24                        and ML variety. But Pure is also a very dynamic and \
25                        reflective language, and is more like Lisp in this \
26                        respect. The interpreter has an LLVM backend to do \
27                        JIT compilation, hence programs run blazingly fast \
28                        and interfacing to C modules is easy. The libraries \
29                        are licensed under LGPL-3+, the interpreter is GPL-3+, \
30                        and the examples are BSD-licensed.
31
32bitbucket.tarball_from  downloads
33distname                ${name}-${version}
34
35checksums               rmd160  fa5d57b94fad999ada281edaf30db4212a0a28ae \
36                        sha256  efd55229342aec9d79e8fa4732a30f140e1773064f3869abde053e01468f7b07
37
38set llvm_version        3.4
39set llvm_prefix         ${prefix}/libexec/llvm-${llvm_version}
40configure.env           PATH=${llvm_prefix}/bin:$env(PATH)
41
42if {${name} eq ${subport}} {
43    revision                    3
44   
45    depends_lib                 port:gmp \
46                                port:libiconv \
47                                port:libtool \
48                                port:llvm-${llvm_version} \
49                                port:mpfr \
50                                port:ncurses \
51                                port:readline
52   
53    depends_run                 port:w3m
54   
55    configure.args              --without-elisp \
56                                --with-tool-prefix=${llvm_prefix}/bin
57   
58    # Explicitly disable C++11 support because Pure doesn't need it and the
59    # auto-detection in the configure script gets it wrong when using clang
60    # 3.3 or later with libstdc++:
61    # https://bitbucket.org/purelang/pure-lang/issue/28/pure-fails-to-build-on-os-x-107-and-108
62    configure.args-append       --disable-c++11
63   
64    # Prevent build failure when old llvm port is installed
65    configure.cppflags          -I${llvm_prefix}/include ${configure.cppflags}
66    configure.ldflags           -L${llvm_prefix}/lib ${configure.ldflags}
67
68    # Last-minute fixes to the ATS inlining support
69    patchfiles-append           pure-0.64-ats-hotfixes.diff
70    # Critical bugfix in the debugger (issue #32)
71    patchfiles-append           pure-0.64-debugger-hotfix.diff
72    # Bugfix in the runtime (pure_switch_interp, rev. 9114fc3)
73    patchfiles-append           pure-0.64-runtime-hotfix.diff
74   
75    platform macosx {
76        depends_run-replace     port:w3m port:openbrowser
77        patchfiles-append       patch-openbrowser.diff
78    }
79   
80    platform powerpc {
81        configure.args-append   --disable-fastcc
82    }
83   
84    post-destroot {
85        set docdir ${destroot}${prefix}/share/doc/${name}
86        xinstall -d ${docdir} ${destroot}${prefix}/share/examples
87        xinstall -W ${destroot.dir} -m 644 \
88            COPYING \
89            COPYING.LESSER \
90            ChangeLog \
91            NEWS \
92            README \
93            TODO \
94            ${docdir}
95        copy ${destroot.dir}/examples ${destroot}${prefix}/share/examples/${name}
96    }
97
98    variant pcre description {Replace POSIX regular expression support with PCRE support} {
99        depends_lib-append      port:pcre
100        configure.args-append   --with-pcre
101    }
102   
103    test.run                    yes
104    test.target                 check
105} else {
106    livecheck.type              none
107}
108
109subport pure-mode.el {
110    revision                    0
111   
112    categories-append           editors
113    license                     GPL-3+
114    supported_archs             noarch
115    homepage                    https://bitbucket.org/purelang/pure-lang/wiki/UsingPure#markdown-header-pure-and-emacs
116   
117    description                 Emacs mode for editing Pure files
118   
119    long_description            ${subport} is an ${description}.
120   
121    depends_lib                 port:emacs
122   
123    extract.post_args-append    ${worksrcdir}/etc
124   
125    build.dir                   ${worksrcpath}/etc
126   
127    post-extract {
128        copy ${build.dir}/pure-mode.el.in ${build.dir}/pure-mode.el
129    }
130   
131    use_configure               no
132   
133    build {
134        reinplace "s|@bindir@|${prefix}/bin|g" ${build.dir}/pure-mode.el
135        reinplace "s|@libdir@|${prefix}/lib|g" ${build.dir}/pure-mode.el
136        system -W ${build.dir} "${prefix}/bin/emacs -q --no-site-file -batch -eval \"(add-to-list 'load-path \\\".\\\")\" -eval \"(setq byte-compile-warnings '(callargs free-vars noruntime redefine))\" -f batch-byte-compile pure-mode.el"
137    }
138   
139    destroot {
140        set lispdir ${destroot}${prefix}/share/emacs/site-lisp
141        xinstall -d ${lispdir}
142        xinstall -m 644 -W ${destroot.dir} pure-mode.el pure-mode.elc ${lispdir}
143    }
144}
Note: See TracBrowser for help on using the repository browser.