Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CFLAGS=-std=gnu++11 -Wall -Wextra -ffreestanding -nostdlib -fPIC -mno-red-zone -I kernel/include -isystem=/usr/include -c
- #-isystem=/usr/include
- CC1=clang++
- #CC=$(HOME)/opt/cross/x64/bin/x86_64-elf-g++
- CC=$(HOME)/opt/cross/x86/bin/i386-elf-g++
- LD32=$(HOME)/opt/cross/x86/bin/i386-elf-ld
- LD64=$(HOME)/opt/cross/x64/bin/x86_64-elf-ld
- OBJS:=out/start.o out/kernel.o
- CRTI_OBJ:=out/crti.o
- CRTBEGIN_OBJ:=$(shell $(CC) -print-file-name=crtbegin.o)
- CRTEND_OBJ:=$(shell $(CC) -print-file-name=crtend.o)
- CRTN_OBJ=out/crtn.o
- OBJ_LINK_LIST:=$(CRTI_OBJ) $(CRTBEGIN_OBJ) $(OBJS) $(CRTEND_OBJ) $(CRTN_OBJ)
- INTERNAL_OBJS:=$(CRTI_OBJ) $(OBJS) $(CRTN_OBJ)
- #-target x86_64-elf
- kernel:
- nasm -f elf64 kernel/arch/x86_64/start.asm -o out/start.o
- nasm -f elf64 kernel/arch/x86_64/crti.asm -o out/crti.o
- nasm -f elf64 kernel/arch/x86_64/crtn.asm -o out/crtn.o
- #nasm -f elf64 kernel/arch/x86_64/keyboard_handler.asm -o keyboard_handler.o
- $(CC1) Kernel/main.cxx -target x86_64-elf -m64 $(CFLAGS) -o kernel.o
- $(LD64) -nodefaultlibs -m elf_x86_64 -T kernel/arch/x86_64/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
- #-target i386-elf
- kernel32:
- nasm -f elf32 kernel/arch/i386/start.asm -o out/start.o
- nasm -f elf32 kernel/arch/i386/crti.asm -o out/crti.o
- nasm -f elf32 kernel/arch/i386/crtn.asm -o out/crtn.o
- #nasm -f elf64 kernel/arch/i386/keyboard_handler.asm -o keyboard_handler.o
- $(CC1) kernel/kernel/main.cxx -target i386-elf -m32 $(CFLAGS) -o out/kernel.o
- $(LD32) -m elf_i386 -T kernel/arch/i386/link.ld -o out/kernel.bin $(OBJ_LINK_LIST)
- mkdir -p out/isodir
- mkdir -p out/isodir/boot
- cp out/kernel.bin out/isodir/boot/kernel.bin
- mkdir -p out/isodir/boot/grub
- cp grub.cfg out/isodir/boot/grub/grub.cfg
- grub-mkrescue -o out/kernel.iso out/isodir
- clean:
- rm -f out/kernel.bin $(INTERNAL_OBJS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement