77 lines
2.3 KiB
Makefile
77 lines
2.3 KiB
Makefile
BASE_DIR := $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
|
|
LIBRARY_DIR := $(BASE_DIR)/lib
|
|
|
|
ifndef MONITOR_PORT
|
|
ifneq (,$(wildcard /dev/ttyUSB0))
|
|
MONITOR_PORT = /dev/ttyUSB0
|
|
else ifneq (,$(wildcard /dev/ttyACM0))
|
|
MONITOR_PORT = /dev/ttyACM0
|
|
else
|
|
MONITOR_PORT = unknown
|
|
endif
|
|
endif
|
|
|
|
ESPTOOL := $(BASE_DIR)/hardware/esp8266/tools/esptool/esptool
|
|
ESPOTA := $(BASE_DIR)/hardware/esp8266/tools/espota.py
|
|
TARGET_DIR := $(BASE_DIR)/$(subst :,.,build/$(FQBN))
|
|
BIN_DIR := $(BASE_DIR)/bin
|
|
SRC := $(wildcard $(SKETCH_DIR)/*.ino)
|
|
HDRS := $(wildcard $(SKETCH_DIR)/*.h)
|
|
BIN := $(notdir $(SRC)).bin
|
|
|
|
$(info FQBN is [${FQBN}])
|
|
$(info ESP_IP is [${ESP_IP}])
|
|
$(info OTA_SERVER is [${OTA_SERVER}])
|
|
$(info OTA_PASSWD is [${OTA_PASSWD}])
|
|
$(info MONITOR_PORT is [${MONITOR_PORT}])
|
|
$(info TARGET_DIR is [${TARGET_DIR}])
|
|
$(info BIN_DIR is [${BIN_DIR}])
|
|
$(info SRC is [${SRC}])
|
|
$(info HDRS is [${HDRS}])
|
|
$(info BIN is [${BIN}])
|
|
$(info SERIAL_DEV is [${SERIAL_DEV}])
|
|
|
|
all: $(BIN_DIR)/$(BIN) upload
|
|
|
|
compile: $(BIN_DIR)/$(BIN)
|
|
|
|
upload: $(BIN_DIR)/$(BIN)
|
|
$(ESPTOOL) -v -cd nodemcu -b 115200 -p $(MONITOR_PORT) -ca 0x00000 -cf $(TARGET_DIR)/$(SKETCH).bin
|
|
|
|
ota: $(BIN_DIR)/$(BIN)
|
|
$(ESPOTA) -d -r -i $(ESP_IP) -I $(OTA_SERVER) -p 8266 -P 8266 -a $(OTA_PASSWD) -f $(TARGET_DIR)/$(SKETCH).bin
|
|
|
|
clean:
|
|
rm -rf $(TARGET_DIR)
|
|
|
|
monitor:
|
|
screen $(MONITOR_PORT) 115200
|
|
|
|
new-library:
|
|
$(eval NEW_LIB = $(LIBRARY_DIR)/$(LIB))
|
|
mkdir -p $(NEW_LIB)
|
|
$(eval UC = $(shell echo '$(LIB)' | tr '[:lower:]' '[:upper:]'))
|
|
|
|
@ echo "#ifndef $(UC)_h" > $(NEW_LIB)/$(LIB).h
|
|
@ echo "#define $(UC)_h" >> $(NEW_LIB)/$(LIB).h
|
|
@ echo "" >> $(NEW_LIB)/$(LIB).h
|
|
@ echo "#endif" >> $(NEW_LIB)/$(LIB).h
|
|
|
|
.PHONY: all compile test library upload ota clean monitor
|
|
|
|
$(TARGET_DIR)/$(BIN): $(SRC) $(HDRS)
|
|
@ echo $(FQBN)
|
|
@ mkdir -p $(TARGET_DIR)
|
|
|
|
arduino-cli compile -logger=machine \
|
|
--fqbn=$(FQBN) \
|
|
--library "$(subst $(space),$(sep),$(strip $(sort $(dir $(wildcard $(LIBRARY_DIR)/*/)))))" \
|
|
--build-path "$(TARGET_DIR)" \
|
|
--warnings=none \
|
|
--verbose \
|
|
"$(SKETCH_DIR)/$(SKETCH)"
|
|
|
|
$(BIN_DIR)/$(BIN): $(TARGET_DIR)/$(BIN)
|
|
@ echo "$(BIN) $(BIN_DIR)/"
|
|
@ mv $(TARGET_DIR)/$(BIN) $(BIN_DIR)/
|