123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- # $OpenBSD: ghc.port.mk,v 1.40 2017/03/02 23:23:28 kili Exp $
- # Module for Glasgow Haskell Compiler
- # Not yet ported to other architectures
- ONLY_FOR_ARCHS = i386 amd64
- # Dependency of meta/haskell-platform.
- # Please do *not* update without thinking.
- MODGHC_VER = 7.10.3
- SUBST_VARS += MODGHC_VER
- MODGHC_BIN = ${LOCALBASE}/bin/ghc
- # The following is for depending ports only. GHC itself just needs
- # MODGHC_VER and ONLY_FOR_ARCHS. This is a little bit ugly, but
- # depending ports using CABAL tend to install into locations as
- # lib/Foo-${FooVersion}/ghc-${MODGHC_VER}, so they need the exact
- # version of ghc. Depending ports thus need full depends specs,
- # i.e. RUN_DEPENDS = lang/ghc=${MODGHC_VER}, and not
- # just lang/ghc.
- .if ${PKGPATH} != "lang/ghc"
- BUILD_DEPENDS += lang/ghc
- # Set to "cabal" to get the typical Cabal targets defined. Add "haddock"
- # to generate API documentation using Haddock. Add "register" to create
- # and include register/unregister scripts (you'll still have to add the
- # necessary tags to your PLIST by hand).
- # Add "nort" if the port doesn't depend on the GHC runtime. This will
- # also turn off the default "hs-" prefix for PKGNAME.
- # If "nort" is not added, MODGHC_PACKAGE_KEY may be set to the 'package
- # key' of the library built and will be added to SUBST_VARS.
- # Finally, set it to or add "hackage" if the distfiles are available on
- # hackage.haskell.org.
- MODGHC_BUILD ?=
- . if !${MODGHC_BUILD:L:Mnort}
- PKGNAME ?= hs-${DISTNAME}
- RUN_DEPENDS += lang/ghc=${MODGHC_VER}
- CATEGORIES += lang/ghc
- MODGHC_PACKAGE_KEY ?=
- . if ${MODGHC_PACKAGE_KEY} != ""
- SUBST_VARS += MODGHC_PACKAGE_KEY
- . endif
- . endif
- . if ${MODGHC_BUILD:L:Mhackage}
- MODGHC_HACKAGE_NAME = ${DISTNAME:C,-[0-9.]*$,,}
- MODGHC_HACKAGE_VERSION = ${DISTNAME:C,.*-([0-9.]*)$,\1,}
- HOMEPAGE ?= https://hackage.haskell.org/package/${MODGHC_HACKAGE_NAME}
- MASTER_SITES = https://hackage.haskell.org/package/${DISTNAME}/
- SUBST_VARS += DISTNAME MODGHC_HACKAGE_VERSION
- DIST_SUBDIR ?= ghc
- . endif
- . if ${MODGHC_BUILD:L:Mcabal}
- MODGHC_SETUP_SCRIPT ?= Setup.lhs Setup.hs
- MODGHC_SETUP_PROG ?= ${WRKSRC}/Setup
- MODGHC_SETUP_CONF_ARGS += --with-gcc="${CC}"
- MODGHC_SETUP_CONF_ENV ?=
- . if !${MODGHC_BUILD:L:Mnort}
- MODGHC_SETUP_CONF_ARGS += --datasubdir=hs-\$$pkgid
- MODGHC_SETUP_CONF_ARGS += --docdir=\$$datadir/doc/hs-\$$pkgid
- MODGHC_SETUP_CONF_ARGS += --libsubdir=ghc/\$$pkgid
- MODGHC_SETUP_CONF_ARGS += --enable-library-profiling
- . else
- # Override Cabal defaults, which are $arch-$os-$compiler/$pkgid for
- # datasubdir and libsubdir and $datadir/doc/$arch-$os-$compiler/$pkgid
- # for docdir.
- MODGHC_SETUP_CONF_ARGS += --datasubdir=\$$pkgid
- MODGHC_SETUP_CONF_ARGS += --libsubdir=\$$pkgid
- MODGHC_SETUP_CONF_ARGS += --docdir=\$$datadir/doc/\$$pkgid
- . endif
- # Little hack to let ports still add CONFIGURE_STYLE = autoconf and go
- # without a do-configure: target (some Haskell ports are built with
- # Cabal but use autohell for the documentation):
- MODCABAL_configure = \
- cd ${WRKSRC} && \
- for s in ${MODGHC_SETUP_SCRIPT}; do \
- test -f "$$s" && \
- ${MODGHC_BIN} --make \
- -o ${MODGHC_SETUP_PROG} "$$s" && \
- break; \
- done && \
- cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} ${MODGHC_SETUP_CONF_ENV} \
- ${MODGHC_SETUP_PROG} \
- configure -v -g -O --prefix=${PREFIX} \
- ${MODGHC_SETUP_CONF_ARGS}
- CONFIGURE_STYLE += CABAL
- MODGHC_BUILD_TARGET = \
- cd ${WRKBUILD} && ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} build -v
- . if ${MODGHC_BUILD:L:Mhaddock}
- MODGHC_BUILD_TARGET += \
- ;cd ${WRKBUILD} && ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} haddock
- . endif
- . if ${MODGHC_BUILD:L:Mregister}
- MODGHC_BUILD_TARGET += \
- ;cd ${WRKBUILD} && ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} register --gen-script; \
- cd ${WRKBUILD} && ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} unregister --gen-script
- . endif
- MODGHC_INSTALL_TARGET = \
- cd ${WRKBUILD} && ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} copy --destdir=${DESTDIR}
- . if ${MODGHC_BUILD:L:Mregister}
- MODGHC_INSTALL_TARGET += \
- ;${INSTALL_SCRIPT} ${WRKBUILD}/register.sh ${PREFIX}/lib/ghc/${DISTNAME} \
- ;${INSTALL_SCRIPT} ${WRKBUILD}/unregister.sh ${PREFIX}/lib/ghc/${DISTNAME}
- . endif
- MODGHC_TEST_TARGET = \
- cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \
- ${MODGHC_SETUP_PROG} test
- . if !target(do-build)
- do-build:
- @${MODGHC_BUILD_TARGET}
- . endif
- . if !target(do-install)
- do-install:
- @${MODGHC_INSTALL_TARGET}
- . endif
- . if !target(do-test)
- do-test:
- @${MODGHC_TEST_TARGET}
- . endif
- . endif
- .endif
|