blob: f2223ed927dce5bf8d2e97d8c0c6495b05906be9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/bin/sh
# Preprocesses cabal file.
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.[5-9]*)
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')
PANDOC_VERSION=$(sed -ne 's/^version[[:space:]]*=[[:space:]]*"\([^"]*\)"/\1/p' src/Main.hs)
# Handle 'Hs-Source-Dir' option name which was deprecated in Cabal > 1.1.3.
HS_SOURCE_DIRS='Hs-Source-Dirs'
cabal_version=$(ghc-pkg -l | sed -ne 's/.*[Cc]abal-\([^,]*\).*/\1/p')
if printf "$cabal_version\n1.1.3" | sort | tail -n 1 | grep -q '1\.1\.3'; then
HS_SOURCE_DIRS='Hs-Source-Dir'
fi
# If running Windows/Cygwin, add .exe to executable name
EXTENSION=$(uname | tr 'A-Z' 'a-z' | sed -ne 's/^cygwin.*$/\.exe/p')
sed -e "s#@HCFLAGS@#$HCFLAGS#g" \
-e "s#@BUILD_DEPENDS@#$BUILD_DEPENDS#g" \
-e "s#@HS_SOURCE_DIRS@#$HS_SOURCE_DIRS#g" \
-e "s#@VERSION@#$PANDOC_VERSION#g" \
-e "s#^\(Executable:[[:space:]]*pandoc\)#\1$EXTENSION#g"
|