You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.7 KiB
113 lines
3.7 KiB
LITEOSTOPDIR = $(CURDIR)
|
|
|
|
export LITEOSTOPDIR
|
|
|
|
-include $(LITEOSTOPDIR)/config.mk
|
|
|
|
RM = rm -rf
|
|
MAKE = make
|
|
__LIBS = libs
|
|
|
|
LITEOS_TARGET = Huawei_LiteOS
|
|
LITEOS_LIBS_TARGET = libs_target
|
|
|
|
.PHONY: all lib clean cleanall $(LITEOS_TARGET) debug release help
|
|
|
|
all: $(OUT) $(BUILD) $(LITEOS_TARGET)
|
|
lib: $(OUT) $(BUILD) $(LITEOS_LIBS_TARGET)
|
|
|
|
debug:
|
|
$(HIDE)echo "=============== make a debug version ==============="
|
|
$(HIDE) $(MAKE) all
|
|
|
|
release:
|
|
ifeq ($(PLATFORM),)
|
|
$(HIDE)echo "=============== make a release version for platform $(PLATFORM) ==============="
|
|
$(HIDE)$(SCRIPTS_PATH)/mklibversion.sh $(PLATFORM)
|
|
else
|
|
$(HIDE)echo "================make a release version for all platform ==============="
|
|
$(HIDE)$(SCRIPTS_PATH)/mklibversion.sh
|
|
endif
|
|
|
|
#-----need move when make version-----#
|
|
##### make lib #####
|
|
$(__LIBS): $(OUT) $(CXX_INCLUDE)
|
|
$(LITEOS_TARGET): $(__LIBS) LITEOS_BUILD
|
|
|
|
$(OUT): $(LITEOS_MENUCONFIG_H)
|
|
$(HIDE)mkdir -p $(OUT)/lib
|
|
|
|
$(BUILD):
|
|
$(HIDE)mkdir -p $(BUILD)
|
|
|
|
$(LITEOS_LIBS_TARGET): $(__LIBS)
|
|
$(HIDE)for dir in $(LIB_SUBDIRS); \
|
|
do $(MAKE) -C $$dir all || exit 1; \
|
|
done
|
|
$(HIDE)echo "=============== make lib done ==============="
|
|
|
|
include tools/menuconfig/Makefile.kconfig
|
|
|
|
$(LITEOS_MENUCONFIG_H):
|
|
ifneq ($(LITEOS_PLATFORM_MENUCONFIG_H), $(wildcard $(LITEOS_PLATFORM_MENUCONFIG_H)))
|
|
$(HIDE)+make savemenuconfig
|
|
endif
|
|
|
|
LITEOS_BUILD: $(LITEOS_MENUCONFIG_H)
|
|
|
|
LITEOS_BUILD:
|
|
$(HIDE)echo $(LOSCFG_ENTRY_SRC)
|
|
|
|
$(HIDE)for dir in $(LITEOS_SUBDIRS); \
|
|
do $(MAKE) -C $$dir all || \
|
|
if [ "$$?" != "0" ]; then \
|
|
echo "########################################################################################################"; \
|
|
echo "######## LiteOS build failed! ########"; \
|
|
echo "########################################################################################################"; \
|
|
exit 1; \
|
|
fi;\
|
|
done
|
|
|
|
$(LITEOS_TARGET):
|
|
ifeq ($(OS), Linux)
|
|
$(call update_from_baselib_file)
|
|
endif
|
|
ifeq ($(LD), $(CC))
|
|
$(LD) $(LITEOS_LDFLAGS) $(LITEOS_TABLES_LDFLAGS) $(LITEOS_DYNLDFLAGS) -Wl,-Map=$(OUT)/$@.map -o $(OUT)/$@.elf -Wl,--start-group $(LITEOS_BASELIB) -Wl,--end-group
|
|
else
|
|
$(LD) $(LITEOS_LDFLAGS) $(LITEOS_TABLES_LDFLAGS) $(LITEOS_DYNLDFLAGS) -Map=$(OUT)/$@.map -o $(OUT)/$@.elf --start-group $(LITEOS_BASELIB) --end-group
|
|
endif
|
|
ifeq ($(LOSCFG_FAMILY_RASPBERRY), y)
|
|
ifeq ($(LOSCFG_ARCH_ARM_AARCH64), y)
|
|
$(OBJCOPY) -O binary $(OUT)/$@.elf $(OUT)/kernel8.img
|
|
else
|
|
$(OBJCOPY) -O binary $(OUT)/$@.elf $(OUT)/kernel7.img
|
|
endif
|
|
endif
|
|
ifeq ($(LOSCFG_PLATFORM_ESP32)$(LOSCFG_PLATFORM_ESP32_QEMU), y)
|
|
esptool.py --chip esp32 elf2image --flash_mode dio --flash_freq 80m --flash_size 4MB -o $(OUT)/$@.bin $(OUT)/$@.elf
|
|
else ifeq ($(LOSCFG_PLATFORM_ESP8266), y)
|
|
esptool.py --chip esp8266 elf2image --flash_mode dio --flash_freq 40m --flash_size 2MB --version=3 -o $(OUT)/$@.bin $(OUT)/$@.elf
|
|
else
|
|
$(OBJCOPY) -O binary $(OUT)/$@.elf $(OUT)/$@.bin
|
|
endif
|
|
$(OBJDUMP) -t $(OUT)/$@.elf |sort >$(OUT)/$@.sym.sorted
|
|
$(OBJDUMP) -d $(OUT)/$@.elf >$(OUT)/$@.asm
|
|
$(SIZE) $(OUT)/$@.elf
|
|
$(HIDE)echo "########################################################################################################"
|
|
$(HIDE)echo "######## LiteOS build successfully! ########"
|
|
$(HIDE)echo "########################################################################################################"
|
|
|
|
clean:
|
|
$(HIDE)for dir in $(LITEOS_SUBDIRS); \
|
|
do make -C $$dir clean|| exit 1; \
|
|
done
|
|
$(HIDE)$(RM) .config.old
|
|
$(HIDE)$(RM) $(__OBJS) $(LITEOS_TARGET) $(OUT) $(BUILD) $(LITEOS_MENUCONFIG_H) *.bak *~
|
|
$(HIDE)$(RM) -rf $(LITEOS_PLATFORM_MENUCONFIG_H)
|
|
$(HIDE)echo "clean $(LITEOS_PLATFORM) finish"
|
|
|
|
cleanall:
|
|
$(HIDE)rm -rf $(LITEOSTOPDIR)/out
|
|
$(HIDE)echo "clean all"
|