X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc.mk;h=b217ce7c852aadcac676bd66d37ee66284ca84a3;hb=c6144cbcdb49ced6aa8746f584e045e63e24b168;hp=7b29d6d224c43e1ef10515b78fc4077f09daa4ba;hpb=523ecf30d28c4a42090e59dfab5d05c1db9deaef;p=ghc-hetmet.git diff --git a/ghc.mk b/ghc.mk index 7b29d6d..b217ce7 100644 --- a/ghc.mk +++ b/ghc.mk @@ -494,6 +494,7 @@ endif BUILD_DIRS += \ docs/users_guide \ + docs/ext-core \ docs/man \ libraries/Cabal/doc \ $(GHC_UNLIT_DIR) \ @@ -624,16 +625,31 @@ include $(patsubst %, %/ghc.mk, $(BUILD_DIRS)) # We need -fno-warn-deprecated-flags to avoid failure with -Werror GhcLibHcOpts += -fno-warn-deprecated-flags -ifeq "$(ghc_ge_609)" "YES" GhcBootLibHcOpts += -fno-warn-deprecated-flags -endif + +# ---------------------------------------------- +# Per-package compiler flags +# +# If you want to add per-package compiler flags, this +# is the place to do it. Do it like this for package +# +# libraries/_dist-boot_HC_OPTS += -Wwarn +# libraries/_dist-install_HC_OPTS += -Wwarn + # Add $(GhcLibHcOpts) to all library builds $(foreach pkg,$(PACKAGES) $(PACKAGES_STAGE2),$(eval libraries/$(pkg)_dist-install_HC_OPTS += $$(GhcLibHcOpts))) # XXX Hack; remove this +# Use -Wwarn for dph $(foreach pkg,$(PACKAGES_STAGE2),$(eval libraries/$(pkg)_dist-install_HC_OPTS += -Wwarn)) +# XXX Hack; remove this +# Use -Wwarn for 'binary' becuase it has redundant UNPACK pragmas +libraries/binary_dist-install_HC_OPTS += -Wwarn +libraries/binary_dist-boot_HC_OPTS += -Wwarn + +# ---------------------------------------------- # A useful pseudo-target .PHONY: stage1_libs stage1_libs : $(ALL_STAGE1_LIBS) @@ -759,7 +775,7 @@ TAGS: TAGS_compiler install: install_packages install_libs install_libexecs install_headers \ install_libexec_scripts install_bins install_docs \ - install_topdirs install_topdir_scripts + install_topdirs install_bins: $(INSTALL_BINS) $(INSTALL_DIR) "$(DESTDIR)$(bindir)" @@ -808,12 +824,6 @@ else "$(MV)" "$(DESTDIR)$(ghclibexecdir)/ghc-stage2" "$(DESTDIR)$(ghclibexecdir)/ghc" endif -install_topdir_scripts: $(INSTALL_TOPDIR_SCRIPTS) - $(INSTALL_DIR) "$(DESTDIR)$(topdir)" - for i in $(INSTALL_TOPDIR_SCRIPTS); do \ - $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i "$(DESTDIR)$(topdir)"; \ - done - install_topdirs: $(INSTALL_TOPDIRS) $(INSTALL_DIR) "$(DESTDIR)$(topdir)" for i in $(INSTALL_TOPDIRS); do \ @@ -862,7 +872,11 @@ INSTALLED_GHC_REAL=$(DESTDIR)$(bindir)/ghc.exe INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe endif -INSTALLED_PACKAGES = $(filter-out haskeline mtl terminfo utf8-string,$(PACKAGES)) +INSTALLED_PACKAGES := $(filter-out haskeline mtl terminfo utf8-string,$(PACKAGES)) +ifeq "$(InstallExtraPackages)" "NO" +INSTALLED_PACKAGES := $(filter-out $(EXTRA_PACKAGES), $(INSTALLED_PACKAGES)) +endif + HIDDEN_PACKAGES = binary define set_INSTALL_DISTDIR @@ -919,6 +933,7 @@ $(eval $(call bindist,.,\ $(INPLACE_BIN)/ghc-cabal \ utils/ghc-pwd/ghc-pwd \ $(BINDIST_WRAPPERS) \ + $(BINDIST_PERL_SOURCES) \ $(BINDIST_LIBS) \ $(BINDIST_HI) \ $(BINDIST_EXTRAS) \ @@ -931,7 +946,6 @@ $(eval $(call bindist,.,\ $(INSTALL_LIBEXECS) \ $(INSTALL_LIBEXEC_SCRIPTS) \ $(INSTALL_TOPDIRS) \ - $(INSTALL_TOPDIR_SCRIPTS) \ $(INSTALL_BINS) \ $(INSTALL_MANPAGES) \ $(INSTALL_DOCS) \ @@ -940,6 +954,7 @@ $(eval $(call bindist,.,\ docs/index.html \ compiler/stage2/doc \ $(wildcard libraries/*/dist-install/doc/) \ + $(wildcard libraries/*/*/dist-install/doc/) \ $(filter-out extra-gcc-opts,$(INSTALL_LIBS)) \ $(filter-out %/project.mk mk/config.mk %/mk/install.mk,$(MAKEFILE_LIST)) \ mk/project.mk \ @@ -983,18 +998,30 @@ else "$(ISCC)" /O. /Fbindistprep/$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss endif -nTimes = set -e; for i in `seq 1 $(1)`; do echo Try "$$i: $(2)"; if $(2); then break; fi; done +# tryTimes tries to run its third argument multiple times, until it +# succeeds. Don't call it directly; call try10Times instead. +# The first and second argument to tryTimes are lists of values. +# The length of the first argument is the number of times we have +# already tried. The length of the second argument is the number more +# times we will try. +tryTimes = $(if $2, \ + { echo 'Try $(words x $1): $3' ; $3 ; } || \ + $(call tryTimes,x $1,$(wordlist 2,$(words $2),$2),$3), \ + ) + +# Try to run the argument 10 times. If all 10 fail, fail. +try10Times = $(call tryTimes,,x x x x x x x x x x,$1) { echo Failed; false; } .PHONY: publish-binary-dist publish-binary-dist: - $(call nTimes,10,$(PublishCp) $(BIN_DIST_TAR_BZ2) $(PublishLocation)/dist) + $(call try10Times,$(PublishCp) $(BIN_DIST_TAR_BZ2) $(PublishLocation)/dist) ifeq "$(mingw32_TARGET_OS)" "1" - $(call nTimes,10,$(PublishCp) $(WINDOWS_INSTALLER) $(PublishLocation)/dist) + $(call try10Times,$(PublishCp) $(WINDOWS_INSTALLER) $(PublishLocation)/dist) endif .PHONY: publish-docs publish-docs: - $(call nTimes,10,$(PublishCp) -r bindisttest/installed/share/doc/ghc/* $(PublishLocation)/docs) + $(call try10Times,$(PublishCp) -r bindisttest/installed/share/doc/ghc/* $(PublishLocation)/docs) # ----------------------------------------------------------------------------- # Source distributions @@ -1082,7 +1109,7 @@ sdist-manifest : $(SRC_DIST_TARBALL) # over SSH. ifneq "$(PublishLocation)" "" publish-sdist : - $(call nTimes,10,$(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist) + $(call try10Times,$(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist) endif ifeq "$(BootingFromHc)" "YES"