Makefile now recompiles stuff too if only headers changed

This commit is contained in:
XOR 2023-02-04 18:52:13 +01:00
parent b1fd802e89
commit 3ad00c45dc

View file

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