esp-open-rtos/extras/libesphttpd/component.mk

65 lines
2.9 KiB
Makefile
Raw Permalink Normal View History

# Component makefile for extras/libesphttpd
INC_DIRS += $(libesphttpd_ROOT)/libesphttpd/include $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/lib/heatshrink
LIBESPHTTPD_MAX_CONNECTIONS ?= 4
LIBESPHTTPD_STACKSIZE ?= 2048
LIBESPHTTPD_OTA_TAGNAME ?= generic
LIBESPHTTPD_HTML_DIR ?= html
LIBESPHTTPD_HTML_FILES ?= $(call rwildcard,$(LIBESPHTTPD_HTML_DIR)/,*)
RBOOT_OTA ?= 1
ESP_IP ?= 192.168.4.1
# args for passing into compile rule generation
libesphttpd_SRC_DIR = $(libesphttpd_ROOT)/libesphttpd/core $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/util
libesphttpd_CFLAGS += -DFREERTOS -DUSE_OPEN_SDK -DHTTPD_MAX_CONNECTIONS=$(LIBESPHTTPD_MAX_CONNECTIONS) -DHTTPD_STACKSIZE=$(LIBESPHTTPD_STACKSIZE) -DESPFS_HEATSHRINK -D__ets__ -DRBOOT_OTA=1 -std=gnu99
$(eval $(call component_compile_rules,libesphttpd))
rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
LIBESPHTTPD_MKESPFSIMAGE_DIR = $(BUILD_DIR)mkespfsimage
LIBESPHTTPD_MKESPFS = $(LIBESPHTTPD_MKESPFSIMAGE_DIR)/mkespfsimage
LIBESPHTTPD_HTML_TINY_DIR = $(BUILD_DIR)html
LIBESPHTTPD_HTML_ESPFS = $(BUILD_DIR)web.espfs.bin
LIBESPHTTPD_HTML_ESPFS_PATH = $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_HTML_ESPFS)
LIBESPHTTPD_HTML_ESPFS_OBJ = $(BUILD_DIR)web.espfs.o
CROSS_BINARY_ARCH ?= xtensa
CROSS_OUTPUT_TARGET ?= elf32-xtensa-le
LIBESPHTTPD_HTML_TINY ?= no
CURL = curl
LIBESPHTTPD_CURL_OPTS = --connect-timeout 3 --max-time 60 -s
$(LIBESPHTTPD_MKESPFSIMAGE_DIR):
$(Q)mkdir -p $(LIBESPHTTPD_MKESPFSIMAGE_DIR)
$(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS): $(LIBESPHTTPD_MKESPFSIMAGE_DIR)
make -C $(libesphttpd_ROOT)/libesphttpd/espfs/mkespfsimage CC=gcc GZIP_COMPRESSION=yes USE_HEATSHRINK=yes BUILD_DIR=$(PROGRAM_REAL_ROOT)/$(BUILD_DIR)
$(LIBESPHTTPD_HTML_ESPFS): $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS) $(LIBESPHTTPD_HTML_FILES)
cd $(LIBESPHTTPD_HTML_DIR) && find $(patsubst $(LIBESPHTTPD_HTML_DIR)/%,%,$(LIBESPHTTPD_HTML_FILES)) | $< > $(LIBESPHTTPD_HTML_ESPFS_PATH) || rm -f $(LIBESPHTTPD_HTML_ESPFS_PATH)
$(LIBESPHTTPD_HTML_ESPFS_OBJ): $(LIBESPHTTPD_HTML_ESPFS)
$(Q)$(OBJCOPY) -I binary -O $(CROSS_OUTPUT_TARGET) -B $(CROSS_BINARY_ARCH) --rename-section .data=.irom.espfs $^ $@
$(BUILD_DIR)libesphttpd.a: $(LIBESPHTTPD_HTML_ESPFS_OBJ)
htmlfs: $(LIBESPHTTPD_HTML_ESPFS_OBJ)
$(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg:
make -C $(libesphttpd_ROOT)/libesphttpd/mkupgimg CC=gcc RBOOT_OTA=$(RBOOT_OTA)
$(FIRMWARE_DIR)ota_$(PROGRAM).bin: $(FW_FILE) $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg
$(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg $(FW_FILE) "$(LIBESPHTTPD_OTA_TAGNAME)" $(FIRMWARE_DIR)ota_$(PROGRAM).bin
ota: $(FIRMWARE_DIR)ota_$(PROGRAM).bin $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg
webflash: $(FIRMWARE_DIR)ota_$(PROGRAM).bin
$(CURL) $(LIBESPHTTPD_CURL_OPTS) --data-binary "@$(FIRMWARE_DIR)ota_$(PROGRAM).bin" http://$(ESP_IP)/flash/upload && $(CURL) $(LIBESPHTTPD_CURL_OPTS) http://$(ESP_IP)/flash/reboot