1NAME = testoasterror 2CC = gcc 3FLAGS = -std=c99 -pedantic -g 4FLAGS+= -Wall -Wextra -Werror=vla -Werror 5VALGRIND = --show-leak-kinds=all --track-origins=yes --leak-check=full 6 7BIND = bin 8OBJD = obj 9SRCD = src 10TESTS = tests 11 12INCL = -I$(SRCD) 13 14SRCS = $(SRCD)/testoasterror.c 15SRCS+= $(TESTS)/main.c 16 17OBJS:= $(patsubst %.c,$(OBJD)/%.o,$(SRCS)) 18 19.PHONY: $(BIND)/$(NAME) 20 21$(OBJD)/%.o: %.c 22 @echo "building object $@" 23 @mkdir -p $(@D) 24 @$(CC) $(INCL) $(FLAGS) -c -o $@ $< 25 26$(BIND)/$(NAME): $(OBJS) 27 @echo "compiling executable $@" 28 @mkdir -p $(@D) 29 @$(CC) -o $@ $^ $(LINK) 30 31run: 32 @cd $(BIND) && ./$(NAME) 33 34leakgrind: $(BIND)/$(NAME) 35 @cd $(BIND) && valgrind $(VALGRIND) 2> ../valgrind.log ./$(NAME) 36 37clean: 38 @echo "cleaning" 39 @rm -rf $(BIND) $(OBJD) valgrind.log 40