Keine Beschreibung

Makefile 672B

1234567891011121314151617181920212223242526272829303132333435
  1. .PHONY:all %.all install %.install clean %.clean cleandist %.cleandist release
  2. SUBMAKE:=make -s -C
  3. SUBMAKABLE:=$(shell find -mindepth 2 -name '[Mm]akefile' | sed 's%^./%%;s%/[^/]*%%')
  4. define submake
  5. @tput setaf 3
  6. @echo make[$1] $2
  7. @tput sgr0
  8. @$3 $(SUBMAKE) $1 $2
  9. endef
  10. all: $(patsubst %,%.all,$(SUBMAKABLE))
  11. %.all:
  12. $(call submake,$*,,)
  13. install: $(patsubst %,%.install,$(SUBMAKABLE))
  14. %.install:
  15. $(call submake,$*,install,sudo)
  16. clean: $(patsubst %,%.clean,$(SUBMAKABLE))
  17. %.clean:
  18. $(call submake,$*,clean,)
  19. cleandist: $(patsubst %,%.cleandist,$(SUBMAKABLE))
  20. %.cleandist:
  21. $(call submake,$*,cleandist,)
  22. release:
  23. $(call submake,.,,)
  24. $(call submake,.,clean,)