X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc.mk;h=7f653d09561c2a00fdd4a62f0b777eb75c1f1e55;hb=3427b15accea102ff956c0363f08238aa0f5654e;hp=3781cb6bf77971c74ff26b6ead76ebae1e3d2b56;hpb=e0da731cc99c71a7c5c6abe20ede5145eda11475;p=ghc-hetmet.git diff --git a/ghc.mk b/ghc.mk index 3781cb6..7f653d0 100644 --- a/ghc.mk +++ b/ghc.mk @@ -34,7 +34,6 @@ # Tickets we can now close, or fix and close: # # * 1693 make distclean -# * 3173 make install with DESTDIR # Possible cleanups: # @@ -140,9 +139,6 @@ endif include rules/all-target.mk include rules/clean-target.mk -# Helper macro -include rules/mkdep.mk - # ----------------------------------------------------------------------------- # The inplace tree @@ -187,7 +183,6 @@ $(foreach way,$(ALL_WAYS),\ # ----------------------------------------------------------------------------- # Compilation Flags -include rules/distdir-opts.mk include rules/distdir-way-opts.mk # ----------------------------------------------------------------------------- @@ -600,10 +595,12 @@ libraries/base3-compat_dist-install_HC_OPTS += -XPackageImports .PHONY: stage1_libs stage1_libs : $(ALL_STAGE1_LIBS) +ifeq "$(HADDOCK_DOCS)" "YES" libraries/index.html: $(ALL_HADDOCK_FILES) cd libraries && sh gen_contents_index --inplace $(eval $(call all-target,library_doc_index,libraries/index.html)) INSTALL_LIBRARY_DOCS += libraries/*.html libraries/*.gif libraries/*.css libraries/*.js +endif ifeq "$(CHECK_PACKAGES)" "YES" all: check_packages @@ -778,8 +775,10 @@ INSTALLED_PACKAGE_CONF=$(DESTDIR)$(topdir)/package.conf # Install packages in the right order, so that ghc-pkg doesn't complain. # Also, install ghc-pkg first. ifeq "$(Windows)" "NO" +INSTALLED_GHC_REAL=$(DESTDIR)$(ghclibexecdir)/ghc-stage2 INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(ghclibexecdir)/ghc-pkg else +INSTALLED_GHC_REAL=$(DESTDIR)$(bindir)/ghc-stage2.exe INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe endif @@ -793,21 +792,26 @@ install_packages: libffi/package.conf.install rts/package.conf.install "$(INSTALLED_GHC_PKG_REAL)" --force --global-conf $(INSTALLED_PACKAGE_CONF) update rts/package.conf.install $(foreach p, $(PACKAGES) $(PACKAGES_STAGE2),\ "$(GHC_CABAL_INPLACE)" install \ + $(INSTALLED_GHC_REAL) \ $(INSTALLED_GHC_PKG_REAL) \ - $(INSTALLED_PACKAGE_CONF) \ + $(DESTDIR)$(topdir) \ libraries/$p dist-install \ '$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' &&) true "$(GHC_CABAL_INPLACE)" install \ + $(INSTALLED_GHC_REAL) \ $(INSTALLED_GHC_PKG_REAL) \ - $(INSTALLED_PACKAGE_CONF) \ + $(DESTDIR)$(topdir) \ compiler stage2 \ '$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' # ----------------------------------------------------------------------------- # Binary distributions -# This is split in 2 because of the shell argument limit -$(eval $(call bindist,root1,\ +ifneq "$(CLEANING)" "YES" +# This rule seems to hold some files open on Windows which prevents +# cleaning, perhaps due to the $(wildcard). + +$(eval $(call bindist,.,\ LICENSE \ configure config.sub config.guess install-sh \ extra-gcc-opts.in \ @@ -824,11 +828,10 @@ $(eval $(call bindist,root1,\ $(INSTALL_LIBEXECS) \ $(INSTALL_LIBEXEC_SCRIPTS) \ $(INSTALL_TOPDIRS) \ + $(INSTALL_TOPDIR_SCRIPTS) \ $(INSTALL_BINS) \ $(INSTALL_DOCS) \ $(INSTALL_LIBRARY_DOCS) \ - )) -$(eval $(call bindist,root2,\ $(addsuffix /*,$(INSTALL_HTML_DOC_DIRS)) \ docs/index.html \ $(wildcard libraries/*/dist-install/doc/) \ @@ -840,6 +843,7 @@ $(eval $(call bindist,root2,\ bindist.mk \ libraries/dph/LICENSE \ )) +endif # mk/project.mk gets an absolute path, so we manually include it in # the bindist with a relative path @@ -977,7 +981,7 @@ publish-sdist : $(call nTimes,10,$(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist) endif -ifeq "$(GhcUnregisterised)" "YES" +ifeq "$(BootingFromHc)" "YES" SRC_CC_OPTS += -DNO_REGS -DUSE_MINIINTERPRETER -D__GLASGOW_HASKELL__=$(ProjectVersionInt) endif @@ -991,20 +995,25 @@ CLEAN_FILES += utils/ghc-pwd/ghc-pwd.exe CLEAN_FILES += utils/ghc-pwd/ghc-pwd.hi CLEAN_FILES += utils/ghc-pwd/ghc-pwd.o CLEAN_FILES += libraries/bootstrapping.conf -CLEAN_FILES += libraries/integer-gmp/gmp/gmp.h -CLEAN_FILES += libraries/integer-gmp/gmp/libgmp.a CLEAN_FILES += libraries/integer-gmp/cbits/GmpDerivedConstants.h CLEAN_FILES += libraries/integer-gmp/cbits/mkGmpDerivedConstants -clean : clean_files clean_libraries clean_gmp +clean : clean_files clean_libraries .PHONY: clean_files clean_files : "$(RM)" $(RM_OPTS) $(CLEAN_FILES) +ifneq "$(NO_CLEAN_GMP)" "YES" +CLEAN_FILES += libraries/integer-gmp/gmp/gmp.h +CLEAN_FILES += libraries/integer-gmp/gmp/libgmp.a + +clean : clean_gmp +.PHONY: clean_gmp clean_gmp: "$(RM)" $(RM_OPTS) -r libraries/integer-gmp/gmp/objs "$(RM)" $(RM_OPTS) -r libraries/integer-gmp/gmp/gmpbuild +endif .PHONY: clean_libraries clean_libraries: $(patsubst %,clean_libraries/%_dist-install,$(PACKAGES) $(PACKAGES_STAGE2))