# Enable second expansion
.SECONDEXPANSION:

# Clear all built in suffixes
.SUFFIXES:

##############################################################################
# Set default goal before any targets. The default goal here is "all"
##############################################################################
DEFAULT_TARGET := all

.DEFAULT_GOAL := default
.PHONY: default
default: $(DEFAULT_TARGET)

##############################################################################
# Simulation test cases
##############################################################################

SIM := \
	basic_t0 \
	basic_crypto \
	crypto \
	basic_mailbox \
	mailbox_fifo \
	tmin1_entry \
	basic_spi_read \
	spi_read_chip_id \
	spi_page_erase \
	spi_write_read \
	basic_rfnvram \
	basic_ufm \
	basic_timer \
	copy_between_flash \
	bmc_update_max_failed_attempt \
	cpld_update_max_failed_attempt \
	basic_dual_config_ip \
	provisioning_flow \
	timed_boot_flow
    
BUILD_SIM_TARGETS := $(patsubst %,build-%,$(SIM))
CLEAN_SIM_TARGETS := $(patsubst %,clean-%,$(SIM))

##############################################################################
# Makefile starts here
##############################################################################

.PHONY: all
all: $(BUILD_SIM_TARGETS)

.PHONY: $(BUILD_SIM_TARGETS)
$(BUILD_SIM_TARGETS): build-% : %
	$(MAKE) -C $<

.PHONY: clean
clean: $(CLEAN_SIM_TARGETS)

.PHONY: $(CLEAN_SIM_TARGETS)
$(CLEAN_SIM_TARGETS): clean-% : %
	-$(MAKE) -C $< clean
