diff --git a/ghc/PKGBUILD b/ghc/PKGBUILD index 9587399f2..4cdfcfa96 100644 --- a/ghc/PKGBUILD +++ b/ghc/PKGBUILD @@ -70,17 +70,19 @@ replaces=('haskell-array<0.5.1.0' ) source=("http://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-src.tar.xz" - "http://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-testsuite.tar.xz" - 'build.mk') + "http://www.haskell.org/ghc/dist/${pkgver}/ghc-${pkgver}-testsuite.tar.xz") md5sums=('8942b6fb393984aeb8304d09bc326851' - '4a0d3c147d2027657f49c5a7a4a3f4fe' - 'c367ef26300648ee9b8aca3dee5c9669') + '4a0d3c147d2027657f49c5a7a4a3f4fe') -build() { +prepare() { cd ghc-${pkgver} cp mk/build.mk{.sample,} sed -i '1iBuildFlavour = perf' mk/build.mk +} + +build() { + cd ghc-${pkgver} ./configure \ --prefix=/usr \ diff --git a/ghc/build.mk b/ghc/build.mk deleted file mode 100644 index bb57594bf..000000000 --- a/ghc/build.mk +++ /dev/null @@ -1,200 +0,0 @@ -# ----------------------------------------------------------------------------- -# 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 = : - diff --git a/ghc/print-provides-replaces.sh b/ghc/print-provides-replaces.sh deleted file mode 100755 index 33d1da051..000000000 --- a/ghc/print-provides-replaces.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -. PKGBUILD - -if [[ ! -d src/ghc-${pkgver}/libraries ]]; then - echo "error: no directory src/ghc-${pkgver}/libraries: You must extract the source tarball under src/" - exit 1 -fi - -declare -A exclude -# no Win32 cause we're not building on windows -exclude['Win32']=1 -# no integer-simple because we use integer-gmp -exclude['integer-simple']=1 -# extract excluded libraries from ghc.mk -for exclude_pkg in $(sed 's/PKGS_THAT_ARE_INTREE_ONLY := //p' -n src/ghc-${pkgver}/ghc.mk); do - exclude[${exclude_pkg}]=1 -done - -cd src/ghc-${pkgver}/libraries - -# $1 is the name of the variable -# $2 is the string for the test, either '=' or '<' -print_var() { - printf "$1=(" - for pkg in $(ls ./*/*.cabal | awk -F '/' '{ print $2 }'); do - [[ ${exclude[${pkg}]} ]] && continue - version=$(awk 'tolower($0) ~ /^version:/ {print $2 }' $pkg/$pkg.cabal) - printf "'haskell-$pkg$2$version'\n " - done - # also add cabal - version=$(awk 'tolower($0) ~ /^version:/ { print $2 }' Cabal/Cabal/Cabal.cabal) - printf "'haskell-cabal$2$version'\n " - echo -e '\b)' -} - -print_var 'provides' '=' -print_var 'replaces' '<'