#
# Makefile for simple CiAO test programs
#

# default target 
default : all


# Root directory of CiAO
ROOT_DIR ?= ../../../../..
include $(ROOT_DIR)/make/standard.mk

APP     := Messageports

# Compile and link the test sources
SRC_DIR := $(TESTS_DIR)/ciao/os/krn/$(APP)
EXTRA_AH_DIR := $(SRC_DIR)
OUT_DIR := $(SRC_DIR)


# Additional g++ Flags
EXTRACXXFLAGS += -I$(KESOSRCPATH)/kore -I$(PWD) -I$(PWD)/Memprot1_tc
CXXFLAGS += -g -O3 -finline $(EXTRACXXFLAGS) -I$(CIAO_DIR) -DBUILDELF -fdata-sections
AGXXFLAGS := --keep_woven
LDFLAGS := $(CXX_PATH)/../tricore/lib/ldscripts/elf32tricore.x -T $(OUT_DIR)/ldciao.x -M -Map ciao.map --warn-common --allow-multiple-definition

MODULES	:= architecture generate ciao compile gcc


# include modules
ifneq "$(MODULES)" ""
    include $(patsubst %,$(MODULES_DIR)/%.mk,$(MODULES))
endif

MODULES_CLEAN += app
MODULES_ALL   += app

all_app: $(GEN) $(APP).elf


clean_app:
	@find $(OUT_DIR) -name "*.o" -name "*.acc" -name "$(APP).elf" -delete

# process 'all' targets in every MODULE and generate object files
all: $(patsubst %,all_%,$(MODULES_ALL))  
	
# process 'clean' targets in every MODULE and generate object files
clean: $(patsubst %,clean_%,$(MODULES_CLEAN))
	
.PHONY: all clean all_app clean_app

mrproper:
	@[ -d "$(CIAOVARIANT)" ] || ( echo 'Set $$CIAOVARIANT first' ; exit 1 )
	find "$(CIAOVARIANT)" \( -name '*.a' -o -name '*.o' -o -name '*.acc' -o -name '*.elf' -o -name ciao.map \) -a -exec rm {} \;

