Advertisement
Guest User

Untitled

a guest
Nov 6th, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1.  
  2. CC = ~/opt/cross/bin/i686-elf-gcc
  3. ASM = nasm
  4. CFLAG = -ffreestanding -Wall -Wextra -g -O2
  5. SRC_DIR = src
  6. BUILD_DIR = build
  7.  
  8.  
  9. #
  10. # Floppy image
  11. #
  12.  
  13. floppy_image: $(BUILD_DIR)/main.img
  14.  
  15. $(BUILD_DIR)/main.img: bootloader kernel
  16. dd if=/dev/zero of=$(BUILD_DIR)/main.img bs=512 count=2880
  17. mkfs.fat -F 12 -n "VICEOS" $(BUILD_DIR)/main.img
  18. dd if=$(BUILD_DIR)/bootloader.bin of=$(BUILD_DIR)/main.img conv=notrunc
  19. mcopy -i $(BUILD_DIR)/main.img $(BUILD_DIR)/kernel "::kernel.bin"
  20.  
  21. #
  22. # Bootloader
  23. #
  24.  
  25. bootloader: $(BUILD_DIR)/bootloader.bin
  26.  
  27. $(BUILD_DIR)/bootloader.bin: $(SRC_DIR)/bootloader/boot.s
  28. $(ASM) $(SRC_DIR)/bootloader/boot.s -f bin -o $(BUILD_DIR)/bootloader.bin
  29.  
  30. #
  31. # Kernel
  32. #
  33.  
  34. kernel: $(BUILD_DIR)/asm/main.o $(BUILD_DIR)/kernel.o $(BUILD_DIR)/vga.o
  35. ld -T $(SRC_DIR)/kernel/linker.ld -o $(BUILD_DIR)/kernel $^
  36.  
  37. $(BUILD_DIR)/kernel.o: $(SRC_DIR)/kernel/kernel.c
  38. $(CC) $(CFLAG) -c $(SRC_DIR)/kernel/kernel.c -o $(BUILD_DIR)/kernel.o
  39.  
  40. $(BUILD_DIR)/vga.o: $(SRC_DIR)/kernel/vga.c
  41. $(CC) $(CFLAG) -c $(SRC_DIR)/kernel/vga.c -o $(BUILD_DIR)/vga.o
  42.  
  43. $(BUILD_DIR)/asm/main.o: $(SRC_DIR)/kernel/main.s
  44. $(ASM) $(SRC_DIR)/kernel/main.s -f elf -o $(BUILD_DIR)/asm/main.o
  45.  
  46.  
  47.  
  48. clean:
  49. rm -rf $(BUILD_DIR)/*
  50. mkdir $(BUILD_DIR)/asm
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement