blob: 8746616a49d15f2fca11fd779d204b5433e00865 (
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# =====================
# ==== ===============
# =====================
# === === ==== ==
# ==== == == = =
# ==== == = == =
# ==== == = == ====
# ==== == = == = =
# = = === ==== ==
# == ================
# =====================
#
# halfcab: Makefile
# Fri, 19 Sep 2025 23:48:21 +0200
# joe <rbo@gmx.us>
#
# GNU Makefile
default: run
SHELL := /bin/sh
OS = $(shell /usr/bin/uname)
ESP_DIR = esp/halfcab/
OBJ_DIR = obj/
SRC_DIR = src/
TRG_DIR = ./
ESP_FQBN = esp8266:esp8266:d1_mini
ESP_DEV = /dev/ttyUSB0
TARGET = hc
ESP_NAME = halfcab.ino
SRC_NAME = c_halfcab
INC_NAME = c_defines
SRCS = $(addprefix ${SRC_DIR}, $(addsuffix .c, ${SRC_NAME}))
INCS = $(addprefix ${SRC_DIR}, $(addsuffix .h, ${SRC_NAME}))
INCS += $(addprefix ${SRC_DIR}, $(addsuffix .h, ${INC_NAME}))
OBJS = $(patsubst ${SRC_DIR}%.c, ${OBJ_DIR}%.c.o, ${SRCS})
ARDUINO = arduino-cli
CC = cc
CFLAGS = -std=c89
CFLAGS += -Wall
CFLAGS += -Wextra
CFLAGS += -Werror
CFLAGS += -pedantic
CFLAGS += -march=haswell
CFLAGS += -O2
CFLAGS += -pipe
ifeq (${OS}, Linux)
CFLAGS += -D_GNU_SOURCE
endif
ifeq (${OS}, Linux)
CINCS = -isystem /usr/include
endif
MKDIR = mkdir -p
RMDIR = rmdir
RM = rm -rf
${OBJ_DIR}%.c.o: ${SRC_DIR}%.c ${INCS} Makefile
${CC} ${CFLAGS} -c ${CINCS} -o $@ $<
${OBJ_DIR}:
${MKDIR} ${OBJ_DIR}
${TRG_DIR}${TARGET}: ${OBJ_DIR} ${OBJS}
${CC} ${CFLAGS} -o $@ ${OBJS} ${LDFLAGS}
debug: CFLAGS += -O0
debug: CFLAGS += -g3
debug: ${TRG_DIR}${TARGET}
asan: CFLAGS += -O0
asan: CFLAGS += -g3
asan: CFLAGS += -fsanitize=address
asan: ${TRG_DIR}${TARGET}
clean:
${RM} ${OBJS} vgcore.* ${TARGET}.core ${TARGET} ${OBJ_DIR}
esp:
${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} --build-property build.extra_flags=-I${SRC_DIR} ${SRC_DIR}${ESP_DIR}
${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}
attach:
${ARDUINO} board attach -p ${ESP_DEV} -b ${ESP_FQBN} ${SRC_DIR}${ESP_DIR}${ESP_NAME}
mon:
${ARDUINO} monitor -p ${ESP_DEV} -b ${ESP_FQBN} --config 115200 --config 'rts=off' --config 'dtr=off' --quiet
all: esp ${TRG_DIR}${TARGET}
run: debug
${TRG_DIR}${TARGET}
.PHONY: esp attach mon hc clean asan debug all run
|