summaryrefslogtreecommitdiff
path: root/Dh_Haskell.sh
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2015-04-28 08:21:51 +0000
committerJoachim Breitner <mail@joachim-breitner.de>2015-04-28 08:21:51 +0000
commitefee6e848f488ebc26e50af27fd0c4c47ccf7975 (patch)
treec604313c2677c089a4443df2290914fc1215e634 /Dh_Haskell.sh
parent4cdd2fa2d76f37dd3935b1aa2278ec5674d01992 (diff)
Pass variables from the Makefile to the Dh_Haskell in environment variables; safer when they contain spaces or quotes.
Diffstat (limited to 'Dh_Haskell.sh')
-rw-r--r--Dh_Haskell.sh65
1 files changed, 16 insertions, 49 deletions
diff --git a/Dh_Haskell.sh b/Dh_Haskell.sh
index 6b783b0..fbce549 100644
--- a/Dh_Haskell.sh
+++ b/Dh_Haskell.sh
@@ -32,8 +32,6 @@ package_ext(){
}
packages_hc(){
- DEB_DEFAULT_COMPILER=$1
- DEB_PACKAGES=$2
hcs=`{ for i in ${DEB_PACKAGES}; do package_hc $i; done; } | sort -u`
if [ `echo ${hcs} | wc -w` = 0 ]; then hcs=${DEB_DEFAULT_COMPILER}; fi
if [ `echo ${hcs} | wc -w` != 1 ]; then echo "Multiple compilers not supported: ${hc}"; exit 1; fi
@@ -341,10 +339,6 @@ find_config_for_ghc(){
clean_recipe(){
# local PS5=$PS4; PS4=" + clean_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- CABAL_PACKAGE=$2
- MAKEFILE=$3
- DEB_LINTIAN_OVERRIDES_FILE=$4
[ ! -x "${DEB_SETUP_BIN_NAME}" ] || ${DEB_SETUP_BIN_NAME} clean
rm -rf dist dist-ghc dist-ghcjs dist-hugs ${DEB_SETUP_BIN_NAME} Setup.hi Setup.ho Setup.o .*config*
rm -f configure-ghc-stamp configure-ghcjs-stamp build-ghc-stamp build-ghcjs-stamp build-hugs-stamp build-haddock-stamp
@@ -363,26 +357,13 @@ clean_recipe(){
make_setup_recipe(){
# local PS5=$PS4; PS4=" + make_setup_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
for setup in Setup.lhs Setup.hs; do if test -e $setup; then ghc --make $setup -o ${DEB_SETUP_BIN_NAME}; exit 0; fi; done
# PS4=$PS5
}
configure_recipe(){
# local PS5=$PS4; PS4=" + configure_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- CABAL_PACKAGE=$2
- CABAL_VERSION=$3
- ENABLE_PROFILING=$4
- NO_GHCI_FLAG=$5
- DEB_SETUP_GHC6_CONFIGURE_ARGS=$6
- DEB_SETUP_GHC_CONFIGURE_ARGS=$7
- OPTIMIZATION=$8
- TESTS=$9
- DEB_DEFAULT_COMPILER=$10
- DEB_PACKAGES=$11
-
- hc=`packages_hc "${DEB_DEFAULT_COMPILER}" "${DEB_PACKAGES}"`
+ hc=`packages_hc`
ENABLE_PROFILING=`{ for i in ${DEB_PACKAGES}; do package_ext $i | grep prof; done; } | sort -u | sed 's/prof/--enable-library-profiling/'`
local GHC_OPTIONS
@@ -391,40 +372,36 @@ configure_recipe(){
${DEB_SETUP_BIN_NAME} configure "--${hc}" -v2 --package-db=/`hc_pkgdir ${hc}` \
--prefix=/`hc_prefix ${hc}` --libdir=/`hc_libdir ${hc}` \
--builddir=dist-${hc} \
- --ghc-options="${GHC_OPTIONS}" \
- --haddockdir=/`hc_docdir ${hc} ${CABAL_PACKAGE}-${CABAL_VERSION}` --datasubdir=${CABAL_PACKAGE}\
- --htmldir=/`hc_htmldir ${hc} ${CABAL_PACKAGE}` ${ENABLE_PROFILING} ${NO_GHCI_FLAG} \
- ${DEB_SETUP_GHC6_CONFIGURE_ARGS} ${DEB_SETUP_GHC_CONFIGURE_ARGS} ${OPTIMIZATION} ${TESTS}
+ --ghc-options="${GHC_OPTIONS}" \
+ --haddockdir=/`hc_docdir ${hc} ${CABAL_PACKAGE}-${CABAL_VERSION}` \
+ --datasubdir=${CABAL_PACKAGE}\
+ --htmldir=/`hc_htmldir ${hc} ${CABAL_PACKAGE}` \
+ ${ENABLE_PROFILING} \
+ ${NO_GHCI_FLAG} \
+ ${DEB_SETUP_GHC6_CONFIGURE_ARGS} \
+ ${DEB_SETUP_GHC_CONFIGURE_ARGS} \
+ ${OPTIMIZATION} \
+ ${TESTS}
# PS4=$PS5
}
build_recipe(){
# local PS5=$PS4; PS4=" + build_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- DEB_DEFAULT_COMPILER=$2
- DEB_PACKAGES=$3
- hc=`packages_hc "${DEB_DEFAULT_COMPILER}" "${DEB_PACKAGES}"`
+ hc=`packages_hc`
${DEB_SETUP_BIN_NAME} build --builddir=dist-${hc}
# PS4=$PS5
}
check_recipe(){
# local PS5=$PS4; PS4=" + check_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- DEB_DEFAULT_COMPILER=$2
- DEB_PACKAGES=$3
- hc=`packages_hc "${DEB_DEFAULT_COMPILER}" "${DEB_PACKAGES}"`
+ hc=`packages_hc`
${DEB_SETUP_BIN_NAME} test --builddir=dist-${hc} --show-details=always
# PS4=$PS5
}
haddock_recipe(){
# local PS5=$PS4; PS4=" + haddock_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- DEB_HADDOCK_OPTS=$2
- DEB_DEFAULT_COMPILER=$3
- DEB_PACKAGES=$4
- hc=`packages_hc "${DEB_DEFAULT_COMPILER}" "${DEB_PACKAGES}"`
+ hc=`packages_hc`
haddock=`hc_haddock ${hc}`
[ ! -x /usr/bin/${haddock} ] || ${DEB_SETUP_BIN_NAME} haddock --builddir=dist-${hc} --with-haddock=/usr/bin/${haddock} --with-ghc=${hc} ${DEB_HADDOCK_OPTS} || \
echo "Haddock failed (no modules?), creating empty documentation package."
@@ -433,8 +410,7 @@ haddock_recipe(){
extra_depends_recipe(){
# local PS5=$PS4; PS4=" + extra_depends_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- hc=$2
+ hc=$1
pkg_config=`${DEB_SETUP_BIN_NAME} register --builddir=dist-${hc} --gen-pkg-config | tr -d ' \n' | sed -r 's,^.*:,,'`
dh_haskell_extra_depends ${hc} $pkg_config
rm $pkg_config
@@ -443,13 +419,7 @@ extra_depends_recipe(){
install_dev_recipe(){
# local PS5=$PS4; PS4=" + install_dev_recipe> "; set -x
- DEB_SETUP_BIN_NAME=$1
- CABAL_PACKAGE=$2
- CABAL_VERSION=$3
- HASKELL_HIDE_PACKAGES=$4
- DEB_GHC_EXTRA_PACKAGES=$5
- DEB_LINTIAN_OVERRIDES_FILE=$6
- PKG=$7
+ PKG=$1
hc=`package_hc ${PKG}`
libdir=`package_libdir ${PKG}`
@@ -489,9 +459,6 @@ install_prof_recipe(){
install_doc_recipe(){
# local PS5=$PS4; PS4=" + install_doc_recipe> "; set -x
- CABAL_PACKAGE=$1
- CABAL_VERSION=$2
- DEB_ENABLE_HOOGLE=$3
PKG=$4
hc=`package_hc ${PKG}`
pkgid=${CABAL_PACKAGE}-${CABAL_VERSION}