X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=5bce2e64e970933c57f23d81c9f072422e0299b4;hp=bedad7f39eb32c18f04617ca91e56e6575d661d4;hb=051f5e48f6709244dbf73306519666b060dec42d;hpb=20b77872fe0dcca641094382f41f6b5eead2a68e diff --git a/Makefile b/Makefile index bedad7f..5bce2e6 100644 --- a/Makefile +++ b/Makefile @@ -291,6 +291,13 @@ binary-dist:: @echo "Generating a shippable configure script.." $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac ( cd $(BIN_DIST_DIR); autoconf ) + +ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +binary-dist:: + $(MKDIRHIER) $(BIN_DIST_DIR)/icons + cp distrib/hsicon.ico $(BIN_DIST_DIR)/icons +endif + # # binary dist'ing the documentation. # The default documentation to build/install is given below; overrideable @@ -394,19 +401,46 @@ tar-binary-dist: ( cd $(BIN_DIST_TOPDIR); tar cf - $(BIN_DIST_NAME) | bzip2 >$(BIN_DIST_TARBALL) ) ( cd $(BIN_DIST_TOPDIR); bunzip2 -c $(BIN_DIST_TARBALL) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >bin-manifest-$(ProjectVersion) ) +PUBLISH_FILES = $(BIN_DIST_TARBALL) + +# Upload the distribution and documentation +ifneq "$(ISCC)" "" +WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-$(TARGETPLATFORM) +WINDOWS_INSTALLER = $(WINDOWS_INSTALLER)$(exeext) + +PUBLISH_FILES += $(WINDOWS_INSTALLER) + +binary-dist :: generate-windows-installer + +.PHONY: generate-windows-installer +generate-windows-installer :: + $(SED) "s/@VERSION@/$(ProjectVersion)/" distrib/ghc.iss | $(ISCC) /O. /F$(WINDOWS_INSTALLER_BASE) - +endif + # Upload the distribution and documentation ifneq "$(PublishLocation)" "" binary-dist :: publish-binary-dist endif .PHONY: publish-binary-dist -publish-binary-dist : - @for i in 0 1 2 3 4 5 6 7 8 9; do \ - echo "Try $$i: $(PublishCp) $(BIN_DIST_TARBALL) $(PublishLocation)/dist"; \ - if $(PublishCp) $(BIN_DIST_TARBALL) $(PublishLocation)/dist; then break; fi; \ +publish-binary-dist :: + @for f in $(PUBLISH_FILES); do \ + for i in 0 1 2 3 4 5 6 7 8 9; do \ + echo "Try $$i: $(PublishCp) $$f $(PublishLocation)/dist"; \ + if $(PublishCp) $$f $(PublishLocation)/dist; then break; fi; \ + done \ done - $(PublishCp) -r $(BIN_DIST_DIR)/share/html/* $(PublishLocation)/docs +ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +# On Windows, we cannot use absoluate pathnames to rsync, because they look +# like remote pathnames ("c:/foo/bar"). Also, the docs reside in doc/ +# rather than share/, due to prep-bin-dist-mingw. +publish-binary-dist :: + $(PublishCp) -r $(FPTOOLS_TOP)/$(BIN_DIST_NAME)/doc/html/* $(PublishLocation)/docs +else +publish-binary-dist :: + $(PublishCp) -r $(BIN_DIST_DIR)/share/html/* $(PublishLocation)/docs +endif binary-dist:: @echo "Mechanical and super-natty! Inspect the result and *if* happy; freeze, sell and get some sleep!" @@ -483,12 +517,12 @@ dist :: ifneq "$(PublishLocation)" "" dist :: @for i in 0 1 2 3 4 5 6 7 8 9; do \ - echo "Try $$i: $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)"; \ - if $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation); then break; fi\ + echo "Try $$i: $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)/dist"; \ + if $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)/dist; then break; fi\ done @for i in 0 1 2 3 4 5 6 7 8 9; do \ - echo "Try $$i: $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)"; \ - if $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation); then break; fi\ + echo "Try $$i: $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist"; \ + if $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist; then break; fi\ done endif