45 lines
1.1 KiB
Makefile
45 lines
1.1 KiB
Makefile
|
|
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))
|
||
|
|
|
||
|
|
$(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)
|