Commit 6e9db312 authored by Ian Lynagh's avatar Ian Lynagh
Browse files

extra packages info is now read from packages file

rather than being repeated in the build system
parent 44af0575
......@@ -279,6 +279,7 @@ include rules/build-package.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)
......@@ -298,20 +299,29 @@ include rules/bindist.mk
# -----------------------------------------------------------------------------
# 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))
......@@ -355,28 +365,8 @@ $(eval $(call addPackage,terminfo,($$(Windows),NO)))
$(eval $(call addPackage,haskeline))
$(foreach pkg,$(EXTRA_PACKAGES),$(eval $(call addPackage,$(pkg))))
$(eval $(call extra-packages))
# ------------------- Adding DPH packaes ---------------
# The DPH packages are added when:
# * not BootingFromHc (they aren't necessary for bootstrapping), and
# * not GhcProfiled (they need TH, so can't be compiled by a -prof GHC), or
# * CLEANING: when cleaning we always enable everything
# if !BootingFromHc && (!GhcProfiled || CLEANING)
ifneq "$(BootingFromHc)" "YES"
ifneq "$(GhcProfiled) $(CLEANING)" "NO YES"
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 # BootingFromHc
# -------------------------------------------------------
......@@ -516,8 +506,6 @@ libraries/ghc-prim_dist-install_EXTRA_HADDOCK_SRCS = libraries/ghc-prim/dist-ins
#
# The rest : libraries/*/dist-install, compiler/stage2, ghc/stage2
BUILD_DIRS =
ifneq "$(BINDIST)" "YES"
BUILD_DIRS += \
$(GHC_MKDIRHIER_DIR)
......@@ -567,11 +555,6 @@ BUILD_DIRS += \
$(patsubst %, libraries/%, $(PACKAGES))
endif
ifneq "$(BootingFromHc)" "YES"
BUILD_DIRS += \
libraries/dph
endif
ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
BUILD_DIRS += libraries/integer-gmp/gmp
endif
......@@ -961,6 +944,7 @@ $(eval $(call bindist,.,\
INSTALL \
configure config.sub config.guess install-sh \
extra-gcc-opts.in \
packages \
Makefile \
mk/config.mk.in \
$(INPLACE_BIN)/mkdirhier \
......@@ -997,6 +981,9 @@ $(eval $(call bindist,.,\
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
......@@ -1007,7 +994,7 @@ BIN_DIST_MK = $(BIN_DIST_PREP_DIR)/bindist.mk
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)
......
# -----------------------------------------------------------------------------
#
# (c) 2010 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
#
# -----------------------------------------------------------------------------
define extra-packages
$$(foreach p,$$(patsubst libraries/%,%,$$(wildcard $$(shell grep '^[^ ]\+ \+\(dph\|extra\) \+[^ ]\+ \+[^ ]\+ \+[^ ]\+' packages | sed 's/ .*//'))),\
$$(eval BUILD_DIRS += libraries/$$p)\
$$(if $$(wildcard libraries/$$p/ghc-packages),\
$$(foreach q,$$(shell cat libraries/$$p/ghc-packages2),$$(eval $$(call extra-package,$$p,$$p/$$q))),\
$$(eval $$(call extra-package,$$p,$$p)))\
)
endef
define extra-package # $1 = package root, $2 = package
ifeq "$(wildcard libraries/$1/ghc-stage2-package)" ""
$$(eval $$(call addPackage,$2))
else
$$(eval $$(call addPackage2,$2))
endif
endef
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment