diff --git a/Makefile b/Makefile index c1970b9..6359084 100644 --- a/Makefile +++ b/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 diff --git a/sandbox/hello/Makefile b/sandbox/memblock/Makefile similarity index 68% rename from sandbox/hello/Makefile rename to sandbox/memblock/Makefile index cfd9c22..1c7d103 100644 --- a/sandbox/hello/Makefile +++ b/sandbox/memblock/Makefile @@ -1,4 +1,2 @@ -SANDBOX_PROG_NAME := hello - include ../sandbox-config.mk include ../sandbox-template.mk diff --git a/sandbox/hello/main.c b/sandbox/memblock/main.c similarity index 100% rename from sandbox/hello/main.c rename to sandbox/memblock/main.c diff --git a/sandbox/sandbox-config.mk b/sandbox/sandbox-config.mk index cde3424..c81a9f4 100644 --- a/sandbox/sandbox-config.mk +++ b/sandbox/sandbox-config.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)