#! /usr/bin/make -f builds := $(wildcard build*) ifeq "$(builds)" "" nobuild: @ echo "error: you don't seem to have any build directory (build*)" >&2 @ echo "" >&2 @ echo "You can configure one like this:" >&2 @ echo " mkdir build && cd build && ../configure [options...]" >&2 @ echo "" >&2 @ false endif # # all targets # all-targets := $(foreach b,$(builds),all-$b) all: $(all-targets) all-build%: build% @ echo -e "\n$B::$W Making into $<$N" @ $(MAKE) --no-print-directory -C $< # # install targets # install-targets := $(foreach b,$(builds),install-$b) install: $(install-targets) install-build%: build% @ echo -e "\n$B::$W Installing from $<$N" @ $(MAKE) --no-print-directory -C $< install # # uninstall targets # uninstall-targets := $(foreach b,$(builds),uninstall-$b) uninstall: $(uninstall-targets) uninstall-build%: build% @ echo -e "\n$B::$W Uninstalling from $<$N" @ $(MAKE) --no-print-directory -C $< uninstall # # Coloring tools # B = \e[34;1m W = \e[39;1m N = \e[0m .PHONY: nobuild all all-build% install install-build%