CC := gcc CFLAGS := -Wall -Wextra -Werror -g -I./include BUILD_DIR := build SRC := $(wildcard src/*.c) OBJ := $(patsubst src/%.c,${BUILD_DIR}/%.o,$(SRC)) TARGET := cval.out .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJ) $(CC) $(CFLAGS) -o $(BUILD_DIR)/$(TARGET) $(OBJ) $(BUILD_DIR)/%.o: src/%.c $(CC) $(CFLAGS) -c $< -o $@ clean: rm -f $(OBJ) $(BUILD_DIR)/$(TARGET)