just-makefiles:
@:
+ifneq "$(CLEANING)" "YES"
+CLEANING = NO
+endif
+
# -----------------------------------------------------------------------------
# Misc GNU make utils
# -----------------------------------------------------------------------------
# Utility definitions
+include rules/trace.mk
include rules/make-command.mk
# -----------------------------------------------------------------------------
include rules/build-package-way.mk
include rules/haddock.mk
include rules/tags-package.mk
+include rules/extra-packages.mk
# -----------------------------------------------------------------------------
# Registering hand-written package descriptions (used in libffi and rts)
# -----------------------------------------------------------------------------
# Building libraries
-define addPackage # args: $1 = package, $2 = condition
- ifneq "$2" ""
+define addPackageGeneral
+# args: $1 = PACKAGES variable, $2 = package, $3 = condition
+ ifeq "$3" ""
+ $1 += $2
+ else
ifeq "$$(CLEANING)" "YES"
- PACKAGES += $1
+ $1 += $2
else
- ifeq $2
- PACKAGES += $1
+ ifeq $3
+ $1 += $2
endif
endif
- else
- PACKAGES += $1
endif
endef
+define addPackage # args: $1 = package, $2 = condition
+$(call addPackageGeneral,PACKAGES,$1,$2)
+endef
+
+define addPackage2 # args: $1 = package, $2 = condition
+$(call addPackageGeneral,PACKAGES_STAGE2,$1,$2)
+endef
+
+INTREE_ONLY_PACKAGES := haskeline mtl terminfo utf8-string xhtml
+
+$(foreach p,$(INTREE_ONLY_PACKAGES),$(eval libraries/$p_dist-install_HADDOCK_ME = NO))
+
$(eval $(call addPackage,ghc-prim))
ifeq "$(CLEANING)" "YES"
$(eval $(call addPackage,integer-gmp))
$(eval $(call addPackage,haskeline))
-$(foreach pkg,$(EXTRA_PACKAGES),$(eval $(call addPackage,$(pkg))))
+$(eval $(call extra-packages))
-ifneq "$(BootingFromHc)" "YES"
+# -------------------------------------------------------
-ifneq "$(CLEANING) $(GhcProfiled)" "NO YES"
-# DPH uses Template Haskell, and Template Haskell doesn't work
-# with a profiled compiler. So if stage-2 is profile, don't build DPH
-PACKAGES_STAGE2 += \
- dph/dph-base \
- dph/dph-prim-interface \
- dph/dph-prim-seq \
- dph/dph-prim-par \
- dph/dph-seq \
- dph/dph-par
-endif
-endif
# We assume that the stage0 compiler has a suitable bytestring package,
# so we don't have to include it below.
#
# The rest : libraries/*/dist-install, compiler/stage2, ghc/stage2
-BUILD_DIRS =
-
ifneq "$(BINDIST)" "YES"
BUILD_DIRS += \
$(GHC_MKDIRHIER_DIR)
$(patsubst %, libraries/%, $(PACKAGES))
endif
-ifneq "$(BootingFromHc)" "YES"
-BUILD_DIRS += \
- libraries/dph
-endif
-
ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
BUILD_DIRS += libraries/integer-gmp/gmp
endif
$(GHC_TOUCHY_DIR)
endif
+ifneq "$(BINDIST)" "YES"
+BUILD_DIRS += \
+ utils/mkUserGuidePart
+endif
+
BUILD_DIRS += utils/count_lines
BUILD_DIRS += utils/compare_sizes
utils/hpc_dist_DISABLE = YES
utils/hsc2hs_dist-install_DISABLE = YES
utils/ghc-pkg_dist-install_DISABLE = YES
+utils/mkUserGuidePart_dist_DISABLE = YES
utils/compare_sizes_dist_DISABLE = YES
compiler_stage2_DISABLE = YES
compiler_stage3_DISABLE = YES
GHCI_LIBS = $(foreach lib,$(PACKAGES),$(libraries/$(lib)_dist-install_GHCI_LIB)) \
$(compiler_stage2_GHCI_LIB)
+ifeq "$(UseArchivesForGhci)" "NO"
ghc/stage2/build/tmp/$(ghc_stage2_PROG) : $(GHCI_LIBS)
+endif
endif
INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe
endif
-INSTALLED_PACKAGES := $(filter-out haskeline mtl terminfo utf8-string xhtml,$(PACKAGES))
+INSTALLED_PACKAGES := $(filter-out $(INTREE_ONLY_PACKAGES),$(PACKAGES))
ifeq "$(InstallExtraPackages)" "NO"
INSTALLED_PACKAGES := $(filter-out $(EXTRA_PACKAGES), $(INSTALLED_PACKAGES))
endif
INSTALL \
configure config.sub config.guess install-sh \
extra-gcc-opts.in \
+ packages \
Makefile \
mk/config.mk.in \
$(INPLACE_BIN)/mkdirhier \
libraries/gen_contents_index \
libraries/prologue.txt \
libraries/dph/LICENSE \
+ libraries/dph/ghc-packages \
+ libraries/dph/ghc-packages2 \
+ libraries/dph/ghc-stage2-package \
))
endif
# mk/project.mk gets an absolute path, so we manually include it in
unix-binary-dist-prep:
"$(RM)" $(RM_OPTS_REC) bindistprep/
"$(MKDIRHIER)" $(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 distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done
+ set -e; for i in packages 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 distrib/configure.ac distrib/README distrib/INSTALL; 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)