diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2015-04-28 08:21:51 +0000 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2015-04-28 08:21:51 +0000 |
commit | efee6e848f488ebc26e50af27fd0c4c47ccf7975 (patch) | |
tree | c604313c2677c089a4443df2290914fc1215e634 /Dh_Haskell.sh | |
parent | 4cdd2fa2d76f37dd3935b1aa2278ec5674d01992 (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.sh | 65 |
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} |