X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc.mk;h=2821649269f39063ec29e32aeb33aa2e2b73e19b;hb=f872c90f3bedbc3b909cfc4c37cda0455dee917e;hp=719949bbdaf78c30bd8d5df1b0875bf3854505ca;hpb=845e0b2be11acbfb5a085f3fc12c6d66182c8812;p=ghc-hetmet.git diff --git a/ghc.mk b/ghc.mk index 719949b..2821649 100644 --- a/ghc.mk +++ b/ghc.mk @@ -85,6 +85,14 @@ default : all +# Catch make if it runs away into an infinite loop +ifeq "$(MAKE_RESTARTS)" "" +else ifeq "$(MAKE_RESTARTS)" "1" +else ifeq "$(MAKE_RESTARTS)" "2" +else +$(error Make has restarted itself $(MAKE_RESTARTS) times; is there a makefile bug?) +endif + # Just bring makefiles up to date: .PHONY: just-makefiles just-makefiles: @@ -865,28 +873,28 @@ endif # mk/project.mk gets an absolute path, so we manually include it in # the bindist with a relative path -BIN_DIST_MK = $(BIN_DIST_DIR)/bindist.mk +BIN_DIST_MK = $(BIN_DIST_PREP_DIR)/bindist.mk unix-binary-dist-prep: "$(RM)" $(RM_OPTS) -r bindistprep/* - mkdir $(BIN_DIST_DIR) - set -e; for i in LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace; do ln -s ../../$$i $(BIN_DIST_DIR)/; done + mkdir $(BIN_DIST_PREP_DIR) + set -e; for i in LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_MK) echo "LATEX_DOCS = $(LATEX_DOCS)" >> $(BIN_DIST_MK) echo "BUILD_DOCBOOK_HTML = $(BUILD_DOCBOOK_HTML)" >> $(BIN_DIST_MK) echo "BUILD_DOCBOOK_PS = $(BUILD_DOCBOOK_PS)" >> $(BIN_DIST_MK) echo "BUILD_DOCBOOK_PDF = $(BUILD_DOCBOOK_PDF)" >> $(BIN_DIST_MK) - ln -s ../../distrib/configure-bin.ac $(BIN_DIST_DIR)/configure.ac - cd $(BIN_DIST_DIR) && autoreconf - "$(RM)" $(RM_OPTS) $(BIN_DIST_TAR) + ln -s ../../distrib/configure-bin.ac $(BIN_DIST_PREP_DIR)/configure.ac + cd $(BIN_DIST_PREP_DIR) && autoreconf + "$(RM)" $(RM_OPTS) $(BIN_DIST_PREP_TAR) # h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source # tree then we want to include the real file, not a symlink to it - cd bindistprep && "$(TAR)" hcf - -T $(BIN_DIST_LIST) | bzip2 -c > $(BIN_DIST_TAR_BZ2) + cd bindistprep && "$(TAR)" hcf - -T ../$(BIN_DIST_LIST) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) windows-binary-dist-prep: "$(RM)" $(RM_OPTS) -r bindistprep/* - $(MAKE) prefix=$(BIN_DIST_DIR) install - "$(TAR)" cf - $(BIN_DIST_NAME) | bzip2 -c > $(BIN_DIST_TAR_BZ2) + $(MAKE) prefix=$(TOP)/$(BIN_DIST_PREP_DIR) install + cd bindistprep && "$(TAR)" cf - $(BIN_DIST_NAME) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) windows-installer: "$(ISCC)" /O. /F$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss