123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- FILES = ./build/kernel.asm.o ./build/kernel.o ./build/idt/idt.asm.o ./build/idt/idt.o ./build/memory/memory.o ./build/textmode/textmode.o ./build/io/io.asm.o ./build/memory/heap/heap.o ./build/memory/heap/kheap.o ./build/memory/paging/paging.asm.o ./build/memory/paging/paging.o ./build/disk/disk.o ./build/utils/string.o ./build/fs/pathparser.o ./build/disk/diskstream.o ./build/fs/file.o ./build/fs/fat/fat16.o ./build/gdt/gdt.asm.o ./build/gdt/gdt.o ./build/task/tss.asm.o ./build/task/task.o ./build/task/process.o ./build/task/task.asm.o ./build/isr80h/isr80h.o ./build/isr80h/misc.o ./build/keyboard/keyboard.o
- INCLUDES = -I./src
- FLAGS = -g -ffreestanding -falign-jumps -falign-functions -falign-labels -falign-loops -fstrength-reduce -fomit-frame-pointer -finline-functions -Wno-unused-function -fno-builtin -Werror -Wno-unused-label -Wno-cpp -Wno-unused-parameter -nostdlib -nostartfiles -nodefaultlibs -Wall -O0 -Iinc
- all: ./bin/boot.bin ./bin/kernel.bin programs_all
- rm -rf ./bin/os.bin
- dd if=./bin/boot.bin >> ./bin/os.bin
- dd if=./bin/kernel.bin >> ./bin/os.bin
- dd if=/dev/zero bs=1048576 count=16 >> ./bin/os.bin
- sudo mount -t vfat ./bin/os.bin /mnt/d
- sudo cp ./hello.txt /mnt/d/filename.txt
- sudo cp ./programs/blank/blank.bin /mnt/d/blank.bin
- sudo cp ./programs/hello/hello.bin /mnt/d/hello.bin
- sudo umount /mnt/d
- ./bin/kernel.bin: $(FILES)
- i686-elf-ld -g -relocatable $(FILES) -o ./build/kernelfull.o
- i686-elf-gcc $(FLAGS) -T ./src/linker.ld -o ./bin/kernel.bin ./build/kernelfull.o
- ./bin/boot.bin: ./src/boot/boot.asm
- nasm -f bin ./src/boot/boot.asm -o ./bin/boot.bin
- ./build/kernel.asm.o: ./src/kernel.asm
- nasm -f elf -g ./src/kernel.asm -o ./build/kernel.asm.o
- ./build/idt/idt.asm.o: ./src/idt/idt.asm
- nasm -f elf -g ./src/idt/idt.asm -o ./build/idt/idt.asm.o
- ./build/io/io.asm.o: ./src/io/io.asm
- nasm -f elf -g ./src/io/io.asm -o ./build/io/io.asm.o
- ./build/memory/paging/paging.asm.o: ./src/memory/paging/paging.asm
- nasm -f elf -g ./src/memory/paging/paging.asm -o ./build/memory/paging/paging.asm.o
- ./build/gdt/gdt.asm.o: ./src/gdt/gdt.asm
- nasm -f elf -g ./src/gdt/gdt.asm -o ./build/gdt/gdt.asm.o
- ./build/task/task.asm.o: ./src/task/task.asm
- nasm -f elf -g ./src/task/task.asm -o ./build/task/task.asm.o
- ./build/task/tss.asm.o: ./src/task/tss.asm
- nasm -f elf -g ./src/task/tss.asm -o ./build/task/tss.asm.o
- ./build/kernel.o: ./src/kernel.c
- i686-elf-gcc $(INCLUDES) $(FLAGS) -std=gnu99 -c ./src/kernel.c -o ./build/kernel.o
- ./build/idt/idt.o: ./src/idt/idt.c
- i686-elf-gcc $(INCLUDES) -I./src/idt $(FLAGS) -std=gnu99 -c ./src/idt/idt.c -o ./build/idt/idt.o
- ./build/memory/memory.o: ./src/memory/memory.c
- i686-elf-gcc $(INCLUDES) -I./src/memory $(FLAGS) -std=gnu99 -c ./src/memory/memory.c -o ./build/memory/memory.o
- ./build/textmode/textmode.o: ./src/textmode/textmode.c
- i686-elf-gcc $(INCLUDES) -I./src/textmode $(FLAGS) -std=gnu99 -c ./src/textmode/textmode.c -o ./build/textmode/textmode.o
- ./build/memory/heap/heap.o: ./src/memory/heap/heap.c
- i686-elf-gcc $(INCLUDES) -I./src/memory/heap $(FLAGS) -std=gnu99 -c ./src/memory/heap/heap.c -o ./build/memory/heap/heap.o
- ./build/memory/heap/kheap.o: ./src/memory/heap/kheap.c
- i686-elf-gcc $(INCLUDES) -I./src/memory/heap $(FLAGS) -std=gnu99 -c ./src/memory/heap/kheap.c -o ./build/memory/heap/kheap.o
- ./build/memory/paging/paging.o: ./src/memory/paging/paging.c
- i686-elf-gcc $(INCLUDES) -I./src/memory/paging $(FLAGS) -std=gnu99 -c ./src/memory/paging/paging.c -o ./build/memory/paging/paging.o
- ./build/disk/disk.o: ./src/disk/disk.c
- i686-elf-gcc $(INCLUDES) -I./src/disk $(FLAGS) -std=gnu99 -c ./src/disk/disk.c -o ./build/disk/disk.o
- ./build/disk/diskstream.o: ./src/disk/diskstream.c
- i686-elf-gcc $(INCLUDES) -I./src/disk $(FLAGS) -std=gnu99 -c ./src/disk/diskstream.c -o ./build/disk/diskstream.o
- ./build/utils/string.o: ./src/utils/string.c
- i686-elf-gcc $(INCLUDES) -I./src/utils $(FLAGS) -std=gnu99 -c ./src/utils/string.c -o ./build/utils/string.o
- ./build/fs/pathparser.o: ./src/fs/pathparser.c
- i686-elf-gcc $(INCLUDES) -I./src/fs $(FLAGS) -std=gnu99 -c ./src/fs/pathparser.c -o ./build/fs/pathparser.o
- ./build/fs/file.o: ./src/fs/file.c
- i686-elf-gcc $(INCLUDES) -I./src/fs $(FLAGS) -std=gnu99 -c ./src/fs/file.c -o ./build/fs/file.o
- ./build/fs/fat/fat16.o: ./src/fs/fat/fat16.c
- i686-elf-gcc $(INCLUDES) -I./src/fs/fat $(FLAGS) -std=gnu99 -c ./src/fs/fat/fat16.c -o ./build/fs/fat/fat16.o
- ./build/gdt/gdt.o: ./src/gdt/gdt.c
- i686-elf-gcc $(INCLUDES) -I./src/gdt $(FLAGS) -std=gnu99 -c ./src/gdt/gdt.c -o ./build/gdt/gdt.o
- ./build/task/task.o: ./src/task/task.c
- i686-elf-gcc $(INCLUDES) -I./src/task $(FLAGS) -std=gnu99 -c ./src/task/task.c -o ./build/task/task.o
- ./build/task/process.o: ./src/task/process.c
- i686-elf-gcc $(INCLUDES) -I./src/task $(FLAGS) -std=gnu99 -c ./src/task/process.c -o ./build/task/process.o
- ./build/isr80h/isr80h.o: ./src/isr80h/isr80h.c
- i686-elf-gcc $(INCLUDES) -I./src/isr80h $(FLAGS) -std=gnu99 -c ./src/isr80h/isr80h.c -o ./build/isr80h/isr80h.o
- ./build/isr80h/misc.o: ./src/isr80h/misc.c
- i686-elf-gcc $(INCLUDES) -I./src/isr80h $(FLAGS) -std=gnu99 -c ./src/isr80h/misc.c -o ./build/isr80h/misc.o
- ./build/keyboard/keyboard.o: ./src/keyboard/keyboard.c
- i686-elf-gcc $(INCLUDES) -I./src/keyboard $(FLAGS) -std=gnu99 -c ./src/keyboard/keyboard.c -o ./build/keyboard/keyboard.o
- programs_all:
- cd ./programs/blank && $(MAKE) all
- cd ./programs/hello && $(MAKE) all
- programs_clean:
- cd ./programs/blank && $(MAKE) clean
- cd ./programs/hello && $(MAKE) clean
- clean: programs_clean
- rm -rf ./bin/*.bin
- rm -rf ${FILES}
- rm -rf ./build/*.o
|