X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fsub-makefile.mk;h=caeefa6c4acc5f2a80ba05c9c695b44b9759dc44;hp=1d41bd101a94c622e951c90fc95662d24d615c13;hb=a0c8fa4159e95be94474dd18b21e6c5fc35362ae;hpb=61ef1764bf342f90480602770b43ec3ae768f7f1 diff --git a/mk/sub-makefile.mk b/mk/sub-makefile.mk index 1d41bd1..caeefa6 100644 --- a/mk/sub-makefile.mk +++ b/mk/sub-makefile.mk @@ -14,21 +14,44 @@ TOPMAKE = $(MAKE) -C $(TOP) -default : - +$(TOPMAKE) all_$(dir) +default: all + +fast: all + +FAST_MAKE_OPTS =\ + $(dir)_dist_NO_BUILD_DEPS=YES \ + $(dir)_dist-boot_NO_BUILD_DEPS=YES \ + $(dir)_dist-install_NO_BUILD_DEPS=YES \ + OMIT_PHASE_1=YES OMIT_PHASE_2=YES OMIT_PHASE_3=YES + +ifneq "$(filter fast,$(MAKECMDGOALS))" "" +EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS) +else +ifeq "$(FAST)" "YES" +EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS) +endif +endif # We must not execute multiple recursive invocations of make in parallel. .NOTPARALLEL: -# all comes first, we want it to be the default target STD_TARGETS = all clean distclean maintainer_clean install html ps pdf # The + tells make that we're recursively invoking make, otherwise 'make -j2' # goes wrong. $(STD_TARGETS): - +$(TOPMAKE) $@_$(dir) + +$(TOPMAKE) $@_$(dir) $(EXTRA_MAKE_OPTS) -OTHERTARGETS=$(filter-out $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS)) +OTHERTARGETS=$(filter-out fast help $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS)) .PHONY: $(OTHERTARGETS) $(OTHERTARGETS): - +$(TOPMAKE) $(dir)/$@ + +$(TOPMAKE) $(dir)/$@ $(EXTRA_MAKE_OPTS) + +.PHONY: help +help : sub-help + +.PHONY: sub-help +sub-help : + @echo "You are in subdirectory \"$(dir)\"." + @echo "Useful targets in this directory:" + @cat $(TOP)/SUBMAKEHELP