Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 49 lines (41 sloc) 1.9 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
# -----------------------------------------------------------------------------
#
# (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

# Collects some dirs containing ghc.mk files that we need to include:
BUILD_DIRS_EXTRA=

$$(foreach p,$$(patsubst libraries/%,%,$$(wildcard $$(shell grep '^[^ #][^ ]* \+\(dph\|extra\) \+[^ ]\+ \+[^ ]\+$$$$' packages | sed 's/ .*//'))),\
    $$(if $$(wildcard libraries/$$p/ghc-packages),\
        $$(eval BUILD_DIRS_EXTRA += 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
Something went wrong with that request. Please try again.