From 4baef6078163edf6ad761e37d74dbf9330f9670b Mon Sep 17 00:00:00 2001 From: joe Date: Sat, 20 Sep 2025 16:31:48 +0200 Subject: c --- Makefile | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 52 insertions(+), 7 deletions(-) (limited to 'Makefile') 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 -- cgit v1.2.3