X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=449136969925b77d62b1cf389e41c292976f4f22;hp=ff8adb72aa117c56dcd7a9b835d25b5f68762a1d;hb=430453c5131592b6147a80202dc5f7fbe3f3d5fd;hpb=b39e447d1c0fcf612d51342f8e270973edfe7e28 diff --git a/Makefile b/Makefile index ff8adb7..4491369 100644 --- a/Makefile +++ b/Makefile @@ -135,6 +135,7 @@ endif # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too 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); do \ echo "------------------------------------------------------------------------"; \ @@ -248,10 +249,6 @@ BINARY_DIST_PRE_RULES=$(foreach d,$(BinDistDirs),binary-dist-pre-$d) binary-dist:: binary-dist-pre $(BINARY_DIST_PRE_RULES) binary-dist-pre:: -ifeq "$(BIN_DIST)" "" - @echo "WARNING: To run the binary-dist target, you need to set BIN_DIST=1 in mk/build.mk" - @false -endif -rm -rf $(BIN_DIST_DIR) -$(RM) $(BIN_DIST_DIR).tar.gz $(MKDIRHIER) $(BIN_DIST_DIR)/bin/$(TARGETPLATFORM) @@ -291,30 +288,43 @@ 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 # via build.mk or the 'make' command-line. +# +# If BINDIST_DOC_WAYS is set, use that +# If XMLDocWays is set, use that +# Otherwise, figure out what we can build based on configure results ifndef BINDIST_DOC_WAYS +ifneq "$(XMLDocWays)" "" BINDIST_DOC_WAYS = $(XMLDocWays) - -# ifneq "$(XSLTPROC)" "" -# BINDIST_DOC_WAYS = html -# ifneq "$(FOP)" "" -# BINDIST_DOC_WAYS += ps pdf -# else -# ifneq "$(PDFXMLTEX)" "" -# BINDIST_DOC_WAYS += pdf -# endif -# ifneq "$(XMLTEX)" "" -# ifneq "$(DVIPS)" "" -# BINDIST_DOC_WAYS += ps -# endif # DVIPS -# endif # XMLTEX -# endif # FOP -# endif # XSLTPROC +else +ifneq "$(XSLTPROC)" "" +BINDIST_DOC_WAYS = html +ifneq "$(FOP)" "" +BINDIST_DOC_WAYS += ps pdf +else +ifneq "$(PDFXMLTEX)" "" +BINDIST_DOC_WAYS += pdf +endif +ifneq "$(XMLTEX)" "" +ifneq "$(DVIPS)" "" +BINDIST_DOC_WAYS += ps +endif # DVIPS +endif # XMLTEX +endif # FOP +endif # XSLTPROC +endif # XMLDocWays endif # BINDIST_DOC_WAYS @@ -388,19 +398,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)"; \ - if $(PublishCp) $(BIN_DIST_TARBALL) $(PublishLocation); 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!" @@ -477,12 +514,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