summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorTamar Christina <tamar@zhox.com>2015-07-30 10:36:45 +0200
committerBen Gamari <ben@smart-cactus.org>2015-07-30 17:05:35 +0200
commit9f7cdfee3e9f9ca6fbfa27d3b2dc2d86ac4ee226 (patch)
tree5189b7894f149e01da746dfb935ff965e22b60f0 /configure.ac
parent5a8a8a64e793d2efbe9ea7d445cc8efe75d11f80 (diff)
downloadhaskell-9f7cdfee3e9f9ca6fbfa27d3b2dc2d86ac4ee226.tar.gz
Make configure error out on missing ghc-tarballs on Windows
Currently checking out the source on windows requires two git checkouts. One for the GHC sources and one for the GHC-tarballs. This patch will make configure issue an error if compiling under windows and the GHC-tarballs folder is missing. On failure the user is told which command they need to run to get the tarballs or if they want configure to handle it for them configure provide the `--enable-tarballs-autodownload` flag. Test Plan: 1. make sure ghc-tarballs folder is not present 2. run ./configure which should fail giving an error that tarballs is missing and how to get it 3. run ./configure --enable-tarballs-autodownload and the tarballs should be downloaded and configure finishes 4. rerun the command in 3, no new download should be done. 5. run configure without --enable-tarballs-autodownload, configure should finish correctly. Reviewers: bgamari, austin, thomie Reviewed By: thomie Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1108 GHC Trac Issues: #10705
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac43
1 files changed, 43 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index d896c8bf48..d60acb7833 100644
--- a/configure.ac
+++ b/configure.ac
@@ -101,6 +101,12 @@ AC_ARG_ENABLE(bootstrap-with-devel-snapshot,
EnableBootstrapWithDevelSnaphost=NO
)
+AC_ARG_ENABLE(tarballs-autodownload,
+[AC_HELP_STRING([--enable-tarballs-autodownload],
+ [Automatically download Windows distribution binaries if needed.])],
+ TarballsAutodownload=YES,
+ TarballsAutodownload=NO
+)
if test "$WithGhc" != ""; then
FPTOOLS_GHC_VERSION([GhcVersion], [GhcMajVersion], [GhcMinVersion], [GhcPatchLevel])dnl
@@ -274,12 +280,49 @@ AC_SUBST(WithHc)
FP_INTREE_GHC_PWD
FP_FIND_ROOT
+function fail() {
+ echo >&2
+ echo "$1" >&2
+ exit 1
+}
+
+function set_up_tarballs() {
+ local tarball_repo_url="$1"
+ local tarball_dir="$2"
+
+ if ! test -d "${tarball_dir}"
+ then
+ local git_cmd="git clone ${tarball_repo_url} ${tarball_dir}"
+ if test "$TarballsAutodownload" = "NO"
+ then
+ echo >&2
+ echo "ERROR: Windows tarball binary distributions not found." >&2
+ echo "Please rerun configure with --enable-tarballs-autodownload, or clone the repository manually:" >&2
+ echo " $git_cmd" >&2
+ exit 1
+ fi
+ AC_MSG_NOTICE([Downloading Windows tarball distributions to ${tarball_dir}...])
+ $git_cmd || {
+ rm -f "${tarball_dir}"
+ fail "ERROR: Git clone failed."
+ }
+ else
+ AC_MSG_NOTICE([Using Windows tarball distributions found in ${tarball_dir}...])
+ fi
+}
+
if test "$HostOS" = "mingw32"
then
test -d inplace || mkdir inplace
+ # NB. For now just run git clone on the tarball repo
+ ghc_tarball_repo='git://git.haskell.org/ghc-tarballs.git'
+ ghc_tarball_dir='ghc-tarballs'
+ set_up_tarballs "${ghc_tarball_repo}" "${ghc_tarball_dir}"
+
if test "$HostArch" = "i386"
then
+
# NB. If you update the tarballs to a new version of gcc, don't
# forget to tweak the paths in driver/gcc/gcc.c.
if ! test -d inplace/mingw ||