DIRS = meta common broker client tutors DIRS_BYTE = $(patsubst %,%.byte,$(DIRS)) DIRS_OPT = $(patsubst %,%.opt,$(DIRS)) DIRS_CLEAN = $(patsubst %,%.clean,$(DIRS)) DIRS_DISTCLEAN = $(patsubst %,%.distclean,$(DIRS)) all: byte meta: $(MAKE) -C meta/ byte: meta $(DIRS_BYTE) opt: meta $(DIRS_OPT) world: byte opt clean: $(DIRS_CLEAN) distclean: $(DIRS_DISTCLEAN) %.byte: $(MAKE) -C $*/ all %.opt: $(MAKE) -C $*/ opt %.clean: $(MAKE) -C $*/ clean %.distclean: $(MAKE) -C $*/ distclean start: $(MAKE) -C broker/ start $(MAKE) -C tutors/ start stop: $(MAKE) -C tutors/ stop $(MAKE) -C broker/ stop .PHONY: all byte opt world clean meta start stop