CC?=gcc RM:=rm -rf SRC_DIR:=src OBJ_DIR:=obj INC_DIRS=$(addprefix -iquote,include) PARCINI_SOURCES:=$(wildcard $(SRC_DIR)/*.c) PARCINI_OBJECTS:=$(PARCINI_SOURCES:%.c=$(OBJ_DIR)/%.o) BUILD_DIR:=build test: CFLAGS := -std=c99 -O0 -g -Wall -DDEBUG test: $(BUILD_DIR) tests/parcini tests/%: $(OBJ_DIR)/src/tests/%.o $(PARCINI_OBJECTS) $(CC) $(LDFLAGS) -o $(BUILD_DIR)/$@ $^ $(BUILD_DIR)/$@ example: CFLAGS := -std=c99 -O2 -Wall example: $(OBJ_DIR)/example/example.o $(PARCINI_OBJECTS) $(CC) $(LDFLAGS) -o $(BUILD_DIR)/example/$@ $^ $(OBJ_DIR)/%.o: %.c $(CC) -c $(CFLAGS) $(INC_DIRS) -o $@ $< $(BUILD_DIR): mkdir -p $(BUILD_DIR)/tests mkdir -p $(BUILD_DIR)/example mkdir -p $(OBJ_DIR)/src/tests mkdir -p $(OBJ_DIR)/example clean: $(RM) $(OBJ_DIR) $(RM) $(BUILD_DIR) .PHONY: clean test .PRECIOUS: $(OBJ_DIR)/tests/%.o $(OBJ_DIR)/%.o