4 The %.variables rule - dependencies

The rule for building these targets is in the rules.make file, it is the %.variables rule:
%.variables: %.tools %.subprojects
@ \
target=$(basename $(basename $*)); \
operation=$(subst .,,$(suffix $(basename $*))); \
type=$(subst -,_,$(subst .,,$(suffix $*))); \
echo Making $$operation for $$type $$target...; \
$(MAKE) -f $(MAKEFILE_NAME) --no-print-directory --no-keep-going \
  internal-$${type}-$$operation \
  INTERNAL_$${type}_NAME=$$target \
  TARGET=$$target \
  _SUBPROJECTS="$($(basename $(basename $*))_SUBPROJECTS)" \
  ...
This rule matches all targets ending in .variables. First of all, the rule depends on the corresponding %.tools and %.subprojects rules. This is because before processing the target itself, gnustep-make needs to process the related subprojects and (only for frameworks) the framework tools. We ignore this complication of subprojects and framework tools for now; if you look at the %.subprojects and %.tools rules you see that they do nothing if you are not actually using subprojects or framework tools in your makefile.



root 2017-05-06