summaryrefslogtreecommitdiff
path: root/Makefile
blob: 1130156368c8296e42191fc87a5c76e81c937b7c (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
EXE = a.out
RUNARGS = test.lang

CFLAGS = -std=c23 -Wall -Wextra -Wpedantic ${CFLAGS_${DEBUG}}
LDFLAGS = ${LDFLAGS_${DEBUG}}
LDLIBS =

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

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

CFLAGS_0 = -Os
CFLAGS_1 = -O0 -g3 -fsanitize=undefined
LDFLAGS_1 = -g3 -fsanitize=undefined
LDFLAGS_0 = -s

PREFIX ?= ${HOME}/.local
BINDIR = ${PREFIX}/bin

.PHONY: run all clean install uninstall

all: ${EXE}
run: ${EXE}
	./${EXE} ${RUNARGS} | dot -Tpng | feh -B white -Z -
debug: ${EXE}
	${GDB} -ex start --args ./${EXE} ${RUNARGS}

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

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

install: ${EXE}
	cp ${EXE} ${BINDIR}/${EXE}

uninstall:
	rm ${BINDIR}/${EXE}