# -----------------------------------------------------------------------------
# Building libraries
-# XXX generate from $(TOP)/packages
-PACKAGES = \
- ghc-prim \
- integer-gmp \
- integer \
- base \
- filepath \
- array \
- bytestring \
- containers
-
-ifeq "$(Windows)" "YES"
-PACKAGES += Win32
-else
-PACKAGES += unix
-endif
-
-PACKAGES += \
- old-locale \
- old-time \
- time \
- directory \
- process \
- random \
- extensible-exceptions \
- haskell98 \
- hpc \
- pretty \
- syb \
- template-haskell \
- base3-compat \
- Cabal \
- mtl \
- utf8-string
-
-ifneq "$(Windows)" "YES"
-PACKAGES += terminfo
-endif
+define addPackage # args: $1 = package, $2 = condition
+ ifneq "$2" ""
+ ifeq "$$(CLEANING)" "YES"
+ PACKAGES += $1
+ else
+ ifeq $2
+ PACKAGES += $1
+ endif
+ endif
+ else
+ PACKAGES += $1
+ endif
+endef
-PACKAGES += haskeline
+$(eval $(call addPackage,ghc-prim))
+$(eval $(call addPackage,$(INTEGER_LIBRARY)))
+$(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,hpc))
+$(eval $(call addPackage,pretty))
+$(eval $(call addPackage,syb))
+$(eval $(call addPackage,template-haskell))
+$(eval $(call addPackage,base3-compat))
+$(eval $(call addPackage,Cabal))
+$(eval $(call addPackage,mtl))
+$(eval $(call addPackage,utf8-string))
+
+$(eval $(call addPackage,terminfo,($$(Windows),NO)))
+
+$(eval $(call addPackage,haskeline))
ifneq "$(BootingFromHc)" "YES"
PACKAGES_STAGE2 += \
endif
endif
+ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
+BUILD_DIRS += libraries/integer-gmp/gmp
+endif
+
BUILD_DIRS += \
- libraries/integer-gmp/gmp \
compiler \
$(GHC_HSC2HS_DIR) \
$(GHC_PKG_DIR) \
ghc_stage1_DISABLE = YES
endif
+ifneq "$(CLEANING)" "YES"
+ifeq "$(INTEGER_LIBRARY)" "integer-gmp"
+libraries/base_dist-install_CONFIGURE_OPTS += --flags=-integer-simple
+else
+ ifeq "$(INTEGER_LIBRARY)" "integer-simple"
+ libraries/base_dist-install_CONFIGURE_OPTS += --flags=integer-simple
+ else
+$(error Unknown integer library: $(INTEGER_LIBRARY))
+ endif
+endif
+endif
+
ifneq "$(findstring $(phase),0 1 2 3)" ""
# In phases 0-3, we disable stage2-3, the full libraries and haddock
utils/haddock_dist_DISABLE = YES