aboutsummaryrefslogtreecommitdiff
path: root/cabalize
diff options
context:
space:
mode:
Diffstat (limited to 'cabalize')
-rwxr-xr-xcabalize39
1 files changed, 39 insertions, 0 deletions
diff --git a/cabalize b/cabalize
new file mode 100755
index 000000000..d494dacaf
--- /dev/null
+++ b/cabalize
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+BASE_DEPENDS="base haskell98 parsec"
+
+GHC64_DEPENDS=${GHC64_DEPENDS}
+GHC66_DEPENDS=${GHC66_DEPENDS-"regex-compat html"}
+HCFLAGS=${HCFLAGS-"-O0"}
+
+set -- $(ghc --version)
+while [ -n "$1" ] && [ "$1" != 'version' ]; do
+ shift
+done
+shift
+ghc_version="$1"
+
+BUILD_DEPENDS="${BASE_DEPENDS}"
+case "$ghc_version" in
+6.4*)
+ BUILD_DEPENDS="${BUILD_DEPENDS} ${GHC64_DEPENDS}"
+ ;;
+6.[56]*)
+ BUILD_DEPENDS="${BUILD_DEPENDS} ${GHC66_DEPENDS}"
+ ;;
+*)
+ echo >&2 "WARNING: Unsupported GHC version '$ghc_version'; proceeding anyway"
+ break
+ ;;
+esac
+BUILD_DEPENDS=$(echo $BUILD_DEPENDS | sed -e 's# #, #g')
+
+# Handle 'Hs-Source-Dir' option name which was deprecated in Cabal 1.1.4.
+HS_SOURCE_DIRS='Hs-Source-Dirs'
+if ghc-pkg -l | grep -q '\<[Cc]abal-[0-1]\.[0-1]\.[0-3][^,]*'; then
+ HS_SOURCE_DIRS='Hs-Source-Dir'
+fi
+
+sed -e "s#@HCFLAGS@#$HCFLAGS#g" \
+ -e "s#@BUILD_DEPENDS@#$BUILD_DEPENDS#g" \
+ -e "s#@HS_SOURCE_DIRS@#$HS_SOURCE_DIRS#g"