Basic C project template.
1CC := gcc
2CFLAGS := -std=c11 -g -Wextra -Wall -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wwrite-strings -Wswitch-default -Wconversion -Wunreachable-code -pedantic -fsanitize=address -fsanitize=undefined -save-temps
3CLIBS := -lm
4SRC := src/main.c
5BUILD := .build
6
7run: $(BUILD)/main
8 ./$(BUILD)/main
9
10build: $(BUILD)/main
11
12$(BUILD)/main: $(BUILD) $(SRC)
13 $(CC) $(CFLAGS) $(CLIBS) $(SRC) -o $@
14
15$(BUILD):
16 mkdir $@
17
18clean:
19 rm -rf $(BUILD)