# 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: