132 lines
3.0 KiB
Bash
132 lines
3.0 KiB
Bash
SUMMARY="The Glasgow Haskell Compiler"
|
|
DESCRIPTION="
|
|
The Glorious Glasgow Haskell Compilation system (GHC) is a compiler for Haskell.
|
|
|
|
Haskell is \"the\" standard lazy functional programming language.
|
|
"
|
|
HOMEPAGE="https://www.haskell.org/ghc/"
|
|
COPYRIGHT="The Glasgow Haskell Team"
|
|
LICENSE="BSD (3-clause)
|
|
GNU LGPL v2.1"
|
|
REVISION="1"
|
|
SOURCE_URI="https://www.haskell.org/ghc/dist/$portVersion/ghc-$portVersion-src.tar.xz"
|
|
SOURCE_DIR="ghc-$portVersion"
|
|
CHECKSUM_SHA256="bb8ec3634aa132d09faa270bbd604b82dfa61f04855655af6f9d14a9eedc05fc"
|
|
PATCHES="ghc-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="!x86"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
GLOBAL_WRITABLE_FILES="
|
|
settings/ghc directory keep-old
|
|
"
|
|
|
|
PROVIDES="
|
|
ghc78$secondaryArchSuffix = $portVersion
|
|
cmd:ghc = $portVersion compat >= 8.2
|
|
cmd:ghc_$portVersion
|
|
cmd:ghc_pkg
|
|
cmd:ghc_pkg_$portVersion
|
|
cmd:ghci
|
|
cmd:ghci_$portVersion
|
|
cmd:haddock
|
|
cmd:haddock_ghc_$portVersion
|
|
cmd:hp2ps
|
|
cmd:hpc
|
|
cmd:hsc2hs
|
|
cmd:runghc
|
|
cmd:runghc_$portVersion
|
|
cmd:runhaskell
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix >= $haikuVersion
|
|
lib:libiconv$secondaryArchSuffix
|
|
lib:libncursesw$secondaryArchSuffix >= 6
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel >= $haikuVersion
|
|
haiku_devel >= $haikuVersion
|
|
devel:libgmp$secondaryArchSuffix
|
|
devel:libiconv$secondaryArchSuffix
|
|
devel:libncursesw$secondaryArchSuffix >= 6
|
|
devel:libz$secondaryArchSuffix
|
|
docbook_xml_dtd
|
|
docbook_xsl_stylesheets
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:autoconf
|
|
cmd:awk
|
|
cmd:find
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:ghc_7.10.3
|
|
cmd:ghc_pkg_7.10.3
|
|
cmd:git
|
|
cmd:grep
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:patch
|
|
cmd:perl
|
|
cmd:sed
|
|
cmd:sort
|
|
cmd:tar
|
|
cmd:xsltproc
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
# 2. Build GHC using the bootstrap compiler; we create a "dyn" only install
|
|
echo "Building GHC proper..."
|
|
|
|
cat > mk/build.mk <<-EOF
|
|
V = 0
|
|
GhcLibWays = v dyn
|
|
SRC_HC_OPTS = -O -H64m
|
|
GhcStage1HcOpts = -O -fasm
|
|
GhcStage2HcOpts = -O2 -fasm
|
|
GhcHcOpts = -Rghc-timing
|
|
GhcLibHcOpts = -O2
|
|
|
|
DYNAMIC_GHC_PROGRAMS = YES
|
|
DYNAMIC_TOO = YES
|
|
|
|
NoFibWays =
|
|
STRIP_CMD = :
|
|
EOF
|
|
|
|
# Workaround for haikuporter bug #207
|
|
mkdir -p /system/settings/ghc
|
|
cp -r /system/lib/x86/ghc-*/package.conf.d /system/settings/ghc/
|
|
|
|
export HOME=/boot/home
|
|
|
|
autoconf
|
|
|
|
# haikuporter's buildspec confuses GHC, so we omit it, and we can't
|
|
# have a gcc2 GHC, so just install directly into $prefix/bin
|
|
runConfigure --omit-buildspec --omit-dirs binDir configure --bindir=$prefix/bin GHC=/bin/ghc-7.10.3 CC=/bin/gcc-x86
|
|
make $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
export HOME=/boot/home
|
|
|
|
export GHC_PACKAGE_PATH=$settingsDir/ghc/package.conf.d
|
|
ghc-pkg init $GHC_PACKAGE_PATH
|
|
unset GHC_PACKAGE_PATH
|
|
# 1. Install our new GHC
|
|
echo "Installing GHC!"
|
|
make install
|
|
|
|
# 2. Move package.conf.d to settings
|
|
sed -i -e '/^PKGCONF=/c\
|
|
PKGCONF='"$settingsDir"'/ghc/package.conf.d' $prefix/bin/ghc-pkg-$portVersion
|
|
unset GHC_PACKAGE_PATH
|
|
|
|
# move package.conf.d files to the right place...
|
|
mv $libDir/ghc-$portVersion/package.conf.d/*.conf $settingsDir/ghc/package.conf.d/
|
|
$prefix/bin/ghc-pkg recache
|
|
}
|