aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorjoe <rbo@gmx.us>2025-09-20 16:31:48 +0200
committerjoe <rbo@gmx.us>2025-09-20 16:31:48 +0200
commit4baef6078163edf6ad761e37d74dbf9330f9670b (patch)
treee163f2784fa7dfe9f8ba447e0d3103c7b43e9891 /Makefile
parentgood (diff)
downloadhalfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.gz
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.bz2
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.xz
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.tar.zst
halfcab-4baef6078163edf6ad761e37d74dbf9330f9670b.zip
c
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile59
1 files changed, 52 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 8f6cc11..9a77d03 100644
--- a/Makefile
+++ b/Makefile
@@ -16,20 +16,29 @@
#
# GNU Makefile
-default: esp
+default: debug
+
+SHELL := /bin/sh
+OS = $(shell /usr/bin/uname)
ESP_DIR = esp/halfcab/
OBJ_DIR = obj/
SRC_DIR = src/
-TRGT_DIR = ./
+TRG_DIR = ./
ESP_FQBN = esp8266:esp8266:d1_mini
ESP_DEV = /dev/ttyUSB0
-TRGT_NAME = hc
+TARGET = hc
ESP_NAME = halfcab.ino
+SRC_NAME = c_halfcab
+
+SRCS = $(addprefix ${SRC_DIR}, $(addsuffix .c, ${SRC_NAME}))
+INCS = $(addprefix ${SRC_DIR}, $(addsuffix .h, ${SRC_NAME}))
+OBJS = $(patsubst ${SRC_DIR}%.c, ${OBJ_DIR}%.c.o, ${SRCS})
+
ARDUINO = arduino-cli
CC = cc
CFLAGS = -std=c89
@@ -40,16 +49,52 @@ 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: all
+
+asan: CFLAGS += -O0
+asan: CFLAGS += -g3
+asan: CFLAGS += -fsanitize=address
+asan: all
+
+clean:
+ ${RM} ${OBJS} vgcore.* ${TARGET}.core ${TARGET} ${OBJ_DIR}
esp:
- ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${ESP_DIR}
- ${ARDUINO} upload -p ${ESP_DEV} --fqbn ${ESP_FQBN} ${ESP_DIR}
+ ${ARDUINO} compile -v -j8 --warnings all --fqbn ${ESP_FQBN} ${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} ${ESP_DIR}${ESP_NAME}
+ ${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
+.PHONY: esp attach mon hc