-ifeq "$3" "0"
-$1/$2/build/tmp/$$($1_$2_PROG) : $$(foreach dep,$$($1_$2_DEP_NAMES),$$$$(libraries/$$(dep)_dist-boot_v_LIB))
-else
-$1/$2/build/tmp/$$($1_$2_PROG) : $$(foreach dep,$$($1_$2_DEP_NAMES),$$$$(libraries/$$(dep)_dist-install_v_LIB))
-endif
+$1/$2/build/tmp/$$($1_$2_PROG) : \
+ $$(foreach dep,$$($1_$2_DEP_NAMES),\
+ $$(if $$(filter ghc,$$(dep)),\
+ $(if $(filter 0,$3),$$(compiler_stage1_v_LIB),\
+ $(if $(filter 1,$3),$$(compiler_stage2_v_LIB),\
+ $(if $(filter 2,$3),$$(compiler_stage2_v_LIB),\
+ $$(error Bad build stage)))),\
+ $$$$(libraries/$$(dep)_dist-$(if $(filter 0,$3),boot,install)_v_LIB)))