Merge branch 'PR/allow-to-specify-build-config'
This commit is contained in:
commit
69e2060073
23
ghcup
23
ghcup
@ -300,6 +300,7 @@ FLAGS:
|
|||||||
-h, --help Prints help information
|
-h, --help Prints help information
|
||||||
-f, --force Overwrite already existing installation
|
-f, --force Overwrite already existing installation
|
||||||
-j, --jobs <n> How many jobs for compilation
|
-j, --jobs <n> How many jobs for compilation
|
||||||
|
-c, --build-config <filepath> Use the given config file as build config
|
||||||
|
|
||||||
ARGS:
|
ARGS:
|
||||||
<VERSION> E.g. \"8.4.3\" or \"8.6.1\"
|
<VERSION> E.g. \"8.4.3\" or \"8.6.1\"
|
||||||
@ -866,10 +867,12 @@ install_cabal() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# @FUNCTION: compile_ghc
|
# @FUNCTION: compile_ghc
|
||||||
# @USAGE: <ghcversion> <bootstrap-ghc>
|
# @USAGE: <ghcversion> <bootstrap-ghc> [build.mk]
|
||||||
# @DESCRIPTION:
|
# @DESCRIPTION:
|
||||||
# Compile and installs the given GHC version with the
|
# Compile and installs the given GHC version with the
|
||||||
# specified GHC bootstrap version.
|
# specified GHC bootstrap version.
|
||||||
|
# Can additionally take a custom file that will be used
|
||||||
|
# as build configuration.
|
||||||
compile_ghc() {
|
compile_ghc() {
|
||||||
{ [ -z "$1" ] || [ -z "$2" ] ;} && die "Internal error: not enough arguments given to compile_ghc"
|
{ [ -z "$1" ] || [ -z "$2" ] ;} && die "Internal error: not enough arguments given to compile_ghc"
|
||||||
|
|
||||||
@ -879,6 +882,14 @@ compile_ghc() {
|
|||||||
download_url="https://downloads.haskell.org/~ghc/${myghcver}/ghc-${myghcver}-src.tar.xz"
|
download_url="https://downloads.haskell.org/~ghc/${myghcver}/ghc-${myghcver}-src.tar.xz"
|
||||||
download_tarball_name=$(basename "${download_url}")
|
download_tarball_name=$(basename "${download_url}")
|
||||||
|
|
||||||
|
if [ -n "$3" ] ; then
|
||||||
|
case "$3" in
|
||||||
|
/*) build_config=$3 ;;
|
||||||
|
*) build_config="$(pwd)/$3" ;;
|
||||||
|
esac
|
||||||
|
[ -e "${build_config}" ] || die "specified build config \"${build_config}\" file does not exist!"
|
||||||
|
fi
|
||||||
|
|
||||||
if ghc_already_installed "${myghcver}" ; then
|
if ghc_already_installed "${myghcver}" ; then
|
||||||
if ${FORCE} ; then
|
if ${FORCE} ; then
|
||||||
echo "GHC already installed in ${inst_location}, overwriting!"
|
echo "GHC already installed in ${inst_location}, overwriting!"
|
||||||
@ -898,8 +909,10 @@ compile_ghc() {
|
|||||||
edo tar -xf ghc-*-src.tar.xz
|
edo tar -xf ghc-*-src.tar.xz
|
||||||
edo cd "ghc-${myghcver}"
|
edo cd "ghc-${myghcver}"
|
||||||
|
|
||||||
|
if [ -n "${build_config}" ] ; then
|
||||||
|
edo cat "${build_config}" > mk/build.mk
|
||||||
|
else
|
||||||
cat <<-EOF > mk/build.mk || die
|
cat <<-EOF > mk/build.mk || die
|
||||||
BuildFlavour = quick
|
|
||||||
V=0
|
V=0
|
||||||
BUILD_MAN = NO
|
BUILD_MAN = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
@ -907,6 +920,8 @@ compile_ghc() {
|
|||||||
HADDOCK_DOCS = YES
|
HADDOCK_DOCS = YES
|
||||||
GhcWithLlvmCodeGen = YES
|
GhcWithLlvmCodeGen = YES
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
edo ./boot
|
edo ./boot
|
||||||
edo ./configure --prefix="${inst_location}" --with-ghc="${bootstrap_ghc}"
|
edo ./configure --prefix="${inst_location}" --with-ghc="${bootstrap_ghc}"
|
||||||
@ -1074,6 +1089,8 @@ while [ $# -gt 0 ] ; do
|
|||||||
shift 1;;
|
shift 1;;
|
||||||
-j|--jobs) JOBS=$2
|
-j|--jobs) JOBS=$2
|
||||||
shift 2;;
|
shift 2;;
|
||||||
|
-c|--build-config) BUILD_CONFIG=$2
|
||||||
|
shift 2;;
|
||||||
*) GHC_VER=$1
|
*) GHC_VER=$1
|
||||||
BOOTSTRAP_GHC=$2
|
BOOTSTRAP_GHC=$2
|
||||||
break;;
|
break;;
|
||||||
@ -1081,7 +1098,7 @@ while [ $# -gt 0 ] ; do
|
|||||||
done
|
done
|
||||||
[ "${GHC_VER}" ] || compile_usage
|
[ "${GHC_VER}" ] || compile_usage
|
||||||
[ "${BOOTSTRAP_GHC}" ] || compile_usage
|
[ "${BOOTSTRAP_GHC}" ] || compile_usage
|
||||||
compile_ghc "${GHC_VER}" "${BOOTSTRAP_GHC}"
|
compile_ghc "${GHC_VER}" "${BOOTSTRAP_GHC}" "${BUILD_CONFIG}"
|
||||||
break;;
|
break;;
|
||||||
*) usage;;
|
*) usage;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user