############################################################# # 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 () # TOP_DIR:= $(WM_SDK) sinclude $(TOP_DIR)/tools/tool_chain.def USE_LIB=1 CSRCS = $(wildcard *.c) $(wildcard wasm3/*.c) #EXTRA_CCFLAGS += -u ifndef PDIR GEN_IMAGES= $(TARGET).out GEN_BINS = $(TARGET).bin SUBDIRS = \ $(TOP_DIR)/platform/boot/$(COMPILE) ifeq ($(USE_LIB), 0) SUBDIRS += \ $(TOP_DIR)/platform/common \ $(TOP_DIR)/platform/drivers \ $(TOP_DIR)/platform/sys \ $(TOP_DIR)/src/os \ $(TOP_DIR)/src/app \ $(TOP_DIR)/src/network endif endif COMPONENTS_$(TARGET) = \ $(TOP_DIR)/platform/boot/$(COMPILE)/startup.o \ $(TOP_DIR)/platform/boot/$(COMPILE)/misc.o \ $(TOP_DIR)/platform/boot/$(COMPILE)/retarget.o ifeq ($(USE_LIB), 0) COMPONENTS_$(TARGET) += \ $(TOP_DIR)/platform/common/libcommon$(LIB_EXT) \ $(TOP_DIR)/platform/drivers/libdrivers$(LIB_EXT) \ $(TOP_DIR)/platform/sys/libsys$(LIB_EXT) \ $(TOP_DIR)/src/os/libos$(LIB_EXT) \ $(TOP_DIR)/src/network/libnetwork$(LIB_EXT) \ $(TOP_DIR)/src/app/libapp$(LIB_EXT) endif ifeq ($(USE_LIB), 1) LINKLIB = \ $(TOP_DIR)/lib/libcommon$(LIB_EXT) \ $(TOP_DIR)/lib/libdrivers$(LIB_EXT) \ $(TOP_DIR)/lib/libsys$(LIB_EXT) \ $(TOP_DIR)/lib/libos$(LIB_EXT) \ $(TOP_DIR)/lib/libnetwork$(LIB_EXT) \ $(TOP_DIR)/lib/libapp$(LIB_EXT) endif LINKLIB += \ $(TOP_DIR)/lib/libairkiss_log$(LIB_EXT) \ $(TOP_DIR)/lib/libwlan$(LIB_EXT) ifeq ($(COMPILE), gcc) LINKFLAGS_$(TARGET) = \ $(LINKLIB) \ -T$(LD_FILE) \ -Wl,-warn-common else LINKFLAGS_$(TARGET) = \ --library_type=microlib \ $(LINKLIB) \ --strict --scatter $(LD_FILE) endif ############################################################# # 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 # CONFIGURATION_DEFINES += -DWM_W600 DEFINES += $(CONFIGURATION_DEFINES) -Os -flto -Wfatal-errors \ -fomit-frame-pointer -fno-stack-check -fno-stack-protector \ -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers # -Dd_m3FixedHeap=8192 # -fno-optimize-sibling-calls LINKFLAGS_$(TARGET) += -Os -flto LINKLIB += -lm ############################################################# # 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 := $(INCLUDES) -I$(PDIR)include INCLUDES += -I ./ -I ./wasm3/ sinclude $(TOP_DIR)/tools/rules.mk .PHONY: FORCE FORCE: