diff options
Diffstat (limited to 'rules')
-rw-r--r-- | rules/build-package-way.mk | 4 | ||||
-rw-r--r-- | rules/build-package.mk | 8 | ||||
-rw-r--r-- | rules/build-prog.mk | 7 |
3 files changed, 13 insertions, 6 deletions
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk index 225782162f..2dc43ff8b8 100644 --- a/rules/build-package-way.mk +++ b/rules/build-package-way.mk @@ -36,11 +36,15 @@ endif endif # Note [inconsistent distdirs] +# # hack: the DEPS_LIBS mechanism assumes that the distdirs for packages # that depend on each other are the same, but that is not the case for # ghc where we use stage1/stage2 rather than dist/dist-install. # Really we should use a consistent scheme for distdirs, but in the # meantime we work around it by defining ghc-<ver>_dist-install_way_LIB: +# +# A similar hack is applied to the PROGRAM_DEP_LIB mechanism in +# rules/build-package.mk. ifeq "$$($1_PACKAGE) $2" "ghc stage2" $$($1_$2_COMPONENT_ID)_dist-install_$3_LIB = $$($1_$2_$3_LIB) endif diff --git a/rules/build-package.mk b/rules/build-package.mk index b514102a21..688e1d2ca5 100644 --- a/rules/build-package.mk +++ b/rules/build-package.mk @@ -135,6 +135,14 @@ $$(foreach way,$$($1_$2_WAYS),$$(eval \ $1_$2_PROGRAM_DEP_LIB = $$($1_$2_v_LIB) $$($1_$2_dyn_LIB) $$($1_$2_COMPONENT_ID)_$2_PROGRAM_DEP_LIB = $$($1_$2_PROGRAM_DEP_LIB) +# See Note [inconsistent distdirs] in rules/build-package-way.mk. +ifeq "$$($1_PACKAGE) $2" "ghc stage1" +$$($1_$2_COMPONENT_ID)_dist-boot_PROGRAM_DEP_LIB = $$($1_$2_PROGRAM_DEP_LIB) +endif +ifeq "$$($1_PACKAGE) $2" "ghc stage2" +$$($1_$2_COMPONENT_ID)_dist-install_PROGRAM_DEP_LIB = $$($1_$2_PROGRAM_DEP_LIB) +endif + # C and S files are possibly built the "dyn" way. ifeq "$$(BuildSharedLibs)" "YES" $(call c-objs,$1,$2,dyn) diff --git a/rules/build-prog.mk b/rules/build-prog.mk index 52036c6041..2a2049bb3f 100644 --- a/rules/build-prog.mk +++ b/rules/build-prog.mk @@ -190,12 +190,7 @@ ifneq "$$(BINDIST)" "YES" # necessarily set when this part of the makefile is read $1/$2/build/tmp/$$($1_$2_PROG) $1/$2/build/tmp/$$($1_$2_PROG).dll : \ $$(foreach dep,$$($1_$2_DEP_COMPONENT_IDS),\ - $$(if $$(filter ghc%,$$(dep)),\ - $(if $(filter 0,$3),$$(compiler_stage1_PROGRAM_DEP_LIB),\ - $(if $(filter 1,$3),$$(compiler_stage2_PROGRAM_DEP_LIB),\ - $(if $(filter 2,$3),$$(compiler_stage2_PROGRAM_DEP_LIB),\ - $$(error Bad build stage)))),\ - $$$$($$(dep)_dist-$(if $(filter 0,$3),boot,install)_PROGRAM_DEP_LIB))) + $$$$($$(dep)_dist-$(if $(filter 0,$3),boot,install)_PROGRAM_DEP_LIB)) $1_$2_PROG_NEEDS_C_WRAPPER = NO $1_$2_PROG_INPLACE = $$($1_$2_PROG) |