2020-06-29 22:30:13 +02:00
|
|
|
# $NetBSD: haskell.mk,v 1.23 2020/06/29 20:30:13 rillig Exp $
|
2014-02-05 08:02:30 +01:00
|
|
|
#
|
|
|
|
# This Makefile fragment handles Haskell Cabal packages.
|
|
|
|
# See: http://www.haskell.org/cabal/
|
|
|
|
#
|
|
|
|
# Note to users:
|
|
|
|
#
|
|
|
|
# * Users choose one favourite Haskell compiler. Though the only
|
|
|
|
# compiler currently supported is GHC.
|
|
|
|
#
|
|
|
|
# * You can't install a cabal package for more than one compilers
|
|
|
|
# simultaneously. In the future, this limitation can possibly be
|
|
|
|
# eliminated using the method used by
|
|
|
|
# "../../lang/python/pyversion.mk".
|
|
|
|
#
|
|
|
|
# Note to package developers:
|
|
|
|
#
|
|
|
|
# * This file must be included *before* "../../mk/bsd.pkg.mk", or
|
|
|
|
# you'll get target-redefinition errors.
|
|
|
|
#
|
|
|
|
# * PKGNAME will automatically be "hs-${DISTNAME}" unless you
|
|
|
|
# explicitly declare it.
|
2019-12-29 17:59:55 +01:00
|
|
|
#
|
2014-02-05 08:02:30 +01:00
|
|
|
# * If your package is on the HackageDB, MASTER_SITES and HOMEPAGE
|
|
|
|
# can be omitted.
|
|
|
|
#
|
|
|
|
# * Package configuration, building, installation, registration and
|
|
|
|
# unregistration are fully automated. You usually don't need to do
|
|
|
|
# anything special.
|
|
|
|
#
|
|
|
|
# * When Haskell libraries depend on other Haskell libraries, they
|
|
|
|
# MUST depend on, not build-depend on, such libraries. So if your
|
|
|
|
# package installs a library, you MUST NOT set
|
|
|
|
# BUILDLINK_DEPMETHOD.${PKG} to "build" in your buildlink3.mk
|
|
|
|
# file. Reason:
|
|
|
|
# 1. Assume we have two libraries A and B, and B build-depends
|
|
|
|
# on A.
|
|
|
|
# 2. We install package A.
|
|
|
|
# 3. We then install package B, which build-depends on A.
|
|
|
|
# 4. After that, a new upstream version of package A is
|
|
|
|
# released. We therefore update package A to the new version.
|
|
|
|
# 5. Package B had a build-dependency on A, so pkgsrc assumes
|
|
|
|
# that it's still safe to use package B without
|
|
|
|
# recompilation of B. But in fact package B requires the
|
|
|
|
# very version of package A which was available when
|
|
|
|
# package B was compiled. So the installed package B is
|
|
|
|
# completely broken at this time.
|
|
|
|
#
|
2020-01-18 02:39:01 +01:00
|
|
|
# Package-settable variables:
|
|
|
|
#
|
|
|
|
# HASKELL_OPTIMIZATION_LEVEL
|
|
|
|
# Description:
|
|
|
|
# Optimization level for compilation.
|
|
|
|
# Possible values:
|
|
|
|
# 0 1 2
|
|
|
|
# Default value:
|
|
|
|
# 2
|
|
|
|
#
|
2014-02-05 08:02:30 +01:00
|
|
|
# User-settable variables:
|
|
|
|
#
|
|
|
|
# HASKELL_COMPILER
|
|
|
|
# Description:
|
|
|
|
# The user's favourite Haskell compiler.
|
|
|
|
# Possible values:
|
|
|
|
# ghc
|
|
|
|
# Default value:
|
|
|
|
# ghc
|
|
|
|
#
|
2014-04-18 15:42:59 +02:00
|
|
|
# HASKELL_ENABLE_SHARED_LIBRARY
|
|
|
|
# Description:
|
|
|
|
# Whether shared library should be built or not.
|
|
|
|
# Possible values:
|
|
|
|
# yes, no
|
|
|
|
# Default value:
|
|
|
|
# yes
|
2014-02-05 08:02:30 +01:00
|
|
|
#
|
|
|
|
# HASKELL_ENABLE_LIBRARY_PROFILING
|
|
|
|
# Description:
|
|
|
|
# Whether profiling library should be built or not.
|
|
|
|
# Possible values:
|
|
|
|
# yes, no
|
|
|
|
# Default value:
|
|
|
|
# yes
|
|
|
|
#
|
|
|
|
# HASKELL_ENABLE_HADDOCK_DOCUMENTATION
|
|
|
|
# Description:
|
|
|
|
# Whether haddock documentation should be built or not.
|
|
|
|
# Possible values:
|
|
|
|
# yes, no
|
|
|
|
# Default value:
|
2014-04-18 15:42:59 +02:00
|
|
|
# yes
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
.if !defined(HASKELL_MK)
|
|
|
|
HASKELL_MK= # defined
|
|
|
|
|
|
|
|
.include "../../mk/bsd.fast.prefs.mk"
|
|
|
|
|
|
|
|
|
|
|
|
# Declare HASKELL_COMPILER as one of BUILD_DEFS variables. See
|
|
|
|
# ../../mk/misc/show.mk
|
|
|
|
BUILD_DEFS+= HASKELL_COMPILER
|
2014-04-18 15:42:59 +02:00
|
|
|
BUILD_DEFS+= HASKELL_ENABLE_SHARED_LIBRARY
|
|
|
|
BUILD_DEFS+= HASKELL_ENABLE_LIBRARY_PROFILING
|
|
|
|
BUILD_DEFS+= HASKELL_ENABLE_HADDOCK_DOCUMENTATION
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
# Declarations for ../../mk/misc/show.mk
|
2020-06-22 00:21:02 +02:00
|
|
|
_VARGROUPS+= haskell
|
|
|
|
_USER_VARS.haskell= \
|
|
|
|
HASKELL_ENABLE_SHARED_LIBRARY \
|
|
|
|
HASKELL_ENABLE_LIBRARY_PROFILING \
|
|
|
|
HASKELL_ENABLE_HADDOCK_DOCUMENTATION
|
|
|
|
_SYS_VARS.haskell= \
|
|
|
|
PKGNAME DISTNAME MASTER_SITES MASTER_SITE_HASKELL_HACKAGE \
|
|
|
|
HOMEPAGE UNLIMIT_RESOURCES PREFIX
|
2014-02-05 08:02:30 +01:00
|
|
|
_DEF_VARS.haskell= \
|
2020-01-18 02:39:01 +01:00
|
|
|
HASKELL_OPTIMIZATION_LEVEL \
|
2020-03-30 18:51:53 +02:00
|
|
|
HASKELL_PKG_NAME \
|
2014-02-05 08:02:30 +01:00
|
|
|
_DISTBASE \
|
|
|
|
_DISTVERSION \
|
|
|
|
_GHC_BIN \
|
|
|
|
_GHC_PKG_BIN \
|
|
|
|
_GHC_VERSION \
|
|
|
|
_GHC_VERSION_CMD \
|
|
|
|
_GHC_VERSION_FULL \
|
|
|
|
_HASKELL_BIN \
|
|
|
|
_HASKELL_PKG_BIN \
|
|
|
|
_HASKELL_PKG_DESCR_FILE \
|
2020-01-09 13:29:32 +01:00
|
|
|
_HASKELL_PKG_ID_FILE \
|
2020-01-01 05:35:29 +01:00
|
|
|
_HASKELL_VERSION
|
2020-06-22 00:21:02 +02:00
|
|
|
_IGN_VARS.haskell= \
|
|
|
|
USE_TOOLS _*
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# PKGNAME is usually named after DISTNAME.
|
|
|
|
PKGNAME?= hs-${DISTNAME}
|
|
|
|
|
|
|
|
# Default value of MASTER_SITES.
|
|
|
|
_DISTBASE?= ${DISTNAME:C/-[^-]*$//}
|
|
|
|
_DISTVERSION?= ${DISTNAME:C/^.*-//}
|
|
|
|
MASTER_SITES?= ${MASTER_SITE_HASKELL_HACKAGE:=${DISTNAME}/}
|
|
|
|
|
|
|
|
# Default value of HOMEPAGE.
|
2019-12-29 17:59:55 +01:00
|
|
|
HOMEPAGE?= http://hackage.haskell.org/package/${_DISTBASE}
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# Cabal packages may use pkg-config, but url2pkg can't detect
|
|
|
|
# that. (PHO: I think that should be handled by url2pkg (2009-05-20))
|
|
|
|
USE_TOOLS+= pkg-config
|
|
|
|
|
2020-03-24 21:43:17 +01:00
|
|
|
# GHC can be a memory hog, so don't apply regular limits.
|
|
|
|
UNLIMIT_RESOURCES+= datasize virtualsize
|
|
|
|
|
2020-01-18 02:39:01 +01:00
|
|
|
# Default value of HASKELL_OPTIMIZATION_LEVEL
|
|
|
|
HASKELL_OPTIMIZATION_LEVEL?= 2
|
|
|
|
|
2014-04-18 15:42:59 +02:00
|
|
|
# Default value of HASKELL_ENABLE_SHARED_LIBRARY
|
|
|
|
HASKELL_ENABLE_SHARED_LIBRARY?= yes
|
|
|
|
|
2014-02-05 08:02:30 +01:00
|
|
|
# Default value of HASKELL_ENABLE_LIBRARY_PROFILING
|
|
|
|
HASKELL_ENABLE_LIBRARY_PROFILING?= yes
|
|
|
|
|
|
|
|
# Default value of HASKELL_ENABLE_HADDOCK_DOCUMENTATION
|
2014-04-18 15:42:59 +02:00
|
|
|
HASKELL_ENABLE_HADDOCK_DOCUMENTATION?= yes
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# Compiler specific variables and targets.
|
|
|
|
.if ${HASKELL_COMPILER} == "ghc"
|
|
|
|
|
2020-01-09 13:29:32 +01:00
|
|
|
# Add dependency on GHC.
|
2020-01-11 08:47:18 +01:00
|
|
|
.include "../../lang/ghc88/buildlink3.mk"
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# Tools
|
2020-05-10 19:46:59 +02:00
|
|
|
_GHC_BIN= ${BUILDLINK_PREFIX.ghc:U${PREFIX}}/bin/ghc
|
|
|
|
_GHC_PKG_BIN= ${BUILDLINK_PREFIX.ghc:U${PREFIX}}/bin/ghc-pkg
|
2014-02-05 08:02:30 +01:00
|
|
|
_HASKELL_BIN= ${_GHC_BIN} # Expose to the outer scope.
|
|
|
|
_HASKELL_PKG_BIN= ${_GHC_PKG_BIN} # Expose to the outer scope.
|
|
|
|
|
|
|
|
# Determine GHC version.
|
2020-01-01 05:54:10 +01:00
|
|
|
_GHC_VERSION_CMD= ${_GHC_BIN} -V 2>/dev/null | ${CUT} -d ' ' -f 8
|
2020-01-01 05:35:29 +01:00
|
|
|
_GHC_VERSION= ${_GHC_VERSION_CMD:sh}
|
2014-02-05 08:02:30 +01:00
|
|
|
_GHC_VERSION_FULL= ghc-${_GHC_VERSION}
|
|
|
|
_HASKELL_VERSION= ${_GHC_VERSION_FULL} # Expose to the outer scope.
|
|
|
|
|
2014-04-18 15:42:59 +02:00
|
|
|
# Determine GHC shlib suffix
|
2019-12-29 17:59:55 +01:00
|
|
|
_GHC_SHLIB_SUFFIX.dylib= dylib
|
2014-04-18 15:42:59 +02:00
|
|
|
_GHC_SHLIB_SUFFIX= ${_GHC_SHLIB_SUFFIX.${SHLIB_TYPE}:Uso}
|
|
|
|
_HASKELL_SHLIB_SUFFIX= ${_GHC_SHLIB_SUFFIX}
|
|
|
|
|
2014-02-05 08:02:30 +01:00
|
|
|
# GHC requires C compiler.
|
|
|
|
USE_LANGUAGES+= c
|
|
|
|
|
|
|
|
# Declarations for ../../mk/configure/configure.mk
|
|
|
|
CONFIGURE_ARGS+= --ghc
|
2019-12-29 17:59:55 +01:00
|
|
|
CONFIGURE_ARGS+= --with-compiler=${_GHC_BIN:Q}
|
|
|
|
CONFIGURE_ARGS+= --with-hc-pkg=${_GHC_PKG_BIN:Q}
|
|
|
|
CONFIGURE_ARGS+= --prefix=${PREFIX:Q}
|
2014-02-05 08:02:30 +01:00
|
|
|
.endif # ${HASKELL_COMPILER}
|
|
|
|
|
2014-04-18 15:42:59 +02:00
|
|
|
# Shared libraries
|
|
|
|
.if ${HASKELL_ENABLE_SHARED_LIBRARY} == "yes"
|
|
|
|
CONFIGURE_ARGS+= --enable-shared --enable-executable-dynamic
|
2020-01-02 17:45:15 +01:00
|
|
|
.else
|
|
|
|
CONFIGURE_ARGS+= --disable-shared --disable-executable-dynamic
|
2014-04-18 15:42:59 +02:00
|
|
|
.endif
|
|
|
|
|
2014-02-05 08:02:30 +01:00
|
|
|
# Library profiling
|
|
|
|
.if ${HASKELL_ENABLE_LIBRARY_PROFILING} == "yes"
|
2020-01-02 17:45:15 +01:00
|
|
|
CONFIGURE_ARGS+= --enable-library-profiling
|
|
|
|
.else
|
|
|
|
CONFIGURE_ARGS+= --disable-library-profiling
|
2014-02-05 08:02:30 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Haddock documentations
|
|
|
|
.if ${HASKELL_ENABLE_HADDOCK_DOCUMENTATION} == "yes"
|
2019-12-29 17:59:55 +01:00
|
|
|
CONFIGURE_ARGS+= --with-haddock=${BUILDLINK_PREFIX.ghc:Q}/bin/haddock
|
2014-02-05 08:02:30 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Optimization
|
2020-01-18 02:39:01 +01:00
|
|
|
CONFIGURE_ARGS+= -O${HASKELL_OPTIMIZATION_LEVEL}
|
|
|
|
|
2020-06-22 00:21:02 +02:00
|
|
|
.if !exists(${PKGDIR}/PLIST)
|
|
|
|
_HS_PLIST_STATUS= missing
|
2020-06-29 20:07:45 +02:00
|
|
|
.elif !${${GREP} "." ${PKGDIR}/PLIST || ${TRUE}:L:sh}
|
|
|
|
_HS_PLIST_STATUS= missing
|
2020-06-22 00:21:02 +02:00
|
|
|
.elif ${${GREP} HS_INTF ${PKGDIR}/PLIST || ${TRUE}:L:sh}
|
|
|
|
_HS_PLIST_STATUS= lib-ok
|
|
|
|
.elif !${${GREP} "/package-id" ${PKGDIR}/PLIST || ${TRUE}:L:sh}
|
|
|
|
_HS_PLIST_STATUS= plain
|
|
|
|
.else
|
|
|
|
_HS_PLIST_STATUS= outdated
|
|
|
|
.endif
|
|
|
|
|
2020-05-10 19:46:59 +02:00
|
|
|
# Starting from GHC 7.10 (or 7.8?), packages are installed in directories
|
|
|
|
# with a hashed name, which makes it a bit more complicated to generate
|
|
|
|
# the PLIST.
|
|
|
|
#
|
2020-06-22 00:21:02 +02:00
|
|
|
.if ${_HS_PLIST_STATUS} == lib-ok || ${_HS_PLIST_STATUS} == missing
|
|
|
|
|
2020-05-10 19:46:59 +02:00
|
|
|
_HASKELL_PL_INTF= ${_HASKELL_PKG_ID_FILE:H:S,^${PREFIX}/,,}
|
2020-06-22 00:21:02 +02:00
|
|
|
_HASKELL_PL_IMPL_AWK= prev == "import-dirs:" { dir = $$1; exit }
|
|
|
|
_HASKELL_PL_IMPL_AWK+= { prev = $$0 }
|
|
|
|
_HASKELL_PL_IMPL_AWK+= END { print(dir ? dir : "never_match_this") }
|
2020-05-10 19:46:59 +02:00
|
|
|
_HASKELL_PL_IMPL_CMD= ${AWK} '${_HASKELL_PL_IMPL_AWK}' ${DESTDIR}${_HASKELL_PKG_DESCR_FILE}
|
|
|
|
_HASKELL_PL_IMPL= ${_HASKELL_PL_IMPL_CMD:sh:S,^${PREFIX}/,,}
|
|
|
|
_HASKELL_PL_DOCS= ${_HASKELL_PL_IMPL:S,^lib,share/doc,:C,-[A-Za-z0-9]*$,,}
|
2020-06-22 00:21:02 +02:00
|
|
|
_HASKELL_PL_PLATFORM= ${_HASKELL_PL_IMPL:H:T:S,^.$,never_match_this,}
|
2020-05-10 19:46:59 +02:00
|
|
|
_HASKELL_PL_PKGID_CMD= ${CAT} ${DESTDIR}${_HASKELL_PKG_ID_FILE}
|
|
|
|
_HASKELL_PL_PKGID= ${_HASKELL_PL_PKGID_CMD:sh}
|
|
|
|
_HASKELL_PL_VER= ${_HASKELL_VERSION:S,-,,}
|
|
|
|
|
2020-06-29 22:30:13 +02:00
|
|
|
_HS_PLIST_SUBST+= HS_INTF=${_HASKELL_PL_INTF}
|
|
|
|
_HS_PLIST_SUBST+= HS_IMPL=${_HASKELL_PL_IMPL}
|
|
|
|
_HS_PLIST_SUBST+= HS_DOCS=${_HASKELL_PL_DOCS}
|
|
|
|
_HS_PLIST_SUBST+= HS_PLATFORM=${_HASKELL_PL_PLATFORM}
|
|
|
|
_HS_PLIST_SUBST+= HS_PKGID=${_HASKELL_PL_PKGID}
|
|
|
|
_HS_PLIST_SUBST+= HS_VER=${_HASKELL_PL_VER}
|
|
|
|
PLIST_SUBST+= ${exists(${DESTDIR}${_HASKELL_PKG_DESCR_FILE}):?${_HS_PLIST_SUBST}:}
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub("^${_HASKELL_PL_INTF}", "$${HS_INTF}") }
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub("^${_HASKELL_PL_IMPL}", "$${HS_IMPL}") }
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub("^${_HASKELL_PL_DOCS}", "$${HS_DOCS}") }
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub("/${_HASKELL_PL_PLATFORM}/", "/$${HS_PLATFORM}/") }
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub( "${_HASKELL_PL_PKGID}", "$${HS_PKGID}") }
|
|
|
|
_HS_PRINT_PLIST_AWK+= { sub( "${_HASKELL_PL_VER}", "$${HS_VER}") }
|
|
|
|
PRINT_PLIST_AWK+= ${exists(${DESTDIR}${_HASKELL_PKG_DESCR_FILE}):?${_HS_PRINT_PLIST_AWK}:}
|
2020-05-10 19:46:59 +02:00
|
|
|
|
|
|
|
HS_UPDATE_PLIST?= no
|
|
|
|
|
2020-06-22 00:21:02 +02:00
|
|
|
. if ${HS_UPDATE_PLIST} != no && ${_HS_PLIST_STATUS} == missing
|
2020-05-10 19:46:59 +02:00
|
|
|
GENERATE_PLIST+= ${MAKE} print-PLIST > ${PKGDIR}/PLIST;
|
2020-06-22 00:21:02 +02:00
|
|
|
. endif
|
2020-05-10 19:46:59 +02:00
|
|
|
.endif
|
|
|
|
|
2020-06-22 00:21:02 +02:00
|
|
|
.if ${_HS_PLIST_STATUS} == missing || ${_HS_PLIST_STATUS} == outdated
|
2019-12-29 17:59:55 +01:00
|
|
|
GENERATE_PLIST+= \
|
|
|
|
cd ${DESTDIR:Q}${PREFIX:Q} && \
|
|
|
|
${FIND} * \( -type f -o -type l \) | ${SORT};
|
2020-05-10 19:46:59 +02:00
|
|
|
PLIST_SRC= # none, because the PLIST file is outdated or missing
|
|
|
|
. if ${_HS_PLIST_STATUS} == outdated && ${HS_UPDATE_PLIST} == no
|
|
|
|
WARNINGS+= "[haskell.mk] The PLIST format is outdated."
|
|
|
|
WARNINGS+= "[haskell.mk] Set HS_UPDATE_PLIST=yes to update it automatically."
|
|
|
|
. endif
|
2019-12-29 17:59:55 +01:00
|
|
|
.endif
|
2014-02-05 08:02:30 +01:00
|
|
|
|
2020-01-20 15:14:33 +01:00
|
|
|
# Define configure target. We might not have any working Haskell
|
|
|
|
# interpreter so compile Setup.?hs to a binary. Since dynamic linkage
|
|
|
|
# is much faster, we try it and then fall back to static linkage if
|
|
|
|
# that didn't work.
|
|
|
|
do-configure:
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC} && \
|
2019-12-31 08:16:25 +01:00
|
|
|
( ${_HASKELL_BIN:Q} --make Setup -dynamic || \
|
|
|
|
${_HASKELL_BIN:Q} --make Setup -static )
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC:Q} && \
|
2014-02-05 08:02:30 +01:00
|
|
|
${SETENV} ${CONFIGURE_ENV} \
|
2020-01-02 17:34:47 +01:00
|
|
|
./Setup configure ${PKG_VERBOSE:D-v} ${CONFIGURE_ARGS}
|
2014-02-05 08:02:30 +01:00
|
|
|
|
2020-01-20 00:45:06 +01:00
|
|
|
# Define build target. _MAKE_JOBS_N is defined in build/build.mk
|
2014-02-05 08:02:30 +01:00
|
|
|
do-build:
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC:Q} && \
|
2020-03-30 19:51:07 +02:00
|
|
|
${SETENV} ${MAKE_ENV} \
|
2020-01-20 00:45:06 +01:00
|
|
|
./Setup build ${PKG_VERBOSE:D-v} -j${_MAKE_JOBS_N}
|
2014-02-05 08:02:30 +01:00
|
|
|
.if ${HASKELL_ENABLE_HADDOCK_DOCUMENTATION} == "yes"
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC:Q} && \
|
2020-03-30 20:23:48 +02:00
|
|
|
${SETENV} ${MAKE_ENV} \
|
2020-01-02 17:34:47 +01:00
|
|
|
./Setup haddock ${PKG_VERBOSE:D-v}
|
2014-02-05 08:02:30 +01:00
|
|
|
.endif
|
|
|
|
|
|
|
|
# Define install target. We need installed-pkg-config to be installed
|
|
|
|
# for package registration (if any).
|
2020-03-30 18:51:53 +02:00
|
|
|
HASKELL_PKG_NAME?= ${DISTNAME}
|
|
|
|
_HASKELL_PKG_DESCR_DIR= ${PREFIX}/lib/${HASKELL_PKG_NAME}/${_HASKELL_VERSION}
|
2019-12-29 17:59:55 +01:00
|
|
|
_HASKELL_PKG_DESCR_FILE= ${_HASKELL_PKG_DESCR_DIR}/package-description
|
2020-01-09 13:29:32 +01:00
|
|
|
_HASKELL_PKG_ID_FILE= ${_HASKELL_PKG_DESCR_DIR}/package-id
|
2014-02-05 08:02:30 +01:00
|
|
|
|
2019-12-29 17:59:55 +01:00
|
|
|
INSTALLATION_DIRS+= ${_HASKELL_PKG_DESCR_DIR}
|
2014-02-05 08:02:30 +01:00
|
|
|
do-install:
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC} && \
|
2020-01-09 13:29:32 +01:00
|
|
|
./Setup register ${PKG_VERBOSE:D-v} \
|
|
|
|
--gen-pkg-config=dist/package-description \
|
|
|
|
--print-ipid \
|
|
|
|
> dist/package-id && \
|
2020-01-02 17:34:47 +01:00
|
|
|
./Setup copy ${PKG_VERBOSE:D-v} --destdir=${DESTDIR:Q} && \
|
2016-04-10 17:58:02 +02:00
|
|
|
if [ -f dist/package-description ]; then \
|
2020-01-09 13:29:32 +01:00
|
|
|
${INSTALL_DATA} dist/package-description \
|
|
|
|
${DESTDIR:Q}${_HASKELL_PKG_DESCR_FILE:Q}; \
|
|
|
|
${INSTALL_DATA} dist/package-id \
|
|
|
|
${DESTDIR:Q}${_HASKELL_PKG_ID_FILE:Q}; \
|
|
|
|
fi
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# Define test target.
|
|
|
|
do-test:
|
2020-03-24 21:43:17 +01:00
|
|
|
${RUN} ${_ULIMIT_CMD} cd ${WRKSRC} && \
|
2020-01-02 17:34:47 +01:00
|
|
|
./Setup test ${PKG_VERBOSE:D-v}
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
# Substitutions for INSTALL and DEINSTALL.
|
|
|
|
FILES_SUBST+= HASKELL_PKG_BIN=${_HASKELL_PKG_BIN}
|
|
|
|
FILES_SUBST+= HASKELL_PKG_DESCR_FILE=${_HASKELL_PKG_DESCR_FILE}
|
2020-01-09 13:29:32 +01:00
|
|
|
FILES_SUBST+= HASKELL_PKG_ID_FILE=${_HASKELL_PKG_ID_FILE}
|
2014-02-05 08:02:30 +01:00
|
|
|
|
|
|
|
INSTALL_TEMPLATES+= ../../mk/haskell/INSTALL.in
|
|
|
|
DEINSTALL_TEMPLATES+= ../../mk/haskell/DEINSTALL.in
|
|
|
|
|
2020-05-10 19:46:59 +02:00
|
|
|
# Only present these variables if the definitions can be extracted
|
|
|
|
# from the files in DESTDIR.
|
|
|
|
_HS_DESTDIR_DEF_VARS= PLIST_SUBST PRINT_PLIST_AWK
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_INTF
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_IMPL
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_DOCS
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_PLATFORM
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_PKGID
|
|
|
|
_HS_DESTDIR_DEF_VARS+= _HASKELL_PL_VER
|
|
|
|
_DEF_VARS.haskell+= ${exists(${DESTDIR}${_HASKELL_PKG_DESCR_FILE}) :? ${_HS_DESTDIR_DEF_VARS} :}
|
|
|
|
_LISTED_VARS.haskell+= PLIST_SUBST PRINT_PLIST_AWK
|
|
|
|
|
2014-02-05 08:02:30 +01:00
|
|
|
.endif # HASKELL_MK
|