1 # 2 # Copyright (C) 2016 The Android Open Source Project 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 17 PLATFORM?=stm32 18 CPU?=cortexm4 19 CHIP?=stm32f411 20 21 # SRC_PATH points to "firmware"; TOP_PATH is the abs path to top of android tree 22 TOP_RELPATH := ../../../.. 23 TOP_ABSPATH := $(realpath $(SRC_PATH)/$(TOP_RELPATH)) 24 VARIANT_ABSPATH := $(TOP_ABSPATH)/$(VARIANT_PATH) 25 VARIANT_PATH := $(TOP_RELPATH)/$(VARIANT_PATH) 26 27 ifndef OUT 28 OUT:=out/nanohub/$(VARIANT) 29 MAKE_OUT=$(VARIANT_PATH)/$(OUT) 30 else 31 ifneq ($(filter $(TOP_ABSPATH)/out/target/product/%,$(OUT)),) 32 # this looks like Android OUT env var; update it 33 OUT:=$(OUT)/nanohub/$(VARIANT) 34 IMAGE_TARGET_OUT:=vendor/firmware/nanohub.full.bin 35 endif 36 MAKE_OUT:=$(OUT) 37 endif 38 39 ifdef IMAGE_TARGET_OUT 40 DIR_TMP := $(dir $(IMAGE_TARGET_OUT)) 41 IMAGE_TARGET_OUT_ELF := $(DIR_TMP)nanohub.os.$(TARGET_PRODUCT).elf 42 endif 43 44 ifdef IMAGE_OUT 45 DIR_TMP := $(dir $(IMAGE_OUT)) 46 IMAGE_OUT_ELF := $(DIR_TMP)nanohub.os.$(TARGET_PRODUCT).elf 47 endif 48 49 .PHONY: all clean sync 50 51 all: 52 make -C $(SRC_PATH) -f firmware.mk VARIANT=$(VARIANT) VARIANT_PATH=$(VARIANT_PATH) OUT=$(MAKE_OUT) PLATFORM=$(PLATFORM) CPU=$(CPU) CHIP=$(CHIP) $(EXTRA_ARGS) 53 ifdef IMAGE_OUT 54 cd $(VARIANT_ABSPATH) && \ 55 cp $(OUT)/full.bin $(IMAGE_OUT) && \ 56 cp $(OUT)/os.unchecked.elf $(IMAGE_OUT_ELF) && \ 57 chmod -x $(IMAGE_OUT_ELF) 58 endif 59 ifdef IMAGE_TARGET_OUT 60 cd $(VARIANT_ABSPATH) && \ 61 mkdir -p $(dir $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT)) && \ 62 cp $(OUT)/full.bin $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT) && \ 63 cp $(OUT)/os.unchecked.elf $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT_ELF) && \ 64 chmod -x $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT_ELF) 65 endif 66 67 clean: 68 rm -rf $(OUT) 69 ifdef IMAGE_OUT 70 rm $(VARIANT_ABSPATH)/$(IMAGE_OUT) 71 rm $(VARIANT_ABSPATH)/$(IMAGE_OUT_ELF) 72 endif 73 ifdef IMAGE_TARGET_OUT 74 rm $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT) 75 rm $(TOP_ABSPATH)/$(IMAGE_TARGET_OUT_ELF) 76 endif 77 78 sync: 79 adb push $(OUT)/full.bin /vendor/firmware/nanohub.full.bin 80