CC := clang CFLAGS := -Wall -Wextra SRC_DIR := src BUILD_DIR := build OBJECT_FILES := $(patsubst %.c, %.o, $(wildcard $(SRC_DIR)/*.c)) OBJECT_FILES := $(patsubst $(SRC_DIR)/%, $(BUILD_DIR)/%, $(OBJECT_FILES)) MAIN_EXE_NAME := eipaasm all eipaasm: $(OBJECT_FILES) $(CC) $(CFLAGS) $^ -o $(BUILD_DIR)/$(MAIN_EXE_NAME) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c @mkdir -p $(BUILD_DIR) $(CC) -c $(CFLAGS) $^ -o $@ clean: rm -r $(BUILD_DIR)