Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CFLAGS=-std=gnu++11 -Wall -Wextra -ffreestanding -nostdlib -mcmodel=kernel -mno-red-zone -I Include -c -o
- CC=clang++
- OBJS:=start.o kernel.o
- CRTI_OBJ:=crti.o
- CRTBEGIN_OBJ:=$(shell $(CC) -print-file-name=crtbegin.o)
- CRTEND_OBJ:=$(shell $(CC) -print-file-name=crtend.o)
- CRTN_OBJ=crtn.o
- OBJ_LINK_LIST:=$(CRTI_OBJ) $(CRTBEGIN_OBJ) $(OBJS) $(CRTEND_OBJ) $(CRTN_OBJ)
- INTERNAL_OBJS:=$(CRTI_OBJ) $(OBJS) $(CRTN_OBJ)
- kernel:
- nasm -f elf64 x86HAL/start.asm -o start.o
- nasm -f elf64 x86HAL/crti.asm -o crti.o
- nasm -f elf64 x86HAL/crtn.asm -o crtn.o
- $(CC) Kernel/main.cxx -target x86_64-elf -m64 $(CFLAGS) kernel.o
- ld -z max-page-size=0x1000 -nodefaultlibs -m elf_x86_64 -T link.ld -o kernel.bin $(OBJ_LINK_LIST)
- #ld -nodefaultlibs -T link.ld -o kernel.bin $(OBJ_LINK_LIST)
- mkdir -p isodir
- mkdir -p isodir/boot
- cp kernel.bin isodir/boot/kernel.bin
- mkdir -p isodir/boot/grub
- cp grub.cfg isodir/boot/grub/grub.cfg
- grub-mkrescue -o kernel.iso isodir
- #kernel64: $(ISO)
- #$(ISO): $(OUTPUT)
- # cp $(OUTPUT) isodir/boot
- # grub-mkrescue -o kernel64.iso isodir
- #
- #$(OUTPUT): $(OBJS) link64.ld
- # ld -nodefaultlibs -T link64.ld -o $@ $(OBJS)
- #
- #start.o:
- # nasm -f elf64 x86HAL/start.asm $< -o $@
- #kernel.o:
- # $(CC) Kernel/main.cxx -target x86_64-elf -m64 -mcmodel=kernel -ffreestanding -nostdlib -mno-red-zone -c $< -o $@
- kernel32:
- nasm -f elf32 x86HAL/start32.asm -o start.o
- nasm -f elf32 x86HAL/crti32.asm -o crti.o
- nasm -f elf32 x86HAL/crtn32.asm -o crtn.o
- $(CC) Kernel/main.cxx -target i386-elf -m32 $(CFLAGS) kernel.o
- ld -m elf_i386 -T link32.ld -o kernel.bin $(OBJ_LINK_LIST)
- mkdir -p isodir
- mkdir -p isodir/boot
- cp kernel.bin isodir/boot/kernel.bin
- mkdir -p isodir/boot/grub
- cp grub.cfg isodir/boot/grub/grub.cfg
- grub-mkrescue -o kernel.iso isodir
- clean:
- rm -f kernel.bin $(INTERNAL_OBJS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement