Add PrimCall to the STG layer and update Core -> STG translation
[ghc-hetmet.git] / ghc.mk
diff --git a/ghc.mk b/ghc.mk
index 73dc5f7..b6f0267 100644 (file)
--- a/ghc.mk
+++ b/ghc.mk
 
 # ToDo List.
 #
-# Before we can merge the new build system into HEAD:
-#
 #   * finish installation
 #     * other documentation
 #     * create doc index and contents
 #     * Windows: should we have ghc-pkg-<version>?
 #     * should we be stripping things?
 #     * install libgmp.a, gmp.h
-#   * finish binary distributions
 #   * need to fix Cabal for new Windows layout, see
 #     Distribution/Simple/GHC.configureToolchain.
-#
-# Once the new build system is in HEAD, and before 6.12:
-#
-#   * separate the logic of whether to do something from the test for
-#     existence of the tool to do it. For example, rather than checking
-#     if $DIR_DOCBOOK_XSL or $XSLTPROC is "", we should have a variable
-#     for controlling the building of the docs.
 #   * remove old Makefiles, add new stubs for building in subdirs
 #     * utils/hsc2hs/Makefile
 #     * utils/haddock/Makefile
@@ -45,7 +35,6 @@
 #   * GhcProfiled
 #   * optionally install stage3?
 #   * shared libraries, way dyn
-#   * get HC bootstrapping working
 #   * add Makefiles for the rest of the utils/ programs that aren't built
 #     by default (need to exclude them from 'make all' too)
 #
@@ -315,7 +304,6 @@ PACKAGES += \
        extensible-exceptions \
        haskell98 \
        hpc \
-       packedstring \
        pretty \
        syb \
        template-haskell \
@@ -575,6 +563,10 @@ $(foreach pkg,$(PACKAGES_STAGE2),$(eval libraries/$(pkg)_dist-install_HC_OPTS +=
 # out the ones it thinks aren't supported.
 libraries/base3-compat_dist-install_HC_OPTS += -XPackageImports
 
+# A useful pseudo-target
+.PHONY: stage1_libs
+stage1_libs : $(ALL_STAGE1_LIBS)
+
 # -----------------------------------------------------------------------------
 # Bootstrapping libraries
 
@@ -777,13 +769,24 @@ binary-dist:
        "$(RM)" $(RM_OPTS) $(BIN_DIST_TAR)
 # h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source
 # tree then we want to include the real file, not a symlink to it
-       "$(TAR)" hcf - -T $(BIN_DIST_LIST) | bzip2 -c >$(BIN_DIST_TAR_BZ2)
+       "$(TAR)" hcf - -T $(BIN_DIST_LIST) | bzip2 -c > $(BIN_DIST_TAR_BZ2)
+
+windows-binary-dist:
+       "$(RM)" $(RM_OPTS) -r $(BIN_DIST_NAME)
+       $(MAKE) prefix=$(BIN_DIST_DIR) install
+       "$(TAR)" cf - $(BIN_DIST_NAME) | bzip2 -c > $(BIN_DIST_TAR_BZ2)
+
+windows-installer:
+       "$(ISCC)" /O. /F$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss
 
 nTimes = set -e; for i in `seq 1 $(1)`; do echo Try "$$i: $(2)"; if $(2); then break; fi; done
 
 .PHONY: publish-binary-dist
 publish-binary-dist:
        $(call nTimes,10,$(PublishCp) $(BIN_DIST_TAR_BZ2) $(PublishLocation)/dist)
+ifeq "$(mingw32_TARGET_OS)" "1"
+       $(call nTimes,10,$(PublishCp) $(WINDOWS_INSTALLER) $(PublishLocation)/dist)
+endif
 
 # -----------------------------------------------------------------------------
 # Source distributions
@@ -905,6 +908,7 @@ clean_libraries:
        "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2))
        "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-install, $(PACKAGES) $(PACKAGES_STAGE2))
        "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-boot, $(PACKAGES) $(PACKAGES_STAGE2))
+       "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/*.buildinfo, $(PACKAGES) $(PACKAGES_STAGE2))
 
 distclean : clean
        "$(RM)" $(RM_OPTS) config.cache config.status config.log mk/config.h mk/stamp-h
@@ -944,3 +948,5 @@ bootstrapping-files: includes/ghcautoconf.h
 bootstrapping-files: includes/DerivedConstants.h
 bootstrapping-files: includes/GHCConstants.h
 
+.DELETE_ON_ERROR:
+