Brewhouse/MakefileGlobal.mk
2023-01-25 21:41:56 -05:00

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)/"
@ cp $(TARGET_DIR)/$(BIN) $(BIN_DIR)/