SUBDIRS = Lesson1 Lesson2 Lesson3 Lesson4 Lesson5 all: for i in $(SUBDIRS); do cd $$i && $(MAKE) all; cd ..; done lesson1 : cd Lesson1; make lesson2 : cd Lesson2; make lesson3 : cd Lesson3; make lesson4 : cd Lesson4; make lesson5 : cd Lesson5; make #empty dist and distdir to let top-level 'make' do its job dist : distdir : check : clean: for i in $(SUBDIRS); do cd $$i && $(MAKE) clean; cd ..; done