X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc.mk;h=7f653d09561c2a00fdd4a62f0b777eb75c1f1e55;hb=3427b15accea102ff956c0363f08238aa0f5654e;hp=0f479e1b4005c056c96f3969bb55a4a994f51454;hpb=e8842f6d21227fe800a495197be0d9f34aa862cc;p=ghc-hetmet.git diff --git a/ghc.mk b/ghc.mk index 0f479e1..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: # @@ -184,7 +183,6 @@ $(foreach way,$(ALL_WAYS),\ # ----------------------------------------------------------------------------- # Compilation Flags -include rules/distdir-opts.mk include rules/distdir-way-opts.mk # ----------------------------------------------------------------------------- @@ -777,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 @@ -792,19 +792,25 @@ 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 +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 \ @@ -837,6 +843,7 @@ $(eval $(call bindist,.,\ 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 @@ -974,7 +981,7 @@ publish-sdist : $(call nTimes,10,$(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)/dist) endif -ifeq "$(BootingFromUnregisterisedHc)" "YES" +ifeq "$(BootingFromHc)" "YES" SRC_CC_OPTS += -DNO_REGS -DUSE_MINIINTERPRETER -D__GLASGOW_HASKELL__=$(ProjectVersionInt) endif @@ -988,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))