11 | | long_description \ |
12 | | nhc98 is a small, easy to install, standards-compliant \ |
13 | | compiler for Haskell 98, the lazy functional \ |
14 | | programming language. It is very portable, and aims to \ |
15 | | produce small executables that run in small amounts of \ |
16 | | memory. It produces medium-fast code, and compilation \ |
17 | | is itself quite fast. It also comes with extensive tool \ |
18 | | support for automatic compilation, foreign language \ |
19 | | interfacing, heap and time profiling, tracing, and \ |
20 | | debugging. (Some of its advanced kinds of heap \ |
21 | | profiles are not found in any other Haskell compiler.) |
22 | | |
23 | | homepage http://www.haskell.org/${name}/ |
24 | | master_sites http://www.cs.york.ac.uk/fp/${name}/ \ |
25 | | ftp://ftp.cs.york.ac.uk/pub/haskell/${name}/ |
26 | | |
27 | | distfiles ${name}src-${version}${extract.suffix} \ |
28 | | ${name}-${version}-library-interfaces${extract.suffix} |
29 | | |
30 | | checksums ${name}src-${version}${extract.suffix} md5 f38b74481ec01a066cc9314b7bd18c90 \ |
31 | | ${name}-${version}-library-interfaces${extract.suffix} md5 f99f413a85462fe719ea634fd319d94f |
32 | | |
33 | | patchfiles patch-cLowUnboxedArray.c \ |
34 | | patch-confhc \ |
35 | | patch-config-errno.c \ |
36 | | patch-errnogen.c |
37 | | |
38 | | configure.args --mandir=${prefix}/share/man/man1 \ |
39 | | --buildwith=gcc |
40 | | |
41 | | build { if {${os.platform} == "darwin" && ${os.arch} == "i386"} { |
42 | | ui_error "nhc98 is not supported on OS X i386 yet" |
43 | | return 1 |
44 | | } |
45 | | |
46 | | system "cd ${worksrcpath} && ulimit -s unlimited && make" |
47 | | } |
48 | | |
49 | | post-destroot { file delete -force ${destroot}${prefix}/lib/hmake |
50 | | |
51 | | file delete ${destroot}${prefix}/bin/cpphs |
52 | | file delete ${destroot}${prefix}/bin/hi |
53 | | file delete ${destroot}${prefix}/bin/hmake |
54 | | file delete ${destroot}${prefix}/bin/hmake-config |
55 | | |
56 | | file rename ${destroot}${prefix}/bin/harch ${destroot}${prefix}/bin/harch-${name} |
57 | | |
58 | | # |
59 | | # NB - The greencard-nhc98 and hp2graph scripts are hardlinks to |
60 | | # the same file. Change one, all are changed. |
61 | | # |
62 | | reinplace "s|${prefix}/bin/harch|${prefix}/bin/harch\-nhc98|" ${destroot}${prefix}/bin/greencard\-nhc98 |
63 | | reinplace "s|\{NHC98BINDIR\}/harch|\{NHC98BINDIR\}/harch\-nhc98|" ${destroot}${prefix}/bin/hood |
64 | | reinplace "s|NHC98BINDIR/harch|NHC98BINDIR/harch\-nhc98|" ${destroot}${prefix}/bin/nhc98 |
65 | | |
66 | | file delete ${destroot}${prefix}/share/man/man1/harch.1 |
67 | | file delete ${destroot}${prefix}/share/man/man1/hi.1 |
68 | | file delete ${destroot}${prefix}/share/man/man1/hmake.1 |
| 12 | long_description \ |
| 13 | nhc98 is a small, easy to install, standards-compliant \ |
| 14 | compiler for Haskell 98, the lazy functional \ |
| 15 | programming language. It is very portable, and aims to \ |
| 16 | produce small executables that run in small amounts of \ |
| 17 | memory. It produces medium-fast code, and compilation \ |
| 18 | is itself quite fast. It also comes with extensive tool \ |
| 19 | support for automatic compilation, foreign language \ |
| 20 | interfacing, heap and time profiling, tracing, and \ |
| 21 | debugging. Some of its advanced kinds of heap \ |
| 22 | profiles are not found in any other Haskell compiler. |
| 23 | |
| 24 | homepage http://www.haskell.org/${name} |
| 25 | master_sites \ |
| 26 | http://www.cs.york.ac.uk/fp/${name} \ |
| 27 | ftp://ftp.cs.york.ac.uk/pub/haskell/${name} |
| 28 | |
| 29 | distfiles ${name}src-${version}${extract.suffix} |
| 30 | |
| 31 | checksums \ |
| 32 | md5 55c102408da8085aa56984af4151eb9c \ |
| 33 | sha1 5bcfa0e8cc192afc5a54aab0bd4c1812dafa7b45 \ |
| 34 | rmd160 011e723a956f2fb9029357d00ddb705c350309af |
| 35 | |
| 36 | depends_lib port:readline port:ncurses |
| 37 | |
| 38 | configure.args \ |
| 39 | --buildwith=gcc \ |
| 40 | +docs \ |
| 41 | --docdir=${prefix}/share/doc/${name} \ |
| 42 | --mandir=${prefix}/share/man/man1 \ |
| 43 | --heap=8M |
| 44 | |
| 45 | patchfiles Makefile.nhc98.diff |
| 46 | |
| 47 | post-patch { |
| 48 | reinplace "s|-\$(CC)|-\${BUILDCOMP}|g" ${worksrcpath}/Makefile |
| 49 | } |
| 50 | |
| 51 | post-destroot { |
| 52 | set rexp1 "'s|${worksrcpath}/script|${prefix}/bin|g'" |
| 53 | set rexp2 "'s|${worksrcpath}/include|${prefix}/include/nhc98|g'" |
| 54 | set rfile "${destroot}${prefix}/lib/hmake/`${worksrcpath}/script/harch`/hmakerc" |
| 55 | system "sed -i '' -e ${rexp1} -e ${rexp2} ${rfile}" |