# Copyright JS Foundation and other contributors, http://js.foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#############################################################
# Required variables for each makefile
# Discard this section from all parent makefiles
# Expected variables (with automatic defaults):
#   CSRCS (all "C" files in the dir)
#   SUBDIRS (all subdirs with a Makefile)
#   GEN_LIBS - list of libs to be generated ()
#   GEN_IMAGES - list of object file images to be generated ()
#   GEN_BINS - list of binaries to be generated ()
#   COMPONENTS_xxx - a list of libs/objs in the form
#     subdir/lib to be extracted and rolled up into
#     a generated lib/image xxx.a ()
#
# Tabsize : 8
#
TARGET = eagle
FLAVOR = release
#FLAVOR = debug

#EXTRA_CCFLAGS += -u

ifndef PDIR # {
GEN_IMAGES= eagle.app.v6.out
GEN_BINS= eagle.app.v6.bin
SPECIAL_MKTARGETS=$(APP_MKTARGETS)
SUBDIRS= user
endif # } PDIR

# path to the JERRYSCRIPT directory
JERRYDIR ?= $(CURDIR)/../../..

LDDIR = $(SDK_PATH)/ld

#############################################################
# JerryScript requires a modified linker script with specified alignments
# 	so we use it instead of the original one from SDK.
JERRY_LD_FILE = $(CURDIR)/ld/eagle.app.v6.ld

CCFLAGS += -Os -std=c99
#CCFLAGS += -O0

TARGET_LDFLAGS =					\
	-nostdlib					\
	-Wl,-EL						\
	--longcalls					\
	--text-section-literals

ifeq ($(FLAVOR),debug)
	TARGET_LDFLAGS += -O0 -g
endif

ifeq ($(FLAVOR),release)
	TARGET_LDFLAGS += -Os
endif

COMPONENTS_eagle.app.v6 =				\
	user/libuser.a

LINKFLAGS_eagle.app.v6 =				\
	-L$(SDK_PATH)/lib				\
	-Wl,--gc-sections				\
	-Wl,-Map,output.map				\
	-nostdlib					\
	-T$(JERRY_LD_FILE)				\
	-Wl,--no-check-sections				\
	-u call_user_start				\
	-Wl,-static					\
	-Wl,--start-group				\
	-lcirom						\
	-lcrypto					\
	-lespconn					\
	-lespnow					\
	-lfreertos					\
	-lgcc						\
	-lhal						\
	-ljson						\
	-llwip						\
	-ldriver					\
	-lmain						\
	-lmirom						\
	-lnet80211					\
	-lnopoll					\
	-lphy						\
	-lpp						\
	-lpwm						\
	-lsmartconfig					\
	-lspiffs					\
	-lssl						\
	-lwpa						\
	-lwps						\
	-L./libs					\
	-ljerry-core					\
	-ljerry-libm					\
	$(DEP_LIBS_eagle.app.v6)			\
	-Wl,--end-group

DEPENDS_eagle.app.v6 =					\
	$(JERRY_LD_FILE)				\
	$(LDDIR)/eagle.rom.addr.v6.ld			\
	./include/jerry-targetjs.h			\
	./libs/libjerry-core.a				\
	./libs/libjerry-libm.a


#############################################################
# Configuration i.e. compile options etc.
# Target specific stuff (defines etc.) goes in here!
# Generally values applying to a tree are captured in the
#   makefile at its root level - these are then overridden
#   for a subtree within the makefile rooted therein
#

#UNIVERSAL_TARGET_DEFINES =    \

# Other potential configuration flags include:
#  -DTXRX_TXBUF_DEBUG
#  -DTXRX_RXBUF_DEBUG
#  -DWLAN_CONFIG_CCX
CONFIGURATION_DEFINES = -DICACHE_FLASH

DEFINES += \
	$(UNIVERSAL_TARGET_DEFINES) \
	$(CONFIGURATION_DEFINES)

DDEFINES += \
	$(UNIVERSAL_TARGET_DEFINES) \
	$(CONFIGURATION_DEFINES)


#############################################################
# Recursion Magic - Don't touch this!!
#
# Each subtree potentially has an include directory
#   corresponding to the common APIs applicable to modules
#   rooted at that subtree. Accordingly, the INCLUDE PATH
#   of a module can only contain the include directories up
#   its parent path, and not its siblings
#
# Required for each makefile to inherit from the parent
#

INCLUDES := -I $(JERRYDIR)/jerry-core/include
INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)source
sinclude $(SDK_PATH)/Makefile

.PHONY: FORCE

FORCE:
