allow build settings to be overriden by adding mk/validate.mk
[ghc-hetmet.git] / Makefile
index dbb4dfe..a2337f0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -59,12 +59,12 @@ include $(TOP)/mk/boilerplate.mk
 
 # We can't 'make boot' in libraries until stage1 is built
 ifeq "$(BootingFromHc)" "YES"
-SUBDIRS_BUILD = includes rts compat compiler docs utils driver
+SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver
 else
-SUBDIRS_BUILD = includes compat utils driver docs compiler rts
+SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts
 endif
 
-SUBDIRS_INSTALL = includes compat utils driver docs rts libraries compiler
+SUBDIRS = gmp includes compat utils driver docs rts libraries compiler
 
 # Sanity check that all the core libraries are in the tree, to catch
 # failure to run darcs-all.
@@ -137,7 +137,7 @@ endif
 install :: check-packages
        $(INSTALL_DIR) $(bindir)
        @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
-       for i in $(SUBDIRS_INSTALL); do \
+       for i in $(SUBDIRS); do \
          echo "------------------------------------------------------------------------"; \
          echo "== $(MAKE) $@ $(MFLAGS);"; \
          echo " in $(shell pwd)/$$i"; \
@@ -179,7 +179,7 @@ endif
 
 install-docs ::
        @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
-       for i in $(SUBDIRS_INSTALL); do \
+       for i in $(SUBDIRS); do \
          echo "------------------------------------------------------------------------"; \
          echo "== $(MAKE) $@ $(MFLAGS);"; \
          echo " in $(shell pwd)/$$i"; \
@@ -211,10 +211,24 @@ install-docs ::
 #      binary-dist is a GHC addition for binary distributions
 # 
 
-BinDistDirs = includes compiler docs rts
-
 BIN_DIST_TARBALL=ghc-$(ProjectVersion)-$(TARGETPLATFORM).tar.bz2
 
+binary-dist::
+       -rm -rf $(BIN_DIST_DIR)
+       -$(RM) $(BIN_DIST_DIR).tar.gz
+
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+
+binary-dist::
+       $(MAKE) prefix=$(BIN_DIST_DIR) install
+
+binary-dist::
+       cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw
+
+else
+
+BinDistDirs = includes compiler docs rts
+
 BIN_DIST_TOP= distrib/Makefile \
               distrib/configure-bin.ac \
               distrib/INSTALL \
@@ -235,8 +249,6 @@ endif
 binary-dist:: binary-dist-pre
 
 binary-dist-pre::
-       -rm -rf $(BIN_DIST_DIR)
-       -$(RM) $(BIN_DIST_DIR).tar.gz
        $(MKDIRHIER) $(BIN_DIST_DIR)/mk
        echo 'include $$(TOP)/Makefile-vars' >  $(BIN_DIST_DIR)/mk/boilerplate.mk
        echo 'include $$(TOP)/mk/install.mk' >  $(BIN_DIST_DIR)/mk/target.mk
@@ -249,6 +261,7 @@ binary-dist-pre::
        $(MKDIRHIER) $(BIN_DIST_DIR)/share
 
 binary-dist::
+       $(MAKE) -C gmp      binary-dist DOING_BIN_DIST=YES
        $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES
        $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE)
        # XXX $(MAKE) -C docs     binary-dist DOING_BIN_DIST=YES
@@ -272,6 +285,9 @@ binary-dist::
        echo "ProjectVersion = $(ProjectVersion)"                    >> $(VARFILE)
        echo "HaveLibGmp = $(HaveLibGmp)"                            >> $(VARFILE)
        echo "GhcLibsWithUnix = $(GhcLibsWithUnix)"                  >> $(VARFILE)
+       echo "GhcWithInterpreter = $(GhcWithInterpreter)"            >> $(VARFILE)
+       echo "GhcHasReadline = $(GhcHasReadline)"                    >> $(VARFILE)
+       echo "BootingFromHc = $(BootingFromHc)"                      >> $(VARFILE)
        cat distrib/Makefile-bin-vars.in                             >> $(VARFILE)
        @echo "Generating a shippable configure script.."
        $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac
@@ -341,16 +357,10 @@ endif
 binary-dist::
        $(MAKE) -C libraries binary-dist
 
-# Jiggle the files around to make a valid Windows distribution if necessary
-ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-binary-dist :: fiddle-binary-dist
 endif
 
-.PHONY: fiddle-binary-dist
-fiddle-binary-dist:
-       cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw
 # Tar up the distribution and build a manifest
-# XXX binary-dist :: tar-binary-dist
+binary-dist :: tar-binary-dist
 
 .PHONY: tar-binary-dist
 tar-binary-dist:
@@ -362,7 +372,7 @@ PUBLISH_FILES = $(BIN_DIST_TARBALL)
 # Upload the distribution and documentation
 ifneq "$(ISCC)" ""
 WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-$(TARGETPLATFORM)
-WINDOWS_INSTALLER = $(WINDOWS_INSTALLER)$(exeext)
+WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext)
 
 PUBLISH_FILES += $(WINDOWS_INSTALLER)
 
@@ -423,7 +433,7 @@ SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME)
 #
 # Files to include in source distributions
 #
-SRC_DIST_DIRS += mk docs distrib $(filter-out docs distrib,$(SUBDIRS_INSTALL))
+SRC_DIST_DIRS += mk docs distrib $(filter-out docs distrib,$(SUBDIRS))
 SRC_DIST_FILES += \
        configure.ac config.guess config.sub configure \
        aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \