Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=dcf6c0bce6acb920ce0b66339634b021eddb6051
commit dcf6c0bce6acb920ce0b66339634b021eddb6051 Author: kikadf <[email protected]> Date: Thu Apr 10 15:00:28 2014 +0200 ghc-7.8.1-1-x86_64 * Version bump diff --git a/source/devel-extra/ghc/FrugalBuild b/source/devel-extra/ghc/FrugalBuild index afdeb27..54542db 100644 --- a/source/devel-extra/ghc/FrugalBuild +++ b/source/devel-extra/ghc/FrugalBuild @@ -2,48 +2,55 @@ # Maintainer: Miklos Vajna <[email protected]> pkgname=ghc -pkgver=7.0.3 +pkgver=7.8.1 pkgrel=1 pkgdesc="The Glasgow Haskell Compiler" url="http://www.haskell.org/ghc/" depends=('gmp>=5.0.1' 'readline' 'libedit' 'libffi') +makedepends=('docbook-xsl') # 'ghc') # like in Arch Linux groups=('devel-extra') archs=('i686' 'x86_64') -up2date="lynx -dump http://www.haskell.org/ghc/download.html|grep Current|sed 's/.*(\(.*\))/\1/'" +up2date="lynx -dump $url/dist/ | sed -n 's/.*dist\/\([0-9].*\)\/.*/\1/p' | tail -1" +source=(http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.xz build.mk) +sha1sums=('d08c9e1b2252cbb6c6032d13a1860831ac15cb7f' \ + 'a5e2b8d920a8af597c948f6917c0cfc90f779a22') + +# Need ghc>=7.4 for build, we have 7.0.x, so use ghc-binary if [ "$CARCH" == "i686" ]; then _arch=i386 -else + else _arch=$CARCH fi -source=(http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-src.tar.bz2 \ - http://www.haskell.org/ghc/dist/$pkgver/ghc-$pkgver-$_arch-unknown-linux.tar.bz2) -sha1sums=('222eed949413723b1f45218a908d5ee6930fda1b') +source+=(http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-$_arch-unknown-linux.tar.bz2) if [ "$CARCH" == "i686" ]; then - sha1sums=(${sha1sums[@]} '092ffb12fb29a5ddb173ace1f14f1144ac2a9c67') + sha1sums+=('f042b4171a2d4745137f2e425e6949c185f8ea14') elif [ "$CARCH" == "x86_64" ]; then - sha1sums=(${sha1sums[@]} '3fe4bad81ad83d24a21ca38f3e5f6716140d8a29') + sha1sums+=('46ec3f3352ff57fba0dcbc8d9c20f7bcb6924b77') fi -NOEXTRACT=1 +# ********************************************************** + +replaces=('haskell-transformers' 'haskell-xhtml' 'haskell-array' + 'haskell-binary' 'haskell-containers' 'haskell-deepseq' + 'haskell-haskeline' 'haskell-terminfo') +conflicts=("${replaces[@]}") +provides=("${provides[@]}") build() { - Fextract ghc-$pkgver-$_arch-unknown-linux.tar.bz2 - mv ghc-$pkgver ghc-$pkgver-binary || return 1 - cd ghc-$pkgver-binary - - # hack for gmp 5 + # First build binary ghc + cd $pkgname-7.6.3 || Fdie ln -s /usr/lib/libgmp.so.10 libgmp.so.3 export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH - - ./configure --prefix=$Fsrcdir/binary || return 1 - make install || return 1 + ./configure --prefix=$Fsrcdir/binary || Fdie + make install || Fdie export PATH=$Fsrcdir/binary/bin:$PATH + cd .. + # ********************** - cd $Fsrcdir - Fextract ghc-$pkgver-src.tar.bz2 + # Build ghc _F_conf_notry="build" - Fmake - # Fmakeinstall doesn't handle this pkg - make DESTDIR=$Fdestdir install || Fdie + cp build.mk $pkgname-$pkgver/mk/build.mk || Fdie + Fbuild } + # optimization OK diff --git a/source/devel-extra/ghc/build.mk b/source/devel-extra/ghc/build.mk new file mode 100644 index 0000000..bb57594 --- /dev/null +++ b/source/devel-extra/ghc/build.mk @@ -0,0 +1,200 @@ +# ----------------------------------------------------------------------------- +# 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 and everything enabled (very slow build) +BuildFlavour = perf + +# As above but build GHC using the LLVM backend +#BuildFlavour = perf-llvm + +# Fast build with optimised libraries, no profiling (RECOMMENDED): +#BuildFlavour = quick + +# Even faster build. NOT RECOMMENDED: the libraries will be +# completely unoptimised, so any code built with this compiler +# (including stage2) will run very slowly: +#BuildFlavour = quickest + +# 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 + +# An unregisterised, optimised build of ghc, for porting: +#BuildFlavour = unreg + +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 +GhcLibWays += p + +ifeq "$(PlatformSupportsSharedLibs)" "YES" +GhcLibWays += dyn +endif + +endif + +# ---------------- Perf build using LLVM ------------------------------------- + +ifeq "$(BuildFlavour)" "perf-llvm" + +SRC_HC_OPTS = -O -H64m -fllvm +GhcStage1HcOpts = -O -fllvm +GhcStage2HcOpts = -O2 -fllvm +GhcHcOpts = -Rghc-timing +GhcLibHcOpts = -O2 +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 +LAX_DEPENDENCIES = YES + +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 +LAX_DEPENDENCIES = YES + +# After stage 1 and the libraries have been built, you can uncomment this line: + +# stage=2 + +# Then stage 1 will not be touched by the build system, until +# you comment the line again. This is a useful trick for when you're +# working on stage 2 and want to freeze stage 1 and the libraries for +# a while. + +endif + +# -------- A Unregisterised build) ------------------------------------------- + +ifeq "$(BuildFlavour)" "unreg" + +# Note that the LLVM backend works in unregisterised mode as well as +# registerised mode. This often makes it a good choice for porting +# GHC. + +GhcUnregisterised = YES +GhcWithNativeCodeGen = NO + +SRC_HC_OPTS = -O -H64m # -fllvm +GhcStage1HcOpts = -O +GhcStage2HcOpts = -O2 +GhcHcOpts = -Rghc-timing +GhcLibHcOpts = -O2 +SplitObjs = NO +HADDOCK_DOCS = NO +BUILD_DOCBOOK_HTML = NO +BUILD_DOCBOOK_PS = NO +BUILD_DOCBOOK_PDF = NO + +endif + +# ----------------------------------------------------------------------------- +# Other settings that might be useful + +# NoFib settings +NoFibWays = +STRIP_CMD = : + _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
