########################################################################### # # Top level Makefile - builds all of the sample projects # ########################################################################### TARGETS = \ ArgTest/ \ Flash-LED/ \ i2c-BootLoader/ \ i2c-io/ \ i2c-test/ \ int6/ \ LCD-Test/ \ QD-Test/ \ RCInput/ \ Simple-Flasher/ \ Simple-Servo/ \ Simple-Servo-2/ \ Tachometer/ SUBDIRS := $(filter %/,$(TARGETS)) all: $(TARGETS) .PHONY: all FORCE FORCE: #-------------------------------------------------------------------------- # # Run make with v=1 or verbose=1 to get verbose output # ifeq ($(v),) export verbose = 0 else export verbose = 1 endif ifeq ($(verbose),) export verbose = 0 endif ifeq ($(verbose),0) Q = @ MAKEFLAGS += -s else Q = endif export Q #-------------------------------------------------------------------------- # # Rules to clean subdirectories # clean-dirs := $(addprefix _clean_,$(SUBDIRS)) .PHONY: clean $(clean-dirs) clean: $(clean-dirs) $(clean-dirs): @echo "Cleaning $(patsubst _clean_%,%,$@) ..." $(Q)$(MAKE) -C $(patsubst _clean_%,%,$@) clean #-------------------------------------------------------------------------- # # Rule to build subdirectories # %/: FORCE @echo "Building $@ ..." $(Q)$(MAKE) -C $@ $(filter clean% exec print-%,$(MAKECMDGOALS))