$(foreach pkg,$(EXTRA_PACKAGES),$(eval $(call addPackage,$(pkg))))
-ifneq "$(BootingFromHc)" "YES"
-ifneq "$(CLEANING) $(GhcProfiled)" "NO 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 ---------------
+DPH_PACKAGES = dph/dph-base \
dph/dph-prim-interface \
dph/dph-prim-seq \
dph/dph-prim-par \
dph/dph-seq \
dph/dph-par
-endif
-endif
+ifneq "$(BootingFromHc)" "YES"
+ifeq "$(CLEANING)" "YES"
+# If we are cleaning we must add DPH packages regardless,
+# for reasons we now forget
+PACKAGES_STAGE2 += $(DPH_PACKAGES)
+else # not CLEANING
+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_PACKAGES)
+endif # GhcProfiled
+endif # Cleaning
+endif # BootingFromHc
+# -------------------------------------------------------
# We assume that the stage0 compiler has a suitable bytestring package,
# so we don't have to include it below.