diff options
author | joe <rbo@gmx.us> | 2025-09-20 16:31:48 +0200 |
---|---|---|
committer | joe <rbo@gmx.us> | 2025-09-20 16:31:48 +0200 |
commit | 4baef6078163edf6ad761e37d74dbf9330f9670b (patch) | |
tree | e163f2784fa7dfe9f8ba447e0d3103c7b43e9891 /Makefile | |
parent | good (diff) | |
download | halfcab-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-- | Makefile | 59 |
1 files changed, 52 insertions, 7 deletions
@@ -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 |