Ticket #25558: Portfile.10

File Portfile.10, 4.5 KB (added by kitchen.andy@…, 12 years ago)

GHC 7.4.2 portfile with gcc47 as default variant and maintainer added

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$
3
4PortSystem          1.0
5
6name                ghc
7set canonicalname   ghc
8version             7.4.2
9categories          lang haskell
10maintainers         gmail.com:kitchen.andy openmaintainer
11license             BSD
12platforms           darwin
13
14description The Glorious Glasgow Haskell Compilation System
15long_description    \
16        The Glasgow Haskell Compiler is a robust,       \
17        fully-featured, optimising compiler and interactive \
18        environment for Haskell 98, GHC compiles Haskell to \
19        either native code or C.  It implements numerous    \
20        experimental language extensions to Haskell 98,     \
21        for example: concurrency, a foreign language interface, \
22        multi-parameter type classes, scoped type variables,    \
23        existential and universal quantification, unboxed   \
24        types, exceptions, weak pointers, and so on.        \
25        GHC comes with a generational garbage collector,    \
26        and a space and time profiler.
27
28homepage        http://haskell.org/${canonicalname}
29master_sites    ${homepage}/dist/${version}/
30distname        ${canonicalname}-${version}-src
31worksrcdir      ${canonicalname}-${version}
32
33use_bzip2       yes
34
35distfiles       ${canonicalname}-${version}-src${extract.suffix} \
36                ${canonicalname}-${version}-testsuite${extract.suffix}
37
38checksums       ghc-7.4.2-src.tar.bz2 \
39                rmd160  c1caf17de353d3f805966ea64235a8341a8e071e \
40                sha256  f2ee1289a33cc70539287129841acc7eaf16112bb60c59b5a6ee91887bfd836d \
41                ghc-7.4.2-testsuite.tar.bz2 \
42                rmd160  6ff2a50d2165baa540da8a486d30fab47dfdbd0d \
43                sha256  227fee370e84892e4316f611c8cae0ad24d58d594d0b49f7960caf05b4f85332
44
45depends_build   port:ghc-bootstrap \
46                port:libxslt
47
48depends_lib     port:gmp           \
49                port:ncurses       \
50                port:libiconv
51
52patchfiles      patch-configure-disable-docbook-ps-and-pdf.diff \
53                ghc7040.patch
54
55use_parallel_build yes
56test.run yes
57
58# -- BEGIN gcc variants
59
60variant gcc43 conflicts gcc44 gcc45 gcc46 gcc47 description {Compile with gcc 4.3} {
61    configure.compiler macports-gcc-4.3
62    depends_lib-append port:gcc43
63}
64
65variant gcc44 conflicts gcc43 gcc45 gcc46 gcc47 description {Compile with gcc 4.4} {
66    configure.compiler macports-gcc-4.4
67    depends_lib-append port:gcc44
68}
69
70variant gcc45 conflicts gcc43 gcc44 gcc46 gcc47 description {Compile with gcc 4.5} {
71    configure.compiler macports-gcc-4.5
72    depends_lib-append port:gcc45
73}
74
75variant gcc46 conflicts gcc43 gcc44 gcc45 gcc47 description {Compile with gcc 4.6} {
76    configure.compiler macports-gcc-4.6
77    depends_lib-append port:gcc46
78}
79
80variant gcc47 conflicts gcc43 gcc44 gcc45 gcc46  description {Compile with gcc 4.7} {
81    configure.compiler macports-gcc-4.7
82    depends_lib-append port:gcc47
83}
84
85if {![variant_isset gcc43] && ![variant_isset gcc44] &&
86    ![variant_isset gcc45] && ![variant_isset gcc46] &&
87    ![variant_isset gcc47]} {
88    default_variants +gcc47
89}
90
91# -- END gcc variants
92
93set bootstraproot ${prefix}/share/ghc-bootstrap
94configure.args  --with-ghc=${bootstraproot}/bin/ghc     \
95                --with-iconv-includes=${prefix}/include \
96                --with-iconv-libraries=${prefix}/lib    \
97                --with-gmp-includes=${prefix}/include   \
98                --with-gmp-libraries=${prefix}/lib
99
100# OK so because the bootstrap binary has been prebuilt for libraries
101# in /usr/lib we search these before macports stuff to prevent
102# link errors, ghc _should_ actually compile itself in stage2
103# using paths from the command line arguments
104compiler.cpath /usr/include
105compiler.library_path /usr/lib
106
107
108post-destroot {
109    set prefixlib ${prefix}/lib/${worksrcdir}
110    set destlib   ${destroot}/${prefixlib}
111    set libver    ${canonicalname}${version}
112
113    variable libs [ list                               \
114                    libHSrts-${libver}.dylib           \
115                    libHSrts_debug-${libver}.dylib     \
116                    libHSrts_thr-${libver}.dylib       \
117                    libHSrts_thr_debug-${libver}.dylib ]
118
119    system "install_name_tool -id ${prefixlib}/libffi.dylib ${destlib}/libffi.dylib"
120
121    foreach lib $libs {
122      regexp -line {[^[:space:]]*/libffi.*\.dylib} [exec otool -L ${destlib}/${lib}] oldlib
123      system "install_name_tool -change ${oldlib} ${prefixlib}/libffi.dylib ${destlib}/$lib"
124    }
125}