X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rules%2Fextra-packages.mk;h=1cef9adbbc9535b6deef8ad70652e9eb8097e192;hb=1851bb3cb6b5e9f0d413da7afc9b58c768888ecf;hp=2afa82ab3d00cc6b5c30f4b114cca916bbcc2f66;hpb=278d7e0f00011314d93426d997404d125095906b;p=ghc-hetmet.git diff --git a/rules/extra-packages.mk b/rules/extra-packages.mk index 2afa82a..1cef9ad 100644 --- a/rules/extra-packages.mk +++ b/rules/extra-packages.mk @@ -10,21 +10,35 @@ # # ----------------------------------------------------------------------------- +# 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/ .*//'))),\ - $$(eval BUILD_DIRS += libraries/$$p)\ +$$(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 -ifeq "$(wildcard libraries/$1/ghc-stage2-package)" "" $$(eval $$(call addPackage,$2)) -else -$$(eval $$(call addPackage2,$2)) -endif -endef +endef