X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=c6f54f74fd4933739d1c9af62cffeb367fe82fd9;hp=ec0c901bfe412c7441b192418ba534e4b70bbe06;hb=269ade3ebc4b3a7245825281e50e76e0020c2ce6;hpb=2506fbadd58a464e4c6d63375b909d853b99b087 diff --git a/Makefile b/Makefile index ec0c901..c6f54f7 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_BUILD = includes rts compat compiler docs utils driver +SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver else -SUBDIRS_BUILD = includes compat utils driver docs compiler rts +SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts endif -SUBDIRS_INSTALL = includes compat utils driver docs rts libraries compiler +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. @@ -120,6 +120,28 @@ bootstrap2 : stage1 bootstrap3 : bootstrap2 $(MAKE) stage3 +ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" +ifneq "$(WhatGccIsCalled)" "" +all :: stamp.inplace-gcc-lib + +.PHONY: stamp.inplace-gcc-lib + +# This is a hack to make Cabal able to find ld when we run tests with +# the inplace ghc. We should probably install all the gcc stuff in our +# tree somewhere, and then have install copy it from there rather than +# from the filesystem. +stamp.inplace-gcc-lib: + $(RM) -r compiler/gcc-lib + mkdir compiler/gcc-lib + cp $(GccDir)ld.exe compiler/gcc-lib + touch $@ + +clean :: + $(RM) -r compiler/gcc-lib + $(RM) -f inplace-gcc-lib +endif +endif + all :: bootstrap # ----------------------------------------------------------------------------- @@ -137,7 +159,7 @@ endif 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_INSTALL); do \ + for i in $(SUBDIRS); do \ echo "------------------------------------------------------------------------"; \ echo "== $(MAKE) $@ $(MFLAGS);"; \ echo " in $(shell pwd)/$$i"; \ @@ -177,9 +199,14 @@ install :: endif endif +# Install gcc-extra-opts +install :: + @$(INSTALL_DIR) $(libdir) + $(INSTALL_DATA) $(INSTALL_OPTS) extra-gcc-opts $(libdir) + install-docs :: @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ - for i in $(SUBDIRS_INSTALL); do \ + for i in $(SUBDIRS); do \ echo "------------------------------------------------------------------------"; \ echo "== $(MAKE) $@ $(MFLAGS);"; \ echo " in $(shell pwd)/$$i"; \ @@ -211,8 +238,6 @@ install-docs :: # binary-dist is a GHC addition for binary distributions # -BIN_DIST_TARBALL=ghc-$(ProjectVersion)-$(TARGETPLATFORM).tar.bz2 - binary-dist:: -rm -rf $(BIN_DIST_DIR) -$(RM) $(BIN_DIST_DIR).tar.gz @@ -225,6 +250,10 @@ binary-dist:: binary-dist:: cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw +binary-dist:: + $(MKDIRHIER) $(BIN_DIST_DIR)/icons + cp distrib/hsicon.ico $(BIN_DIST_DIR)/icons + else BinDistDirs = includes compiler docs rts @@ -236,6 +265,7 @@ BIN_DIST_TOP= distrib/Makefile \ ANNOUNCE \ LICENSE \ install-sh \ + extra-gcc-opts.in \ config.guess \ config.sub \ aclocal.m4 @@ -251,7 +281,8 @@ binary-dist:: binary-dist-pre binary-dist-pre:: $(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/package.mk' > $(BIN_DIST_DIR)/mk/target.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/ @@ -261,6 +292,7 @@ binary-dist-pre:: $(MKDIRHIER) $(BIN_DIST_DIR)/share binary-dist:: + $(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 @@ -292,12 +324,6 @@ binary-dist:: $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac ( cd $(BIN_DIST_DIR); autoreconf ) -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 @@ -371,7 +397,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) @@ -432,11 +458,11 @@ SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME) # # Files to include in source distributions # -SRC_DIST_DIRS += mk docs distrib $(filter-out docs distrib,$(SUBDIRS_INSTALL)) +SRC_DIST_DIRS += mk docs distrib bindisttest $(filter-out docs distrib,$(SUBDIRS)) SRC_DIST_FILES += \ configure.ac config.guess config.sub configure \ aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \ - ghc.spec.in VERSION + ghc.spec.in extra-gcc-opts.in VERSION boot # ----------------------------------------------------------------------------- # Source distributions @@ -536,6 +562,9 @@ MAINTAINER_CLEAN_FILES += VERSION extraclean:: $(RM) -rf autom4te.cache +clean distclean :: + $(MAKE) -C bindisttest $@ + # ----------------------------------------------------------------------------- # Turn off target.mk's rules for 'all', 'boot' and 'install'.