SUBDIRS = c cpp go java javascript perl php python rust zig SUBCLEAN=$(addsuffix .clean,$(SUBDIRS)) .PHONY: subdirs $(SUBDIRS) clean $(SUBCLEAN) all: subdirs subdirs: $(SUBDIRS) $(SUBDIRS): $(MAKE) -C $@ clean: $(SUBCLEAN) $(SUBCLEAN): %.clean: $(MAKE) -C $* clean