summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2007-08-22 20:20:40 +0000
committerIan Lynagh <igloo@earth.li>2007-08-22 20:20:40 +0000
commitf700c53dceab14939616be22d114f6509caa3aad (patch)
treef044e84045881d14b1546ed61900c94e83465ed2
parenta89d263cd1be9918882ebe85485fc4783fdb93f5 (diff)
downloadhaskell-f700c53dceab14939616be22d114f6509caa3aad.tar.gz
Add a bindisttest directory
After make binary-dist stage=2 you can run make in bindisttest/ to test it
-rw-r--r--Makefile5
-rw-r--r--bindisttest/HelloWorld.hs5
-rw-r--r--bindisttest/Makefile32
-rw-r--r--bindisttest/expected_output1
-rw-r--r--mk/config.mk.in1
5 files changed, 42 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 6f38c13cf7..a5936f488f 100644
--- a/Makefile
+++ b/Makefile
@@ -238,8 +238,6 @@ install-docs ::
# binary-dist is a GHC addition for binary distributions
#
-BIN_DIST_TARBALL=ghc-$(ProjectVersion)-$(TARGETPLATFORM).tar.bz2
-
binary-dist::
-rm -rf $(BIN_DIST_DIR)
-$(RM) $(BIN_DIST_DIR).tar.gz
@@ -564,6 +562,9 @@ MAINTAINER_CLEAN_FILES += VERSION
extraclean::
$(RM) -rf autom4te.cache
+clean distclean ::
+ $(MAKE) -C bindisttest $@
+
# -----------------------------------------------------------------------------
# Turn off target.mk's rules for 'all', 'boot' and 'install'.
diff --git a/bindisttest/HelloWorld.hs b/bindisttest/HelloWorld.hs
new file mode 100644
index 0000000000..56e1e89994
--- /dev/null
+++ b/bindisttest/HelloWorld.hs
@@ -0,0 +1,5 @@
+
+module Main (main) where
+
+main :: IO ()
+main = putStr "Hello world!"
diff --git a/bindisttest/Makefile b/bindisttest/Makefile
new file mode 100644
index 0000000000..d29c3d8b7a
--- /dev/null
+++ b/bindisttest/Makefile
@@ -0,0 +1,32 @@
+
+.PHONY: default_target
+
+default_target: all
+
+# Ideally we'd just include something to give us variables
+# for paths and arguments to tools etc, and those set in mk/build.mk.
+TOP=..
+include $(TOP)/mk/boilerplate.mk
+
+INST_DIR = $(FPTOOLS_TOP_ABS)/bindisttest/installed
+
+all:
+ $(RM) -rf installed
+ $(RM) -rf ghc*
+ $(RM) HelloWorld HelloWorld.o HelloWorld.hi output
+ $(TAR) -jxf $(BIN_DIST_TARBALL)
+ cd $(BIN_DIST_NAME) && ./configure --prefix=$(INST_DIR)
+ cd $(BIN_DIST_NAME) && make install
+ $(INST_DIR)/bin/ghc --make HelloWorld
+ ./HelloWorld > output
+ $(CONTEXT_DIFF) output expected_output
+
+clean distclean:
+ $(RM) -rf installed
+ $(RM) -rf ghc*
+ $(RM) HelloWorld HelloWorld.o HelloWorld.hi output
+
+# Ignore a load of other standard targets
+install install-docs doc:
+ @:
+
diff --git a/bindisttest/expected_output b/bindisttest/expected_output
new file mode 100644
index 0000000000..6769dd60bd
--- /dev/null
+++ b/bindisttest/expected_output
@@ -0,0 +1 @@
+Hello world! \ No newline at end of file
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 0feecbd7f7..741abd3c9c 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -507,6 +507,7 @@ FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@
BIN_DIST_NAME=ghc-$(ProjectVersion)
BIN_DIST_TOPDIR=$(FPTOOLS_TOP_ABS)
BIN_DIST_DIR=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME)
+BIN_DIST_TARBALL=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2
#
# Installation directories, we don't use half of these,