source: trunk/dports/devel/hs-hoc/Portfile

Last change on this file was 131981, checked in by cal@…, 3 years ago

haskell world: revbump everything (including ghc)

  • Clean up remnants left in GHC's package directory that may be left over from previous installations. See for example #46611, which has a log of all the superfluous files left on the buildbots, which should be cleaned up by this.
  • Modify portgroups to register configuration files in $prefix/lib/ghc-7.8.3/package.conf.d/ directly before calling ghc-pkg recache rather than using activation and deactivation scripts that indirectly create these files to avoid the same mess in the future. This way, the state in the package cache directory will always represent the same state MacPorts expects.
  • Simplify and clean up some of the portgroups, especially related to variable substitution in pre-/post-activation hooks.
  • Avoid duplicating most of the code in the haskellplatform 2.0 portgroup and just refer back to the haskell 1.0 portgroup instead.
  • Apply the hook variable substitution cleanup to the local helper functions in the haskell-platform Portfile.

This change

  • should finally fix #46611 and #42082 and all the weird little misconfigurations that would occasionally occur on users' machines
  • adds helpful debugging information (ghc-pkg list, ghc-pkg check) to the main.log in the configure phase.
  • breaks manual installation of haskell packages (e.g. using cabal) in the system directory, because the ghc Portfile will clean out everything that isn't owned by a port in the package cache directory. If this affects you, be advised that you should not be putting stuff MacPorts doesn't know about in MacPorts' prefix. Instead, please use user installations of these packages.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.6 KB
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 131981 2015-01-22 19:34:32Z $
4PortSystem          1.0
5PortGroup           haskell 1.0
7set rev 416
8haskell.setup       HOC 0.7-r${rev}
9revision            2
10platforms           darwin
11license             MIT
12maintainers         nomaintainer
14description         A Haskell to Objective-C binding
15long_description    HOC is a Haskell to Objective-C binding. In \
16                    a nutshell, it enables you to use Objective-C \
17                    objects and frameworks from Haskell, and also \
18                    enables you to write Objective-C objects in Haskell.
21fetch.type          svn
23svn.revision        ${rev}
25worksrcdir          hoc
27patchfiles          patch-InterfaceGenerator2-Parser.hs.diff
29post-patch {
30    reinplace "s:\"HOC-\" ++ fn ++ \"/\":\"${prefix}/share/HOC/\":" \
31        ${worksrcpath}/InterfaceGenerator2/Main.hs
34pre-configure {
35    reinplace s:/usr/include/ffi:[exec pkg-config libffi --variable includedir]: \
36        ${worksrcpath}/HOC.cabal
37    reinplace "s:gcc -m32:${} ${configure.cc_archflags}:" \
38        ${worksrcpath}/Setup.hs
41depends_build-append    port:libffi \
42                        port:pkgconfig
44depends_lib-append      port:gmp \
45                        port:hs-parsec \
46                        port:hs-fgl
48configure.args-append   --docdir=${prefix}/share/doc/${name} \
49                        --extra-lib-dirs=${prefix}/lib \
50                        --flags="BinaryInterfaces ObjCv2"
Note: See TracBrowser for help on using the repository browser.