X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=5bce2e64e970933c57f23d81c9f072422e0299b4;hp=ff8adb72aa117c56dcd7a9b835d25b5f68762a1d;hb=051f5e48f6709244dbf73306519666b060dec42d;hpb=b39e447d1c0fcf612d51342f8e270973edfe7e28 diff --git a/Makefile b/Makefile index ff8adb7..5bce2e6 100644 --- a/Makefile +++ b/Makefile @@ -291,30 +291,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 +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)"; \ - 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 +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