Add a bindisttest directory
authorIan Lynagh <igloo@earth.li>
Wed, 22 Aug 2007 20:20:40 +0000 (20:20 +0000)
committerIan Lynagh <igloo@earth.li>
Wed, 22 Aug 2007 20:20:40 +0000 (20:20 +0000)
After
    make binary-dist stage=2
you can run make in bindisttest/ to test it

Makefile
bindisttest/HelloWorld.hs [new file with mode: 0644]
bindisttest/Makefile [new file with mode: 0644]
bindisttest/expected_output [new file with mode: 0644]
mk/config.mk.in

index 6f38c13..a5936f4 100644 (file)
--- 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 (file)
index 0000000..56e1e89
--- /dev/null
@@ -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 (file)
index 0000000..d29c3d8
--- /dev/null
@@ -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 (file)
index 0000000..6769dd6
--- /dev/null
@@ -0,0 +1 @@
+Hello world!
\ No newline at end of file
index 0feecbd..741abd3 100644 (file)
@@ -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,