From 6535758dff5f02739f5b28c5539ebeea28ca2f23 Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Sat, 3 May 2025 18:15:25 -0500 Subject: bootstrap: create build files Create build infrastructure for a bootloader implementation. This loader should support UEFI and be able to load an ELF kernel at a designated entry point. Signed-off-by: Danny Holman --- bootstrap/stage2/Makefile | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 bootstrap/stage2/Makefile (limited to 'bootstrap/stage2/Makefile') diff --git a/bootstrap/stage2/Makefile b/bootstrap/stage2/Makefile new file mode 100644 index 0000000..938b5e8 --- /dev/null +++ b/bootstrap/stage2/Makefile @@ -0,0 +1,48 @@ +INCLUDE?=-Iinclude -I$(ROOTDIR)kernel/arch/$(ARCH)/include +CFLAGS?=-O0 -ffreestanding -std=gnu11 -fno-stack-protector +LDFLAGS?=-nostdlib + +# -- Do not edit below this line -- + +INCLUDE:=$(INCLUDE) $(SYS_INCLUDE) +CFLAGS:=$(CFLAGS) -Wall -Wextra -DVERSION=\"$(VERSION)\" -DARCH=\"$(ARCH)\" -g +LDFLAGS:=$(LDFLAGS) +ARCH:=$(ARCH) +ELF:=boot-stage2 + +ARCHDIR=arch/$(ARCH) + +include $(ARCHDIR)/make.config + +INCLUDE:=$(INCLUDE) $(STAGE2_ARCH_INCLUDE) +CFLAGS:=$(CFLAGS) $(STAGE2_ARCH_CFLAGS) +LDFLAGS:=$(LDFLAGS) $(STAGE2_ARCH_LDFLAGS) + +OBJS=$(STAGE2_ARCH_OBJS) \ + init/init.o \ + drivers/sata/sata.o \ + +.PHONY: all clean install +.SUFFIXES: .o .c .s + +all: $(ELF) + +$(ELF): $(OBJS) + @$(LD) --script=$(ARCHDIR)/linker.ld $(LDFLAGS) -o $@ $^ + @echo [LD] $@ + +.c.o: + @$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE) + @echo [CC] $@ + +.s.o: + @$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE) + @echo [AS] $@ + +clean: + $(RM) $(ELF) $(OBJS) $(OBJS:.o=.d) + +install: $(ELF) + install -m 0644 $(ELF) $(DESTDIR)$(BOOTDIR) + +-include $(OBJS:.o=.d) -- cgit v1.2.3