Hello world!
This commit is contained in:
58
kernel/Makefile
Normal file
58
kernel/Makefile
Normal file
@ -0,0 +1,58 @@
|
||||
.PHONY: all clean
|
||||
|
||||
CC := x86_64-elf-gcc
|
||||
LD := x86_64-elf-ld
|
||||
|
||||
override CFLAGS = -Wall \
|
||||
-Wextra \
|
||||
-ffreestanding \
|
||||
-fno-stack-protector \
|
||||
-fno-stack-check \
|
||||
-fno-lto \
|
||||
-fno-PIC \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-m64 \
|
||||
-march=x86-64 \
|
||||
-mabi=sysv \
|
||||
-mno-80387 \
|
||||
-mno-mmx \
|
||||
-mno-sse \
|
||||
-mno-sse2 \
|
||||
-mno-red-zone \
|
||||
-mcmodel=kernel \
|
||||
-I. \
|
||||
-I../limine
|
||||
|
||||
override LDFLAGS = \
|
||||
-m elf_x86_64 \
|
||||
-nostdlib \
|
||||
-static \
|
||||
-z max-page-size=0x1000 \
|
||||
--gc-sections \
|
||||
-T link.ld
|
||||
|
||||
override NASMFLAGS = \
|
||||
-felf64 \
|
||||
-Wall \
|
||||
-F dwarf -g
|
||||
|
||||
override SRCFILES := $(shell find -L . -type f 2>/dev/null | LC_ALL=C sort)
|
||||
override CFILES := $(filter %.c,$(SRCFILES))
|
||||
override ASFILES := $(filter %.asm,$(SRCFILES))
|
||||
override OBJ := $(patsubst %.c,%.o,$(CFILES)) $(patsubst %.asm,%.o,$(ASFILES))
|
||||
|
||||
%.o: %.c
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
%.o: %.asm
|
||||
nasm $(NASMFLAGS) $< -o $@
|
||||
|
||||
all: mop2
|
||||
|
||||
mop2: $(OBJ)
|
||||
$(LD) $^ $(LDFLAGS) -o $@
|
||||
|
||||
clean:
|
||||
rm *.o mop2
|
||||
|
Reference in New Issue
Block a user