# Standard things sp := $(sp).x dirstack_$(sp) := $(d) d := $(dir) # Subdirectories, in random order dir := $(d)/subdir include $(SRCDIR)/$(dir)/Rules.mk # Local variables OBJ_$(d) := $(addprefix $(d)/, example1.o) CEXE_$(d) := $(addprefix $(d)/, example2) CEXE := $(CEXE) $(CEXE_$(d)) DEP_$(d) := $(OBJ_$(d):%=%.d) $(CEXE_$(d):%=%.o.d) CLEAN := $(CLEAN) \ $(OBJ_$(d)) \ $(CEXE_$(d):%=%.o) $(CEXE_$(d)) \ $(DEP_$(d)) #TGT_BIN := $(TGT_BIN) $(CEXE_$(d)) #TGT_LIB := $(TGT_LIB) S_$(d) := $(notdir $(CEXE_$(d))) # Local rules $(OBJ_$(d)): $(SRCDIR)/$(d)/Rules.mk $(CEXE_$(d):%=%.o): $(SRCDIR)/$(d)/Rules.mk # Shortcuts .PHONY: $(S_$(d)) $(S_$(d)): %: $(d)/% # Standard things -include $(DEP_$(d)) d := $(dirstack_$(sp)) sp := $(basename $(sp))