summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorWormHeamer2025-12-27 23:26:28 -0500
committerWormHeamer2025-12-27 23:26:28 -0500
commitbf4535008a78ed84fe3e76a9ae262646b9a5f150 (patch)
tree86a0a199e15634c9fe6682de9e08593ef9237687 /Makefile
basic piece table implementation
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files changed, 41 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..36549b0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,41 @@
+EXE = a.out
+RUNARGS =
+
+CFLAGS = -std=c23 -Wall -Wextra -Wpedantic ${CFLAGS_${DEBUG}}
+LDFLAGS = ${LDFLAGS_${DEBUG}}
+LDLIBS =
+
+OBJ != find -type f -name '*.c' | sed 's/\.c$$/.o/'
+
+DEBUG = 0
+
+CFLAGS_0 = -O2 -DNDEBUG
+CFLAGS_1 = -O0 -g3 # -fsanitize=address,undefined
+CFLAGS_2 = -O2 -g3 -DNDEBUG
+LDFLAGS_0 = -s
+LDFLAGS_1 = -g3 # -fsanitize=address,undefined
+LDFLAGS_2 = -O2 -g3
+
+PREFIX ?= ${HOME}/.local
+BINDIR = ${PREFIX}/bin
+
+.PHONY: run all clean install uninstall
+
+all: ${EXE}
+run: ${EXE}
+ ./${EXE} ${RUNARGS}
+
+debug: ${EXE}
+ gdb -ex run --args ./${EXE} ${RUNARGS}
+
+clean:
+ rm -fv ${EXE} ${OBJ} out.pdf
+
+${EXE}: ${OBJ}
+ ${CC} ${LDFLAGS} ${OBJ} -o ${EXE} ${LDLIBS}
+
+install: ${EXE}
+ cp ${EXE} ${BINDIR}/${EXE}
+
+uninstall:
+ rm ${BINDIR}/${EXE}