Guest User

Makefile

a guest
Jul 20th, 2023
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Make 0.87 KB | None | 0 0
  1. OBJECTS = loader.o kernel/main.o
  2. CC = gcc
  3. CFLAGS = -m64 -fno-stack-protector \
  4.     -O2 -Wall -Wextra -Werror -c
  5. LDFLAGS = -T link.ld -m elf_x86_64
  6. AS = nasm
  7. ASFLAGS = -f elf64
  8.  
  9. all: kernel.elf
  10.  
  11. kernel.elf: $(OBJECTS)
  12.     ld $(LDFLAGS) $(OBJECTS) -o kernel.elf -L/usr/lib/x86_64-linux-gnu -lc
  13.  
  14. os.iso: kernel.elf
  15.     cp kernel.elf iso/boot/kernel.elf
  16.     genisoimage -R                      \
  17.         -b boot/grub/stage2_eltorito    \
  18.         -no-emul-boot                   \
  19.         -boot-load-size 4               \
  20.         -A mdos                         \
  21.         -input-charset utf8             \
  22.         -quiet                          \
  23.         -boot-info-table                \
  24.         -o os.iso                       \
  25.         iso
  26.  
  27. run: os.iso
  28.     qemu-system-x86_64 -cdrom os.iso -m 512
  29.  
  30. %.o: %.s
  31.     $(AS) $(ASFLAGS) $< -o $@
  32.  
  33. %.o: %.c
  34.     $(CC) $(CFLAGS)  $< -o $@
  35.  
  36. clean:
  37.     rm -rf *.o kernel/*.o kernel.elf os.iso
Add Comment
Please, Sign In to add comment