X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=a2337f007d7356a383a8d5306b5599ea5b843be1;hp=af432d31ecb4232844883c13c7e23942b543f348;hb=8a2809c29de9f23eba7ca682b48390033a9d40f6;hpb=79b5a2cb4b9ed5fe41a05fa2ec98bd1f83971daf diff --git a/Makefile b/Makefile index af432d3..a2337f0 100644 --- 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_NOLIB = includes rts compat compiler docs utils driver +SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver else -SUBDIRS_NOLIB = includes compat utils driver docs compiler rts +SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts endif -SUBDIRS = $(SUBDIRS_NOLIB) libraries +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. @@ -85,7 +85,7 @@ check-packages : stage1 : check-packages $(MAKE) -C utils/mkdependC boot @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ - for i in $(SUBDIRS_NOLIB); do \ + for i in $(SUBDIRS_BUILD); do \ echo "------------------------------------------------------------------------"; \ echo "== $(MAKE) boot $(MFLAGS);"; \ echo " in $(shell pwd)/$$i"; \ @@ -93,7 +93,7 @@ stage1 : check-packages $(MAKE) --no-print-directory -C $$i $(MFLAGS) boot; \ if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \ done; \ - for i in $(SUBDIRS_NOLIB); do \ + for i in $(SUBDIRS_BUILD); do \ echo "------------------------------------------------------------------------"; \ echo "== $(MAKE) all $(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 \ @@ -232,35 +246,28 @@ endif .PHONY: binary-dist-pre% binary-dist binary-pack -BINARY_DIST_PRE_RULES=$(foreach d,$(BinDistDirs),binary-dist-pre-$d) - -binary-dist:: binary-dist-pre $(BINARY_DIST_PRE_RULES) +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 echo 'include $$(TOP)/mk/recurse.mk' >> $(BIN_DIST_DIR)/mk/target.mk echo '' > $(BIN_DIST_DIR)/mk/compat.mk + cp mk/package.mk $(BIN_DIST_DIR)/mk/ cp mk/install.mk $(BIN_DIST_DIR)/mk/ cp mk/recurse.mk $(BIN_DIST_DIR)/mk/ $(MKDIRHIER) $(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) $(MKDIRHIER) $(BIN_DIST_DIR)/share -$(BINARY_DIST_PRE_RULES): binary-dist-pre-%: - $(MAKE) -C $* $(MFLAGS) $(INSTALL_STAGE) install \ - prefix=$(BIN_DIST_DIR) \ - exec_prefix=$(BIN_DIST_DIR) \ - bindir=$(BIN_DIST_DIR)/bin/$(TARGETPLATFORM) \ - libdir=$(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) \ - libexecdir=$(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) \ - datadir=$(BIN_DIST_DIR)/share - binary-dist:: - $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES - $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES + $(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 + $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES + $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES + $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES VARFILE=$(BIN_DIST_DIR)/Makefile-vars.in @@ -276,6 +283,11 @@ binary-dist:: echo "package = ghc" >> $(VARFILE) echo "version = $(ProjectVersion)" >> $(VARFILE) 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 @@ -345,14 +357,8 @@ 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 binary-dist :: tar-binary-dist @@ -366,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)