summaryrefslogtreecommitdiff
path: root/bootstrap/stage1/efi
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/stage1/efi')
-rw-r--r--bootstrap/stage1/efi/Makefile49
1 files changed, 49 insertions, 0 deletions
diff --git a/bootstrap/stage1/efi/Makefile b/bootstrap/stage1/efi/Makefile
new file mode 100644
index 0000000..b1a96ef
--- /dev/null
+++ b/bootstrap/stage1/efi/Makefile
@@ -0,0 +1,49 @@
+INCLUDE?=-I$(ROOTDIR)kernel/arch/$(ARCH)/include
+CFLAGS?=-O0 -fno-stack-protector -ffreestanding -fno-builtin -nostdinc -nostdlib
+LDFLAGS?=-subsystem:efi_application -entry:_uefi_start
+
+# -- Do not edit below this line --
+
+LD:=lld-link
+INCLUDE:=$(INCLUDE) $(SYS_INCLUDE)
+CFLAGS:=$(CFLAGS) -Wall -Wextra -DVERSION=\"$(VERSION)\" -DARCH=\"$(ARCH)\" -g
+LDFLAGS:=$(LDFLAGS)
+ARCH:=$(ARCH)
+EFI:=boot-stage1.efi
+
+ARCHDIR=../arch/$(ARCH)/efi
+
+include $(ARCHDIR)/make.config
+
+INCLUDE:=$(INCLUDE) $(STAGE1_ARCH_INCLUDE)
+CFLAGS:=$(CFLAGS) $(STAGE1_ARCH_CFLAGS)
+LDFLAGS:=$(LDFLAGS) $(STAGE1_ARCH_LDFLAGS)
+
+OBJS=$(STAGE1_ARCH_OBJS) \
+ efi.o \
+
+.PHONY: all clean install
+.SUFFIXES: .o .c .s
+
+all: $(EFI)
+
+$(EFI): $(OBJS)
+ @$(LD) $(LDFLAGS) -out:$@ $^
+ @echo [LD] $@
+
+.c.o:
+ @$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE) -DVERSION=\"$(VERSION)\"
+ @echo [CC] $@
+
+.s.o:
+ @$(CC) -MD -c $< -o $@ $(CFLAGS) $(INCLUDE) -DVERSION=\"$(VERSION)\"
+ @echo [AS] $@
+
+clean:
+ $(RM) $(EFI) $(EFI:.efi=.lib) $(OBJS) $(OBJS:.o=.d)
+
+install: $(EFI)
+ mkdir -p $(DESTDIR)$(BOOTDIR)
+ install -m 0755 $(EFI) $(DESTDIR)$(BOOTDIR)/$(EFI)
+
+-include $(OBJS:.o=.d)