EXE = wdoc
RUNARGS =

CFLAGS = -std=c17 -Wall -Wextra -Wpedantic -Os ${CFLAGS_${DEBUG}}
LDFLAGS = ${LDFLAGS_${DEBUG}}
PREFIX = ${HOME}/.local
BINDIR = ${PREFIX}/bin
LDLIBS =

DEBUG = 0
GDB != which gf2 2> /dev/null || which gdb

CFLAGS_1 = -g -fsanitize=undefined
LDFLAGS_1 = -g -fsanitize=undefined
LDFLAGS_0 = -s

OBJ != find -type f -name '*.c' | sed 's/\.c$$/.o/'

.PHONY: run all clean install

all: ${EXE}
run: ${EXE}
	./${EXE} ${RUNARGS}
debug: ${EXE}
	${GDB} -ex start --args ./${EXE} ${RUNARGS}

clean:
	rm -fv ${EXE} ${OBJ}

install: ${EXE}
	mv ${EXE} ${BINDIR}

uninstall:
	rm ${PREFIX}/${BIN}/${EXE}

${EXE}: ${OBJ}
	${CC} ${LDFLAGS} ${OBJ} -o ${EXE} ${LDLIBS}