BUILD_DIR       = build
MAKEFLAGS      += s

FILTERED_GOALS  = $(filter-out all config veryclean $(BUILD_DIR), $(MAKECMDGOALS))
THIS_MAKEFILE   = $(lastword $(MAKEFILE_LIST))
BASE_DIR        = $(dir $(realpath $(THIS_MAKEFILE)))
BUILD_DIR      := $(BASE_DIR)$(BUILD_DIR)

.PHONY: all veryclean

all $(FILTERED_GOALS): $(BUILD_DIR)
	$(MAKE) -C $(BUILD_DIR) $@
veryclean:
	@echo "-- Cleaning up"	
	rm -rf $(BUILD_DIR)
	rm -rf $$(find $(BASE_DIR) -name "*~")
config: $(BUILD_DIR)
	$(MAKE) edit_cache
$(BUILD_DIR):
	@echo "-- Creating build directory: $@"
	mkdir -p $@
	cd $@ && cmake $(BASE_DIR)