X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rules%2Fbuild-package-way.mk;h=c2849ce95fe6347ddf016c40aaa0ed19e474b2ef;hb=5775d5142da227d65fb86994d363eb16841ee642;hp=d829a001a19edba0c33037b827064894f7f81639;hpb=75d9236613acdcfa54deb81b12bd4546c31e7c9f;p=ghc-hetmet.git diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index d829a00..c2849ce 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -51,6 +51,17 @@ endif $1_$2_$3_NON_HS_OBJS = $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS) $1_$2_$3_ALL_OBJS = $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS) +# The quadrupled $'s here are because the _v_LIB variables aren't +# necessarily set when this part of the makefile is read. +# These deps aren't technically necessary in themselves, but they +# turn the dependencies of programs on libraries into transitive +# dependencies. +ifeq "$4" "0" +$$($1_$2_$3_LIB) : $$(foreach dep,$$($1_$2_DEP_NAMES),$$$$(libraries/$$(dep)_dist-boot_v_LIB)) +else +$$($1_$2_$3_LIB) : $$(foreach dep,$$($1_$2_DEP_NAMES),$$$$(libraries/$$(dep)_dist-install_v_LIB)) +endif + ifeq "$3" "dyn" # Link a dynamic library @@ -102,19 +113,22 @@ endif # Build the GHCi library ifeq "$3" "v" $1_$2_GHCI_LIB = $1/$2/build/HS$$($1_PACKAGE)-$$($1_$2_VERSION).$$($3_osuf) +ifeq "$$($1_$2_BUILD_GHCI_LIB)" "YES" # Don't put bootstrapping packages in the bindist ifneq "$4" "0" -ifeq "$$(UseArchivesForGhci)" "NO" BINDIST_LIBS += $$($1_$2_GHCI_LIB) endif endif $$($1_$2_GHCI_LIB) : $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) $$($1_$2_EXTRA_OBJS) "$$(LD)" -r -o $$@ $$(EXTRA_LD_OPTS) $$($1_$2_$3_HS_OBJS) $$($1_$2_$3_CMM_OBJS) $$($1_$2_$3_C_OBJS) $$($1_$2_$3_S_OBJS) `$$($1_$2_$3_MKSTUBOBJS)` $$($1_$2_EXTRA_OBJS) -ifeq "$$(UseArchivesForGhci)" "NO" +ifeq "$$($1_$2_BUILD_GHCI_LIB)" "YES" +# Don't bother making ghci libs for bootstrapping packages +ifneq "$4" "0" $(call all-target,$1_$2,$$($1_$2_GHCI_LIB)) endif endif +endif endef