-ifneq "$(GhcProfiled)" "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 \
+# ------------------- 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 \