build: rebuild objects that depend on modified headers
This commit is contained in:
7
Makefile
7
Makefile
@@ -43,6 +43,9 @@ ASMFLAGS := $(ASMFLAGS) -DBUILD_ID=\"$(BUILD_ID)\"
|
|||||||
LDFLAGS := $(LDFLAGS) -g
|
LDFLAGS := $(LDFLAGS) -g
|
||||||
|
|
||||||
ALL_KERNEL_OBJECT_FILES := $(KERNEL_OBJ) $(ARCH_OBJ) $(LIBC_OBJ)
|
ALL_KERNEL_OBJECT_FILES := $(KERNEL_OBJ) $(ARCH_OBJ) $(LIBC_OBJ)
|
||||||
|
ALL_KERNEL_DEPS := $(ALL_KERNEL_OBJECT_FILES:.o=.d)
|
||||||
|
|
||||||
|
-include $(ALL_KERNEL_DEPS)
|
||||||
|
|
||||||
all: $(BUILD_DIR)/$(KERNEL_EXEC) sandbox
|
all: $(BUILD_DIR)/$(KERNEL_EXEC) sandbox
|
||||||
|
|
||||||
@@ -54,12 +57,12 @@ $(BUILD_DIR)/$(KERNEL_EXEC): $(ALL_KERNEL_OBJECT_FILES)
|
|||||||
$(BUILD_DIR)/%.o: %.S
|
$(BUILD_DIR)/%.o: %.S
|
||||||
@printf " \033[1;32mAS\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
@printf " \033[1;32mAS\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(ASM) $< -o $@ -c $(ASMFLAGS) $(ARCH_ASMFLAGS)
|
@$(ASM) $< -o $@ -c $(ASMFLAGS) $(ARCH_ASMFLAGS) -MMD
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.c
|
$(BUILD_DIR)/%.o: %.c
|
||||||
@printf " \033[1;32mCC\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
@printf " \033[1;32mCC\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
@$(CC) $< -o $@ -c $(CFLAGS) $(ARCH_CFLAGS)
|
@$(CC) $< -o $@ -c $(CFLAGS) $(ARCH_CFLAGS) -MMD
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@printf " \033[1;93mRM\033[0m Deleting build files.\n"
|
@printf " \033[1;93mRM\033[0m Deleting build files.\n"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ DIR_LIST := memblock vm base queue btree util
|
|||||||
INCLUDE_DIRS := $(foreach dir,$(DIR_LIST),-I$(dir)/include)
|
INCLUDE_DIRS := $(foreach dir,$(DIR_LIST),-I$(dir)/include)
|
||||||
SRC := $(foreach dir,$(DIR_LIST),$(wildcard $(dir)/*.c))
|
SRC := $(foreach dir,$(DIR_LIST),$(wildcard $(dir)/*.c))
|
||||||
OBJ := $(addprefix $(BUILD_DIR)/,$(SRC:.c=.o))
|
OBJ := $(addprefix $(BUILD_DIR)/,$(SRC:.c=.o))
|
||||||
|
DEPS := $(OBJ:.o=.d)
|
||||||
|
|
||||||
CFLAGS := $(INCLUDE_DIRS) -g
|
CFLAGS := $(INCLUDE_DIRS) -g
|
||||||
|
|
||||||
@@ -22,12 +23,14 @@ $(BUILD_DIR)/$(EXEC_NAME): $(OBJ)
|
|||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
|
|
||||||
@printf " \033[1;36mHOSTLD\033[0m \033[1mbuild/sandbox/\033[35m$(EXEC_NAME)\n"
|
@printf " \033[1;36mHOSTLD\033[0m \033[1mbuild/sandbox/\033[35m$(EXEC_NAME)\n"
|
||||||
@$(CC) $^ -o $@ $(CFLAGS) $(LDFLAGS)
|
@$(CC) $(OBJ) -o $@ $(CFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
|
-include $(DEPS)
|
||||||
|
|
||||||
$(BUILD_DIR)/%.o: %.c
|
$(BUILD_DIR)/%.o: %.c
|
||||||
@printf " \033[1;32mHOSTCC\033[0m \033[35msandbox\033[0m/$<\n"
|
@printf " \033[1;32mHOSTCC\033[0m \033[35msandbox\033[0m/$<\n"
|
||||||
@mkdir -p $(@D)
|
@mkdir -p $(@D)
|
||||||
|
|
||||||
@$(CC) $< -o $@ -c $(CFLAGS)
|
@$(CC) $< -o $@ -c $(CFLAGS) -MMD
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|||||||
Reference in New Issue
Block a user