Advertisement
konalisp

Makefile 2

Nov 17th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 1.78 KB | None | 0 0
  1. CFLAGS=-std=gnu++11 -Wall -Wextra -ffreestanding -nostdlib -fPIC -mno-red-zone -I Include -c
  2. #CC=clang++
  3. #CC=$(HOME)/opt/cross/x64/bin/x86_64-elf-g++
  4. CC=$(HOME)/opt/cross/x86/bin/i386-elf-g++
  5. LD32=$(HOME)/opt/cross/x86/bin/i386-elf-ld
  6. LD64=$(HOME)/opt/cross/x64/bin/x86_64-elf-ld
  7. OBJS:=start.o kernel.o
  8.  
  9. CRTI_OBJ:=crti.o
  10. CRTBEGIN_OBJ:=$(shell $(CC) -print-file-name=crtbegin.o)
  11. CRTEND_OBJ:=$(shell $(CC) -print-file-name=crtend.o)
  12. #CRTBEGIN_OBJ=$(HOME)/opt/cross/lib/gcc/x86_64-elf/4.9.1/crtbegin.o
  13. #CRTEND_OBJ=$(HOME)/opt/cross/lib/gcc/x86_64-elf/4.9.1/crtend.o
  14. CRTN_OBJ=crtn.o
  15.  
  16. OBJ_LINK_LIST:=$(CRTI_OBJ) $(CRTBEGIN_OBJ) $(OBJS) $(CRTEND_OBJ) $(CRTN_OBJ)
  17. INTERNAL_OBJS:=$(CRTI_OBJ) $(OBJS) $(CRTN_OBJ)
  18. #-target x86_64-elf
  19. kernel:
  20.         nasm -f elf64 x86HAL/start.asm -o start.o
  21.         nasm -f elf64 x86HAL/crti.asm -o crti.o
  22.         nasm -f elf64 x86HAL/crtn.asm -o crtn.o
  23.         $(CC) Kernel/main.cxx -m64 $(CFLAGS) -o kernel.o
  24.         $(LD64) -z max-page-size=0x1000 -nodefaultlibs -m elf_x86_64 -T link.ld -o kernel.bin $(OBJ_LINK_LIST)
  25.         #ld -nodefaultlibs -T link.ld -o kernel.bin $(OBJ_LINK_LIST)
  26.         mkdir -p isodir
  27.         mkdir -p isodir/boot
  28.         cp kernel.bin isodir/boot/kernel.bin
  29.         mkdir -p isodir/boot/grub
  30.         cp grub.cfg isodir/boot/grub/grub.cfg
  31.         grub-mkrescue -o kernel.iso isodir
  32.    
  33. #-target i386-elf
  34. kernel32:
  35.         nasm -f elf32 x86HAL/start32.asm -o start.o
  36.         nasm -f elf32 x86HAL/crti32.asm -o crti.o
  37.         nasm -f elf32 x86HAL/crtn32.asm -o crtn.o
  38.         $(CC) Kernel/main.cxx -m32 $(CFLAGS) -o kernel.o
  39.         $(LD32) -m elf_i386 -T link32.ld -o kernel.bin $(OBJ_LINK_LIST)
  40.         mkdir -p isodir
  41.         mkdir -p isodir/boot
  42.         cp kernel.bin isodir/boot/kernel.bin
  43.         mkdir -p isodir/boot/grub
  44.         cp grub.cfg isodir/boot/grub/grub.cfg
  45.         grub-mkrescue -o kernel.iso isodir
  46.  
  47. clean:
  48.         rm -f kernel.bin $(INTERNAL_OBJS)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement