KERNEL_EXEC := socks_kernel ARCH := x86_64 include tools/make/gcc-cross-compile.mk include arch/$(ARCH)/config.mk BUILDDIR := build ARCH_C_FILES := $(wildcard arch/$(ARCH)/*.c) ARCH_ASM_FILES := $(wildcard arch/$(ARCH)/*.S) ARCH_OBJ := $(addprefix $(BUILDDIR)/,$(ARCH_C_FILES:.c=.o) $(ARCH_ASM_FILES:.S=.o)) SRC_DIRS := core KERNEL_C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) KERNEL_OBJ := $(addprefix $(BUILDDIR)/,$(KERNEL_C_FILES:.c=.o)) BUILD_ID := $(shell tools/generate_build_id.py --arch $(ARCH)) CFLAGS := -DBUILD_ID=\"$(BUILD_ID)\" ASMFLAGS := -DBUILD_ID=\"$(BUILD_ID)\" $(BUILDDIR)/$(KERNEL_EXEC): $(KERNEL_OBJ) $(ARCH_OBJ) @echo " \033[1;36mLINK\033[0m \033[1m$@\033[0m" @mkdir -p $(@D) @$(LD) $^ -o $@ $(LDFLAGS) $(ARCH_LDFLAGS) $(BUILDDIR)/%.o: %.S @echo " \033[1;32mASM\033[0m $<" @mkdir -p $(@D) @$(ASM) $< -o $@ -c $(ASMFLAGS) $(ARCH_ASMFLAGS) $(BUILDDIR)/%.o: %.c @echo " \033[1;32mCC\033[0m $<" @mkdir -p $(@D) @$(CC) $< -o $@ -c $(CFLAGS) $(ARCH_CFLAGS) clean: @echo " \033[1;93mCLEAN\033[0m Deleting build artefacts." @rm -rf $(BUILDDIR) all: $(BUILDDIR)/$(KERNEL_EXEC) include arch/$(ARCH)/extra.mk .PHONY: all .INTERMEDIATE: $(ARCH_TEMP_FILES)