diff options
author | Ian Lynagh <igloo@earth.li> | 2013-03-12 22:12:38 +0100 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2013-03-13 01:26:40 +0100 |
commit | 56353e3da9d5718dfd25e25ccf61c78b25deefe8 (patch) | |
tree | eed1beccd2773f9660acba37cd9cd21c96e18925 /rules | |
parent | b6a11fa08805f5b25493c63bc8c6a3085d48bb65 (diff) | |
download | haskell-56353e3da9d5718dfd25e25ccf61c78b25deefe8.tar.gz |
Finish adding support for 2 DLLs in the ghc package; fixes #5987
Diffstat (limited to 'rules')
-rw-r--r-- | rules/build-package-way.mk | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index c67e25875e..8a0dc6409e 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -27,7 +27,6 @@ $1_$2_$3_LIB_NAME = libHS$$($1_PACKAGE)-$$($1_$2_VERSION)$$($3_libsuf) $1_$2_$3_LIB = $1/$2/build/$$($1_$2_$3_LIB_NAME) $$($1_PACKAGE)-$$($1_$2_VERSION)_$2_$3_LIB = $$($1_$2_$3_LIB) -ifeq "$3" "dyn" ifeq "$$(HostOS_CPP)" "mingw32" ifneq "$$($1_$2_dll0_HS_OBJS)" "" $1_$2_$3_LIB0_ROOT = HS$$($1_PACKAGE)-$$($1_$2_VERSION)-0$$($3_libsuf) @@ -35,7 +34,6 @@ $1_$2_$3_LIB0_NAME = lib$$($1_$2_$3_LIB0_ROOT) $1_$2_$3_LIB0 = $1/$2/build/$$($1_$2_$3_LIB0_NAME) endif endif -endif # Note [inconsistent distdirs] # hack: the DEPS_LIBS mechanism assumes that the distdirs for packages @@ -63,12 +61,19 @@ ifeq "$3" "dyn" ifeq "$$(HostOS_CPP)" "mingw32" $$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) ifneq "$$($1_$2_$3_LIB0)" "" - $$(call build-dll,$1,$2,$3,,$$($1_$2_dll0_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),$$($1_$2_$3_LIB0)) $$(call build-dll,$1,$2,$3,-L$1/$2/build -l$$($1_$2_$3_LIB0_ROOT),$$(filter-out $$($1_$2_dll0_HS_OBJS),$$($1_$2_$3_HS_OBJS)) $$($1_$2_$3_NON_HS_OBJS),$$@) else $$(call build-dll,$1,$2,$3,,$$($1_$2_$3_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),$$@) endif + +ifneq "$$($1_$2_$3_LIB0)" "" +$$($1_$2_$3_LIB) : $$($1_$2_$3_LIB0) +$$($1_$2_$3_LIB0) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) + $$(call build-dll,$1,$2,$3,,$$($1_$2_dll0_HS_OBJS) $$($1_$2_$3_NON_HS_OBJS),$$($1_$2_$3_LIB0)) +endif + else + $$($1_$2_$3_LIB) : $$($1_$2_$3_ALL_OBJS) $$(ALL_RTS_LIBS) $$($1_$2_$3_DEPS_LIBS) $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) $$($1_$2_$3_GHC_LD_OPTS) $$($1_$2_$3_ALL_OBJS) \ -shared -dynamic -dynload deploy \ @@ -92,6 +97,15 @@ else "$$(XARGS)" $$(XARGS_OPTS) "$$($1_$2_AR)" $$($1_$2_AR_OPTS) $$($1_$2_EXTRA_AR_ARGS) $$@ < $$@.contents endif $$(call removeFiles,$$@.contents) + +ifeq "$$(HostOS_CPP)" "mingw32" +ifneq "$$($1_$2_$3_LIB0)" "" +$$($1_$2_$3_LIB) : $$($1_$2_$3_LIB0) +$$($1_$2_$3_LIB0) : + $$(call cmd,$1_$2_AR) $$($1_$2_AR_OPTS) $$($1_$2_EXTRA_AR_ARGS) $$@ +endif +endif + endif $(call all-target,$1_$2,all_$1_$2_$3) |