More build system adjustments
This commit is contained in:
14
Makefile
14
Makefile
@@ -44,29 +44,27 @@ LDFLAGS := $(LDFLAGS) -g
|
||||
|
||||
ALL_KERNEL_OBJECT_FILES := $(KERNEL_OBJ) $(ARCH_OBJ) $(LIBC_OBJ)
|
||||
|
||||
all: $(BUILD_DIR)/$(KERNEL_EXEC) sandbox
|
||||
|
||||
$(BUILD_DIR)/$(KERNEL_EXEC): $(ALL_KERNEL_OBJECT_FILES)
|
||||
@printf " \033[1;36mLD\033[0m \033[1m$@\033[0m\n"
|
||||
@printf " \033[1;36mLD\033[0m \033[1mbuild/\033[35m$(KERNEL_EXEC)\033[0m\n"
|
||||
@mkdir -p $(@D)
|
||||
@$(LD) $^ -o $@ $(LDFLAGS) $(ARCH_LDFLAGS)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.S
|
||||
@printf " \033[1;32mAS\033[0m $<\n"
|
||||
@printf " \033[1;32mAS\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
||||
@mkdir -p $(@D)
|
||||
@$(ASM) $< -o $@ -c $(ASMFLAGS) $(ARCH_ASMFLAGS)
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@printf " \033[1;32mCC\033[0m $<\n"
|
||||
@printf " \033[1;32mCC\033[0m \033[35m$(KERNEL_EXEC)\033[0m/$<\n"
|
||||
@mkdir -p $(@D)
|
||||
@$(CC) $< -o $@ -c $(CFLAGS) $(ARCH_CFLAGS)
|
||||
|
||||
clean:
|
||||
@printf " \033[1;93mRM\033[0m Deleting kernel build artefacts.\n"
|
||||
@printf " \033[1;93mRM\033[0m Deleting build files.\n"
|
||||
@rm -rf $(BUILD_DIR)
|
||||
|
||||
@$(MAKE) -C sandbox clean
|
||||
|
||||
all: $(BUILD_DIR)/$(KERNEL_EXEC)
|
||||
|
||||
$(BUILD_DIR)/compile_commands.json:
|
||||
@$(MAKE) clean
|
||||
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
SANDBOX_PROG_NAME := hello
|
||||
|
||||
include ../sandbox-config.mk
|
||||
include ../sandbox-template.mk
|
||||
@@ -1,8 +1,11 @@
|
||||
THIS_FILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
SANDBOX_PROG_MAKEFILE_PATH := $(abspath $(firstword $(MAKEFILE_LIST)))
|
||||
SANDBOX_BASE_DIR := $(patsubst %/,%,$(dir $(THIS_FILE_PATH)))
|
||||
SANDBOX_PROG_DIR := $(patsubst %/,%,$(dir $(SANDBOX_PROG_MAKEFILE_PATH)))
|
||||
|
||||
MAKEFILE_PATH := $(abspath $(lastword $(MAKEFILE_LIST)))
|
||||
SANDBOX_DIR := $(patsubst %/,%,$(dir $(MAKEFILE_PATH)))
|
||||
include $(SANDBOX_BASE_DIR)/../tools/make/gcc-host.mk
|
||||
|
||||
include $(SANDBOX_DIR)/../tools/make/gcc-host.mk
|
||||
SANDBOX_PROG_NAME := $(notdir $(SANDBOX_PROG_DIR))
|
||||
|
||||
SANDBOX_BUILD_DIR := $(SANDBOX_DIR)/../build/sandbox
|
||||
SANDBOX_BUILD_DIR := $(SANDBOX_BASE_DIR)/../build/sandbox
|
||||
BUILD_DIR := $(SANDBOX_BUILD_DIR)/$(SANDBOX_PROG_NAME)
|
||||
|
||||
Reference in New Issue
Block a user