+$(eval $(call addPackage,ghc-prim))
+ifeq "$(CLEANING)" "YES"
+$(eval $(call addPackage,integer-gmp))
+$(eval $(call addPackage,integer-simple))
+else
+$(eval $(call addPackage,$(INTEGER_LIBRARY)))
+endif
+$(eval $(call addPackage,base))
+$(eval $(call addPackage,filepath))
+$(eval $(call addPackage,array))
+$(eval $(call addPackage,bytestring))
+$(eval $(call addPackage,containers))
+
+$(eval $(call addPackage,Win32,($$(Windows),YES)))
+$(eval $(call addPackage,unix,($$(Windows),NO)))
+
+$(eval $(call addPackage,old-locale))
+$(eval $(call addPackage,old-time))
+$(eval $(call addPackage,time))
+$(eval $(call addPackage,directory))
+$(eval $(call addPackage,process))
+$(eval $(call addPackage,random))
+$(eval $(call addPackage,extensible-exceptions))
+$(eval $(call addPackage,haskell98))
+$(eval $(call addPackage,haskell2010))
+$(eval $(call addPackage,hpc))
+$(eval $(call addPackage,pretty))
+$(eval $(call addPackage,template-haskell))
+$(eval $(call addPackage,Cabal))
+$(eval $(call addPackage,binary))
+$(eval $(call addPackage,bin-package-db))
+$(eval $(call addPackage,mtl))
+$(eval $(call addPackage,utf8-string))
+$(eval $(call addPackage,xhtml))
+
+$(eval $(call addPackage,terminfo,($$(Windows),NO)))
+
+$(eval $(call addPackage,haskeline))
+
+$(foreach pkg,$(EXTRA_PACKAGES),$(eval $(call addPackage,$(pkg))))
+
+
+# ------------------- 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 \
+ dph/dph-prim-interface \
+ dph/dph-prim-seq \
+ dph/dph-prim-par \
+ dph/dph-seq \
+ dph/dph-par