summaryrefslogtreecommitdiff
path: root/makefile.mk
blob: 2d66744d825a35540628d4749fae3041e31744d7 (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
# needed cflags
CFLAGS += -std=gnu2x

# add include directory
CFLAGS += -isystem ../include
INCLUDE += ../include

# add lib directory
SRC += ../lib

H_SRC = $(shell find $(SRC) $(INCLUDE) -type f -name "*.h")
C_SRC = $(shell find $(SRC) -type f -name "*.c")
C_OBJ = $(patsubst %.c,$(BIN)/%.o,$(C_SRC))

.PHONY: clean build run

build: $(BIN)/$(OUT)

clean:
	rm -fr $(BIN)
	rm -fr ../bin/lib

run: build
	$(BIN)/$(OUT)

test:
	make -C ../test $(OUT)
	mkdir -p ../fuzz
	afl-fuzz -i ../test/$(OUT) -o ../fuzz -- $(BIN)/$(OUT) @@

$(C_OBJ): $(BIN)/%.o : %.c
	@mkdir -p $(@D)
	$(CC) -c $(CFLAGS) -o $@ $<

$(BIN)/$(OUT): $(C_OBJ) $(H_SRC)
	@mkdir -p $(@D)
	$(LD) $(LDFLAGS) -o $(BIN)/$(OUT) $(C_OBJ)