summaryrefslogtreecommitdiff
path: root/bootstrap/stage2/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/stage2/Makefile')
-rw-r--r--bootstrap/stage2/Makefile48
1 files changed, 48 insertions, 0 deletions
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)