# Copyright 2015-2016 Samsung Electronics Co., Ltd. # Copyright 2016 University of Szeged. # # 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. # use TAB-8 TARGET_LIST = k64f stm32f4 stm32f429i nucleo JERRYHEAP ?= 16 ifneq ($(filter $(board), $(TARGET_LIST)),) TARGET = $(board) ifeq ($(TARGET), k64f) YOTTA_TARGET = frdm-k64f-gcc TARGET_DIR ?= /media/$(USER)/MBED else ifeq ($(TARGET), stm32f4) YOTTA_TARGET = stm32f4-disco-gcc else ifeq ($(TARGET), stm32f429i) YOTTA_TARGET = stm32f429i-disco-gcc else ifeq ($(TARGET), nucleo) YOTTA_TARGET = st-nucleo-f401re-gcc TARGET_DIR ?= /media/$(USER)/NODE_F401RE endif BUILD_DIR ?= build/mbed UPPERC_TARGET ?= $(shell echo $(TARGET) | tr a-z A-Z) COPYTARGET ?= targets/mbed/libjerry else $(error This board ($(board)) is not supported!) endif EXT_CFLAGS := -D__TARGET_MBED_$(UPPERC_TARGET) EXT_CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 EXT_CFLAGS += -Wno-error=format= EXT_PORT_DIR := "" .PHONY: jerry js2c yotta flash clean all: jerry js2c yotta jerry: mkdir -p $(COPYTARGET) mkdir -p $(BUILD_DIR) cmake -B$(BUILD_DIR) -H./ \ -DENABLE_LTO=OFF \ -DFEATURE_VALGRIND=OFF \ -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain_external.cmake \ -DJERRY_LIBC=OFF \ -DJERRY_CMDLINE=OFF \ -DENABLE_ALL_IN_ONE=OFF \ -DEXTERNAL_CMAKE_SYSTEM_PROCESSOR=armv7l-hf \ -DEXTERNAL_CMAKE_C_COMPILER=arm-none-eabi-gcc \ -DEXTERNAL_CMAKE_C_COMPILER_ID=GNU \ -DEXTERNAL_COMPILE_FLAGS="$(EXT_CFLAGS)" \ -DMEM_HEAP_SIZE_KB=$(JERRYHEAP) \ make -C$(BUILD_DIR) jerry-core make -C$(BUILD_DIR) jerry-libm cp $(BUILD_DIR)/lib/libjerry-core.a $(COPYTARGET)/libjerrycore.a cp $(BUILD_DIR)/lib/libjerry-libm.a $(COPYTARGET)/libjerrylibm.a js2c: cd targets/mbed; ../tools/js2c.py; yotta: cd targets/mbed; \ yotta target $(YOTTA_TARGET); \ yotta build flash: ifndef TARGET_DIR st-flash write targets/mbed/build/$(YOTTA_TARGET)/source/jerry.bin 0x08000000 else @if [ ! -d "${TARGET_DIR}" ] ; then \ echo "The board not mounted at ${TARGET_DIR}"; \ exit 1; \ fi cp targets/mbed/build/$(YOTTA_TARGET)/source/jerry.bin \ "$(TARGET_DIR)/." endif @echo "Wait till LED flashing stops..." clean: rm -rf $(COPYTARGET) rm -rf $(OUTPUT) rm -rf targets/mbed/build