SnailOS 0.03 的Makefile文件
这个文件非常的简单了。
#Makefile
AS=nasm
CC=gcc
LD=ld
INCLUDE = -I ./kernel/ -I ./x/ -I ./string/ -I ./multiboot2/ \
-I ./memory/ -I ./intr/ -I ./intr_status_op/ -I ./debug/ \
-I ./list/ -I ./thread/ -I ./device/ -I ./user/ -I ./mouse/ \
-I ./sheet/ -I ./timer/ -I ./fs/
OBJ=./create/boot.o ./create/kernel.o ./font/myfont.obj ./create/x.o \
./create/string.o ./create/multiboot2.o ./create/gdt_idt_init.o \
./create/memory.o ./create/system.o ./create/intr.o ./create/debug.o \
./create/intr_status_op.o ./create/list.o ./create/thread.o \
./create/sync.o ./create/console.o ./create/ioqueue.o ./create/tss.o \
./create/process.o ./create/syscall.o ./create/sheet.o ./create/mouse.o \
./font/font.obj ./create/timer.o ./create/hd.o ./create/fs.o
./create/kernel.elf: $(OBJ)
$(LD) -Ttext 0x00100000 -o $@ $(OBJ)
install: ./create/kernel.elf
mount_copy.cmd
run: install
start virtualboxvm --startvm "C:\Users\free2\VirtualBox VMs\SnailOS\SnailOS.vbox"
dbg: install
start virtualboxvm --startvm "C:\Users\free2\VirtualBox VMs\SnailOS\SnailOS.vbox" --debug-command-line
resume:
vboxmanage controlvm "C:\Users\free2\VirtualBox VMs\SnailOS\SnailOS.vbox" resume
clean:
del /q .\create\*
./create/boot.o: ./boot/boot.asm
$(AS) -felf -o $@ $^
./create/system.o: ./kernel/system.asm
$(AS) -felf -o $@ $^
./create/kernel.o: ./kernel/kernel.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/x.o: ./x/x.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/string.o: ./string/string.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/multiboot2.o: ./multiboot2/multiboot2.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/gdt_idt_init.o: ./kernel/gdt_idt_init.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/memory.o: ./memory/memory.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/intr.o: ./intr/intr.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/intr_status_op.o: ./intr_status_op/intr_status_op.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/debug.o: ./debug/debug.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/list.o: ./list/list.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/thread.o: ./thread/thread.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/sync.o: ./thread/sync.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/console.o: ./device/console.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/ioqueue.o: ./device/ioqueue.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/tss.o: ./user/tss.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/process.o: ./user/process.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/syscall.o: ./user/syscall.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/mouse.o: ./mouse/mouse.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/sheet.o: ./sheet/sheet.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/timer.o: ./timer/timer.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/hd.o: ./device/hd.c
$(CC) $(INCLUDE) -c -o $@ $^
./create/fs.o: ./fs/fs.c
$(CC) $(INCLUDE) -c -o $@ $^