λ

furix

cute os

settings

arch/x86_64/Makefile

537 bytes raw

ifndef KERNEL_SRC
$(error KERNEL_SRC undefined)
endif

ifndef KERNEL_ELF
$(error KERNEL_ELF undefined)
endif

ifndef BUILD
$(error BUILD undefined)
endif

CC := x86_64-elf-gcc

CFLAGS += \
	-mno-red-zone -mgeneral-regs-only \
	-Iarch/x86_64/include

LDFLAGS += \
	-Tarch/x86_64/linker.ld

ARCH_SRC := \
	arch/x86_64/entry.S

SRC := $(KERNEL_SRC) $(ARCH_SRC)
OBJ := $(patsubst %,$(BUILD)/%.o,$(SRC))

$(KERNEL_ELF): $(OBJ)
	@mkdir -p $(dir $@)
	$(CC) $(LDFLAGS) -o $@ $^

$(BUILD)/%.o: %
	@mkdir -p $(dir $@)
	$(CC) $(CFLAGS) -o $@ -c $<