94 lines
3 KiB
Bash
94 lines
3 KiB
Bash
# Template file for 'ghc'
|
|
pkgname=ghc
|
|
# Keep this synchronized with http://www.stackage.org/lts
|
|
version=8.8.4
|
|
revision=1
|
|
wrksrc="ghc-${version%[!0-9]}"
|
|
build_style=gnu-configure
|
|
configure_args="--with-system-libffi"
|
|
hostmakedepends="automake docbook-xsl ghc-bin libxslt python3-Sphinx"
|
|
makedepends="gmp-devel libffi-devel libnuma-devel ncurses-devel"
|
|
depends="perl gcc libffi-devel gmp-devel libnuma-devel"
|
|
short_desc="Glorious Haskell Compiler"
|
|
maintainer="Leah Neukirchen <leah@vuxu.org>"
|
|
license="BSD-3-Clause"
|
|
homepage="http://www.haskell.org/ghc/"
|
|
distfiles="http://www.haskell.org/ghc/dist/${version%[!0-9]}/${pkgname}-${version%[!0-9]}-src.tar.xz"
|
|
checksum=f0505e38b2235ff9f1090b51f44d6c8efd371068e5a6bb42a2a6d8b67b5ffc2d
|
|
patch_args="-Np1"
|
|
nocross=yes # ask leah2 before wasting time trying to do that
|
|
nodebug=yes # Work around assembler error "Fatal error: duplicate .debug_line sections"
|
|
_bindir="/usr/lib/${pkgname}-${version}/bin"
|
|
nopie_files="
|
|
${_bindir}/ghc
|
|
${_bindir}/ghc-iserv
|
|
${_bindir}/ghc-iserv-dyn
|
|
${_bindir}/ghc-iserv-prof
|
|
${_bindir}/ghc-pkg
|
|
${_bindir}/haddock
|
|
${_bindir}/hp2ps
|
|
${_bindir}/hpc
|
|
${_bindir}/hsc2hs
|
|
${_bindir}/runghc
|
|
${_bindir}/unlit
|
|
"
|
|
|
|
build_options="bindist"
|
|
desc_option_bindist="Create a binary distribution"
|
|
|
|
# Recent safe to use tarball
|
|
# GHC's bundled tarball is from 2017, buggy on some archs
|
|
_ffi_rev=4d6d2866ae43e55325e8ee96561221804602cd7a
|
|
|
|
if [ "$build_option_bindist" ]; then
|
|
# Strip --with-system-libffi from configuration
|
|
configure_args=${configure_args/--with-system-libffi/}
|
|
# Required to make the binary distribution tarball
|
|
hostmakedepends+=" tar xz libtool libltdl-devel"
|
|
# Fetch a safe libffi tarball
|
|
distfiles+=" https://github.com/libffi/libffi/archive/${_ffi_rev}.tar.gz>libffi-${_ffi_rev}.tar.gz"
|
|
checksum+=" f7a17fa61261942e93450ec52272b5f09d8f42cfffd147867587f969ee01b739"
|
|
skip_extraction+=" libffi-${_ffi_rev}.tar.gz"
|
|
fi
|
|
|
|
post_extract() {
|
|
[ "$build_option_bindist" ] || return 0
|
|
rm -f libffi-tarballs/libffi-*.tar.gz
|
|
cp ${XBPS_SRCDISTDIR}/${pkgname}-${version}/libffi-${_ffi_rev}.tar.gz \
|
|
libffi-tarballs
|
|
}
|
|
|
|
pre_configure() {
|
|
export CONF_CC_OPTS_STAGE0=$CFLAGS_FOR_BUILD
|
|
export CONF_CC_OPTS_STAGE1=$CFLAGS
|
|
export CONF_CC_OPTS_STAGE2=$CFLAGS
|
|
export CONF_GCC_LINKER_OPTS_STAGE0=$LDFLAGS_FOR_BUILD
|
|
export CONF_GCC_LINKER_OPTS_STAGE1=$LDFLAGS
|
|
export CONF_GCC_LINKER_OPTS_STAGE2=$LDFLAGS
|
|
export CONF_CPP_OPTS_STAGE0=$CPPFLAGS_FOR_BUILD
|
|
export CONF_CPP_OPTS_STAGE1=$CPPFLAGS
|
|
export CONF_CPP_OPTS_STAGE2=$CPPFLAGS
|
|
|
|
autoreconf -fi
|
|
}
|
|
|
|
post_install() {
|
|
sed -i 's#/usr/lib/ccache/bin/##g' ${DESTDIR}/usr/lib/ghc-${version%[!0-9]}/settings
|
|
vlicense LICENSE
|
|
|
|
if [ "$build_option_bindist" ]; then
|
|
msg_normal "Creating binary distribution for ${XBPS_TARGET_MACHINE}...\n"
|
|
make ${makejobs} binary-dist
|
|
dest="${XBPS_SRCDISTDIR}"/distfiles/ghc-${version}-void-linux-${XBPS_TARGET_LIBC}.tar.xz
|
|
install -d -m 0644 ghc-${version}-*-unknown-linux.tar.xz "${dest}"
|
|
msg_normal "Installed in ${dest}\n"
|
|
fi
|
|
}
|
|
|
|
ghc-doc_package() {
|
|
archs=noarch
|
|
short_desc+=" -- documentation"
|
|
pkg_install() {
|
|
vmove usr/share/doc
|
|
}
|
|
}
|