CC := gcc LEX := flex SRCD := src TSTD := tests BLDD := build BIND := bin INCD := include MAIN := $(BLDD)/main.o ALL_SRCF := $(shell find $(SRCD) -type f -name *.c) ALL_OBJF := $(patsubst $(SRCD)/%,$(BLDD)/%,$(ALL_SRCF:.c=.o)) ALL_FUNCF := $(filter-out $(MAIN) $(AUX), $(ALL_OBJF)) TEST_SRCF := $(shell find $(TSTD) -type f -name *.c) INC := -I $(INCD) CFLAGS := -Wall -Werror -Wno-unused-variable -Wno-unused-function $(NO_MAXLINE_FLAG) -MMD COLORF := -DCOLOR DFLAGS := -g -DDEBUG -DCOLOR PRINT_STAMENTS := -DERROR -DSUCCESS -DWARN -DINFO STD := -std=c99 -D_DEFAULT_SOURCE TEST_LIB := -lcriterion LIBS := CFLAGS += $(STD) EXEC := par TEST_EXEC := $(EXEC)_tests .PHONY: clean all setup debug all: setup $(BIND)/$(EXEC) $(BIND)/$(TEST_EXEC) debug: CFLAGS += $(DFLAGS) $(PRINT_STAMENTS) $(COLORF) debug: all setup: $(BIND) $(BLDD) $(BIND): mkdir -p $(BIND) $(BLDD): mkdir -p $(BLDD) $(BIND)/$(EXEC): $(ALL_OBJF) $(CC) $^ -o $@ $(CURSES_LIBS) $(LIBS) $(BIND)/$(TEST_EXEC): $(ALL_FUNCF) $(TEST_SRCF) $(CC) $(CFLAGS) $(INC) $(ALL_FUNCF) $(TEST_SRCF) $(TEST_LIB) $(LIBS) -o $@ $(BLDD)/%.o: $(SRCD)/%.c $(CC) $(CFLAGS) $(INC) -c -o $@ $< clean: rm -rf $(BLDD) $(BIND) .PRECIOUS: $(BLDD)/*.d -include $(BLDD)/*.d