aoc: *.c *.h
	gcc -std=c2x -pedantic \
	-D_XOPEN_SOURCE=800 \
	-flto \
	-O3 -DNDEBUG \
	*.c \
	-o aoc

aocdbg: *.c *.h
	gcc -std=c2x -pedantic \
	-D_XOPEN_SOURCE=800 \
	-Werror -Wall -Wextra \
	-Wbad-function-cast \
	-Wcast-align \
	-Wcast-qual \
	-Wconversion $(: pesky little option; makes my code abuse casts ) \
	-Wfloat-equal \
	-Wformat=2 \
	-Wformat-signedness \
	-Winline \
	-Wlogical-op \
	-Wnested-externs \
	-Wno-missing-braces \
	-Wno-missing-field-initializers \
	-Wold-style-definition \
	-Wpointer-arith \
	-Wredundant-decls \
	-Wshadow \
	-Wstrict-aliasing=2 \
	-Wstrict-overflow=5 \
	-Wstrict-prototypes \
	-Wswitch-default \
	-Wswitch-enum \
	-Wundef \
	-Wunreachable-code \
	-fno-omit-frame-pointer -ffloat-store -fno-common -fstrict-aliasing \
	-Og -ggdb3 \
	*.c \
	-o aocdbg
