############################################################# # 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 () # export SDK_PATH ?= $(PWD)/ESP8266_RTOS_SDK export BIN_PATH ?= $(PWD)/bin export BOOT ?= new export APP ?= 1 export SPI_SIZE_MAP ?= 5 export SPI_SPEED ?= 40 export SPI_MODE=QIO GIT_TAG:=$(shell git describe --tags --always --dirty="-dev") 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 \ mqtt \ driver \ soft_ap \ fota \ protocol \ jsprase \ configure \ netease endif # } PDIR LDDIR = $(SDK_PATH)/ld CCFLAGS += -Os -DCURRENT_VERSION=\"$(GIT_TAG)\" TARGET_LDFLAGS = \ -nostdlib \ -Wl,-EL \ --longcalls \ --text-section-literals ifeq ($(FLAVOR),debug) TARGET_LDFLAGS += -g -O2 endif ifeq ($(FLAVOR),release) TARGET_LDFLAGS += -g -O0 endif COMPONENTS_eagle.app.v6 = \ user/libuser.a \ mqtt/libmqtt.a \ driver/libdriver.a \ soft_ap/libsoftap.a \ fota/libfota.a \ protocol/libpro.a \ jsprase/libjsprase.a \ configure/libcfg.a \ netease/libnetease.a \ netease/IoT/libIoT.a LINKFLAGS_eagle.app.v6 = \ -L$(SDK_PATH)/lib \ -Wl,--gc-sections \ -nostdlib \ -T$(LD_FILE) \ -Wl,--no-check-sections \ -u call_user_start \ -Wl,-static \ -Wl,--start-group \ -lcirom \ -lmirom \ -lgcc \ -lhal \ -lcrypto \ -lfreertos \ -llwip \ -lmain \ -lnet80211 \ -lphy \ -ljson \ -lpp \ -lmbedtls \ -lopenssl \ -lmqtt \ -lwpa \ $(DEP_LIBS_eagle.app.v6)\ -Wl,--end-group DEPENDS_eagle.app.v6 = \ $(LD_FILE) \ $(LDDIR)/eagle.rom.addr.v6.ld ############################################################# # 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 # -DMQTT_TASK: Define MQTT_TASK to enable MQTT start background # thread for a client. CONFIGURATION_DEFINES = -DICACHE_FLASH -DMQTT_TASK CONFIGURATION_DEFINES += \ -DFORCE_SSL_VERIFY \ -DUSING_UTILS_JSON \ -DLITE_THING_MODEL \ -DUSING_SHA1_IN_HMAC \ -DIOTX_WITHOUT_ITLS \ -DIOTX_NET_INIT_WITH_PK_EXT \ -DCMP_SUPPORT_TOPIC_DISPATCH \ -DCMP_VIA_MQTT_DIRECT \ #-DIOTX_WITHOUT_TLS \ -DIOTX_WITHOUT_ITLS FEATURE_MQTT_COMM_ENABLED = 1 FEATURE_MQTT_DIRECT = 1 FEATURE_MQTT_DIRECT_NOTLS = 0 FEATURE_MQTT_DIRECT_NOITLS = 1 FEATURE_COAP_COMM_ENABLED = 0 FEATURE_HTTP_COMM_ENABLED = 1 FEATURE_SUBDEVICE_ENABLED = 0 FEATURE_CMP_ENABLED = 1 FEATURE_DM_ENABLED = 1 FEATURE_SERVICE_OTA_ENABLED = 0 FEATURE_SUPPORT_PRODUCT_SECRET = 1 CONFIGURATION_DEFINES += \ -D OTA_SIGNAL_CHANNEL=1 \ -D MQTT_SERVER_ESPRESSIF=0 \ -D MQTT_SERVER_ALIBABA=1 \ -D MQTT_SERVER_NETEASE=2 CONFIGURATION_DEFINES += \ -D MQTT_SERVER=2 #ifeq ($(FEATURE_MQTT_DIRECT), 1) CONFIGURATION_DEFINES += \ -DMQTT_DIRECT #endif #ifeq (FEATURE_MQTT_COMM_ENABLED, 1) CONFIGURATION_DEFINES += \ -DMQTT_COMM_ENABLED #endif ifeq (FEATURE_SUBDEVICE_ENABLED, 1) CONFIGURATION_DEFINES += \ -DSUBDEVICE_ENABLED endif #ifeq (FEATURE_CMP_ENABLED, 1) CONFIGURATION_DEFINES += \ -DCMP_ENABLED #endif #ifeq (FEATURE_DM_ENABLED, 1) CONFIGURATION_DEFINES += \ -DDM_ENABLED \ -DDEVICEINFO_ENABLED #endif ifeq (FEATURE_SERVICE_OTA_ENABLED, 1) CONFIGURATION_DEFINES += \ -DSERVICE_OTA_ENABLED ifeq (FEATURE_SERVICE_COTA_ENABLED, 1) CONFIGURATION_DEFINES += \ -DSERVICE_COTA_ENABLED endif endif #ifeq (FEATURE_SUPPORT_PRODUCT_SECRET, 1) CONFIGURATION_DEFINES += \ -DSUPPORT_PRODUCT_SECRET #endif 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 := $(INCLUDES) -I $(PDIR)include -I include INCLUDES += -I $(SDK_PATH)/include/openssl INCLUDES += -I $(SDK_PATH)/include/lwip INCLUDES += -I $(PDIR)netease/IoT INCLUDES += -I $(PDIR)netease/IoT/utils/misc INCLUDES += -I $(PDIR)netease/IoT/LITE-utils INCLUDES += -I $(PDIR)netease/IoT/sdk-impl INCLUDES += -I $(PDIR)netease/IoT/sdk-impl/exports INCLUDES += -I $(PDIR)netease/IoT/sdk-impl/imports INCLUDES += -I $(PDIR)netease/IoT/utils/digest INCLUDES += -I $(PDIR)netease/IoT/utils/misc INCLUDES += -I $(PDIR)netease/IoT sinclude $(SDK_PATH)/Makefile .PHONY: FORCE FORCE: