Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

45 lines (39 sloc) 1.809 kb
# -----------------------------------------------------------------------------
#
# (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
#
# -----------------------------------------------------------------------------
# For each package P marked as "dph" or "extra" in $(TOP)/packages:
# if $(TOP)/libraries/P exists, then
# if $(TOP)/libraries/P/ghc-packages exists, then
# * add each package from $(TOP)/libraries/P/ghc-packages2 to the list of
# packages.
# Note: ghc-packages2 might have a different list from
# ghc-packages, this is to support dph which has some
# packages that are automatically derived from a single
# source by the build system).
# * add $(TOP)/libraries/P to $(BUILD_DIRS)
# This step is necessary in the case of dph, which has some
# build system code in libraries/dph/ghc.mk, but
# libraries/dph is not itself a package.
# else
# add P to the list of packages
define extra-packages
$$(foreach p,$$(patsubst libraries/%,%,$$(wildcard $$(shell grep '^[^ #][^ ]* \+\(dph\|extra\) \+[^ ]\+ \+[^ ]\+ \+[^ ]\+' packages | sed 's/ .*//'))),\
$$(if $$(wildcard libraries/$$p/ghc-packages),\
$$(eval BUILD_DIRS += libraries/$$p) \
$$(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
$(call trace, extra-package($1,$2))
EXTRA_PACKAGES += $2
$$(eval $$(call addPackage,$2))
endef
Jump to Line
Something went wrong with that request. Please try again.