summaryrefslogtreecommitdiff
path: root/Makefile
blob: 481382a6e5033c11ce4c6cddc8860ac6d0f4942b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Optionally some environment variables can be set:
#
#   FQBN        Fully Qualified Board Name; if not set in the environment
#               it will be assigned a value in this makefile
#
#   SERIAL_DEV  Serial device to upload the sketch; if not set in the
#               environment it will be assigned:
#               /dev/ttyUSB0   if it exists, or
#               /dev/ttyACM0   if it exists, or
#               unknown
#
#   MDNS_NAME   Hostname of the Arduino; if not set in the environment
#               it will be assigned a value in this makefile. This is
#               needed for OTA update, the device will be searched
#               on the local subnet using this name
#
#   OTA_PORT    Port used by OTA update; if not set in the environment
#               it will be assigned the default value of 8266 in this
#               makefile
#
#   OTA_PASS    Password used for OTA update; if not set in the environment
#               it will be assigned the default value of an empty string

PROGNAME = mush

FQBN      =  esp8266:esp8266:espmxdevkit
MDNS_NAME =  $(PROGNAME)
OTA_PORT  =  8266
OTA_PASS  =

SERIAL_DEV = $(firstword $(wildcard /dev/ttyUSB* /dev/ttyACM*))

cli = arduino-cli -b "$(FQBN)"

BUILD_DIR != $(cli) compile --show-properties | sed -ne 's/^build.path=//p'

SRC        := CCS811.cpp $(PROGNAME).ino
HDRS       := CCS811.h ota.h wifiinfo.h
BIN        := $(BUILD_DIR)/$(PROGNAME).ino.bin
ELF        := $(BUILD_DIR)/$(PROGNAME).ino.elf

all: $(ELF)
.PHONY: all

compile: $(ELF)
.PHONY: compile

$(BIN) $(ELF): $(SRC) $(HDRS)
	$(cli) compile --warnings all

upload:
	$(cli) upload -p "$(SERIAL_DEV)"

PLAT_PATH != $(cli) compile --show-properties | sed -ne 's/^runtime.platform.path=//p'
PY_PATH != $(cli) compile --show-properties | sed -ne 's/^runtime.tools.python3.path=//p'
MDNS_IP != getent ahostsv4 $(MDNS_NAME).local | (read ip _; echo $$ip)

ota: $(BIN)
	"$(PY_PATH)/python3" "$(PLAT_PATH)/tools/espota.py" -i "$(MDNS_IP)" -p "$(OTA_PORT)" --auth="$(OTA_PASS)" -f "$(BIN)"