################################################################################
# Project makefile.
################################################################################

# 'Stellar SDK' project values
PROJECTNAME := SR5E1_MultiCore_Blink_Demo
SDKID := StellarESDK-1.10.0

# Please Update it if you move your workspace
STELLAR_E_SDK_RELATIVE_PATH := ../../SDKS/$(SDKID)
TEST_ROOT_DIR := $(STELLAR_E_SDK_RELATIVE_PATH)
PROJECT_COMMON_DIR := $(STELLAR_E_SDK_RELATIVE_PATH)/Projects/SDKTests/CommonBuild

################################################################################
# Define device (sr5e1)
# Define board :
# sr5e1 ==> (evbe7000p/evbe7000s/evbe3000p/evbe7000e/evbe3000e/evbe3000d)
# WARNING : your board should match with your device
################################################################################

CONFIG_DEVICE ?= sr5e1
CONFIG_BOARD ?= evbe7000p
# ram or nvm
CONFIG_TARGET_MEMORY ?= ram

include $(PROJECT_COMMON_DIR)/make/test_defs.mk

ifeq ($(wildcard $(STELLAR_E_SDK_BUILD_SYSTEM_DIR)/StellarESDK.mk),)
$(error $(STELLAR_E_SDK_BUILD_SYSTEM_DIR)/StellarESDK.mk does not exist)
$(error Install the $(SDKID) or Correct STELLAR_E_SDK_RELATIVE_PATH)
endif

################################################################################
# Project builds
################################################################################
BUILD_OS_OSAL                  := 1
BUILD_DRIVERS_RCC              := 1

################################################################################
# Add project files
################################################################################

# Application name
APP_NAME := $(PROJECTNAME)

# C sources
ifeq ($(CONFIG_TARGET_CORE), core1)
C_SRCS += \
	src/main_core1.c
else
C_SRCS += \
	src/main_core2.c
endif

ifneq ($(TOOLCHAIN), IAR)
# Assemby sources
ifeq ($(CONFIG_TARGET_CORE), core1)
A_SRCS += \
	src/core2_bin.S
endif

# Assembly defines
A_DEFS += \
	CORE2_BIN_FILE=\"build/$(CONFIG_DEVICE)/$(CONFIG_BOARD)/core2/$(TARGET_BUILD)/$(APP_NAME).bin\"
else
ifeq ($(CONFIG_TARGET_CORE), core1)
# Linker options
L_OPTS += \
	--image_input=build/$(CONFIG_DEVICE)/$(CONFIG_BOARD)/core2/$(TARGET_BUILD)/$(APP_NAME).bin,core2_bin_start,core2_bin,1
endif
endif

################################################################################
# Linker file
################################################################################

# Linker file
LINKER_SCRIPT_SOURCE := ./rsc/$(LINKER_SCRIPT_NAME).E

################################################################################
# Include 'Stellar E SDK' top level makefile
################################################################################
include $(STELLAR_E_SDK_BUILD_SYSTEM_DIR)/StellarESDK.mk

ifneq ($(TOOLCHAIN), IAR)
ifeq ($(CONFIG_TARGET_CORE), core2)
pre-build::
	-$(AT)$(RM) build/$(CONFIG_DEVICE)/$(CONFIG_BOARD)/core1/$(TARGET_BUILD)/src/core2_bin.o
endif
endif

################################################################################
# Define 'Stellar E SDK' compiling target
################################################################################
all:
	$(AT)$(MAKE) CONFIG_TARGET_CORE=core2 CONFIG_TARGET_MEMORY=nvm default-all
	$(AT)$(MAKE) CONFIG_TARGET_CORE=core1 CONFIG_TARGET_MEMORY=nvm default-all
