# Tickets we can now close, or fix and close:
#
# * 1693 make distclean
-# * 3173 make install with DESTDIR
# Possible cleanups:
#
include rules/all-target.mk
include rules/clean-target.mk
-# Helper macro
-include rules/mkdep.mk
-
# -----------------------------------------------------------------------------
# The inplace tree
# -----------------------------------------------------------------------------
# Compilation Flags
-include rules/distdir-opts.mk
include rules/distdir-way-opts.mk
# -----------------------------------------------------------------------------
.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
# 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
"$(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 \
$(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/) \
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
$(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
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))