diff options
author | root <root@rshg054.dnsready.net> | 2011-11-20 23:14:50 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2011-11-20 23:14:50 +0000 |
commit | 70b4878648fd376433739bd5c835503f6301a5b2 (patch) | |
tree | c74d46f8e06305505e381202251b6f71ca33c3e7 /testing/ghc | |
parent | a3024f8996981b28ced27466cbd1d4ab40e57324 (diff) |
Sun Nov 20 23:14:50 UTC 2011
Diffstat (limited to 'testing/ghc')
-rw-r--r-- | testing/ghc/PKGBUILD | 43 | ||||
-rw-r--r-- | testing/ghc/build.mk | 150 | ||||
-rw-r--r-- | testing/ghc/ghc.install | 19 |
3 files changed, 212 insertions, 0 deletions
diff --git a/testing/ghc/PKGBUILD b/testing/ghc/PKGBUILD new file mode 100644 index 000000000..aef26d06e --- /dev/null +++ b/testing/ghc/PKGBUILD @@ -0,0 +1,43 @@ +# $Id: PKGBUILD 142984 2011-11-19 18:41:40Z vesa $ +# Maintainer: Vesa Kaihlavirta <vesa@archlinux.org> +# Special note for devs looking to upgrade this package: +# ghc places a unique hash for each library when it is built. +# Libraries depend on versions specified by those hashes. +# This implies that all libraries need to be rebuilt when ghc is rebuilt. +# Also, due to dependency loop problems, haskell-ghc-paths and haddock +# do not carry version dependencies. You will have to remember to build them too. +pkgname=ghc +pkgver=7.2.2 +pkgrel=1 +pkgdesc="The Glasgow Haskell Compiler" +arch=(i686 x86_64) +url="http://www.haskell.org/ghc/" +license=("custom") +depends=('perl' 'gmp>=5.0' gcc) +makedepends=(ghc happy perl libxslt docbook-xsl) +install=ghc.install +options=(!strip) +groups=(haskell) +source=("http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2" + build.mk) + +build() { + cd $srcdir/$pkgname-$pkgver + + cp $srcdir/build.mk mk/build.mk + + ./configure --prefix=/usr + make -j1 || return 1 +} + +package() { + cd $srcdir/$pkgname-$pkgver + + make DESTDIR=$pkgdir install + + install -Dm644 LICENSE ${pkgdir}/usr/share/licenses/ghc/license + install -d $pkgdir/usr/share/haskell +} + +md5sums=('fa19d9fe5049b7a1352b0b7c9880c141' + '5a3e0880c80b1dcecf779ff2e63a9c0d') diff --git a/testing/ghc/build.mk b/testing/ghc/build.mk new file mode 100644 index 000000000..f918a0f16 --- /dev/null +++ b/testing/ghc/build.mk @@ -0,0 +1,150 @@ +# ----------------------------------------------------------------------------- +# A Sample build.mk +# +# Uncomment one of the following BuildFlavour settings to get the desired +# overall build type, and then tweak the options in the relevant section +# below. + +# Uncomment one of these to select a build profile below: + +# Full build with max optimisation (slow build) +BuildFlavour = perf + +# Fastest build (libs unoptimised): +#BuildFlavour = quickest + +# Fast build with optimised libraries: +#BuildFlavour = quick + +# Profile the stage2 compiler: +#BuildFlavour = prof + +# A development build, working on the stage 1 compiler: +#BuildFlavour = devel1 + +# A development build, working on the stage 2 compiler: +#BuildFlavour = devel2 + +GhcLibWays = v + +# -------- 1. A Performance/Distribution build-------------------------------- + +ifeq "$(BuildFlavour)" "perf" + +# perf matches the default settings, repeated here for comparison: + +SRC_HC_OPTS = -O -H64m +GhcStage1HcOpts = -O -fasm +GhcStage2HcOpts = -O2 -fasm +GhcHcOpts = -Rghc-timing +GhcLibHcOpts = -O2 -XGenerics +GhcLibWays += p + +ifeq "$(PlatformSupportsSharedLibs)" "YES" +GhcLibWays += dyn +endif + +endif + +# -------- A Fast build ------------------------------------------------------ + +ifeq "$(BuildFlavour)" "quickest" + +SRC_HC_OPTS = -H64m -O0 -fasm +GhcStage1HcOpts = -O -fasm +GhcStage2HcOpts = -O0 -fasm +GhcLibHcOpts = -O0 -fasm +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + +# -------- A Fast build with optimised libs ---------------------------------- + +ifeq "$(BuildFlavour)" "quick" + +SRC_HC_OPTS = -H64m -O0 -fasm +GhcStage1HcOpts = -O -fasm +GhcStage2HcOpts = -O0 -fasm +GhcLibHcOpts = -O -fasm +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + +# -------- Profile the stage2 compiler --------------------------------------- + +ifeq "$(BuildFlavour)" "prof" + +SRC_HC_OPTS = -H64m -O0 -fasm +GhcStage1HcOpts = -O -fasm +GhcStage2HcOpts = -O -fasm +GhcLibHcOpts = -O -fasm + +GhcLibWays += p +GhcProfiled = YES + +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + + +# -------- A Development build (stage 1) ------------------------------------- + +ifeq "$(BuildFlavour)" "devel1" + +SRC_HC_OPTS = -H64m -O -fasm +GhcLibHcOpts = -O -dcore-lint +GhcStage1HcOpts = -Rghc-timing -O0 -DDEBUG +GhcStage2HcOpts = -Rghc-timing -O -fasm +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + +# -------- A Development build (stage 2) ------------------------------------- + +ifeq "$(BuildFlavour)" "devel2" + +SRC_HC_OPTS = -H64m -O -fasm +GhcLibHcOpts = -O -dcore-lint +GhcStage1HcOpts = -Rghc-timing -O -fasm +GhcStage2HcOpts = -Rghc-timing -O0 -DDEBUG +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + +# ----------------------------------------------------------------------------- +# Other settings that might be useful + +# profiled RTS +#GhcRtsCcOpts = -pg -g + +# Optimised/profiled RTS +#GhcRtsCcOpts = -O2 -pg + +#GhcRtsWithFrontPanel = YES +#SRC_HC_OPTS += `gtk-config --libs` + +# NoFib settings +NoFibWays = +STRIP=: + + diff --git a/testing/ghc/ghc.install b/testing/ghc/ghc.install new file mode 100644 index 000000000..7d56083bc --- /dev/null +++ b/testing/ghc/ghc.install @@ -0,0 +1,19 @@ +pkgname=ghc + +pre_upgrade() { + cat << EOF + ==> Unregistering cabalized packages... +EOF + cd /usr/share/haskell/ && (for a in *; do ghc-pkg unregister --force $a &> /dev/null; done; cd - > /dev/null ) + cat << EOF + ==> Done. +EOF + +} + +post_upgrade() { + cat << EOF + ==> All cabalized and yaourt-installed packages need to be reinstalled now. + ==> See /usr/share/haskell/ and ghc-pkg list --user for a tentative list of affected packages. +EOF +} |