summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorlantw44 <lantw44@gmail.com>2013-01-21 02:16:51 +0800
committerlantw44 <lantw44@gmail.com>2013-01-21 02:16:51 +0800
commite80b7d7b9ceabc86154715d3332aebce3a60f1fe (patch)
tree5d15230e2594494a797b9c2da6d560a26d6d219d /Makefile
parent21f4b645319848112fd62b0bb5019d98f8e4a741 (diff)
downloadyotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar.gz
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar.bz2
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar.lz
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar.xz
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.tar.zst
yotos-e80b7d7b9ceabc86154715d3332aebce3a60f1fe.zip
加入尚未完成的保護模式切換功能
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile61
1 files changed, 43 insertions, 18 deletions
diff --git a/Makefile b/Makefile
index c0f9b70..d34f629 100644
--- a/Makefile
+++ b/Makefile
@@ -2,16 +2,26 @@
.PHONY: all clean run
.SUFFIXES: .c.o .s.o
+FDIMAGE=floppy.img
+BINARY=bootsect 55aa kernel yotsh reader while1 pmboot pmkern
+YOT16_LIBC=yotlibc/yotlibc.a
+YOT32_KLIB=yotk32/yotk32.a
+
+QEMU=qemu-kvm
+RM=rm -f
+
all: floppy.img
-floppy.img: 55aa bootsect kernel yotsh reader while1
+floppy.img: $(BINARY)
dd if=/dev/zero of=$@ bs=512 count=2880
dd if=55aa of=$@ bs=1 count=2 seek=510 conv=notrunc
dd if=bootsect of=$@ conv=notrunc
- dd if=kernel of=$@ bs=512 seek=1 conv=notrunc
- dd if=yotsh of=$@ bs=512 seek=32 conv=notrunc
- dd if=while1 of=$@ bs=512 seek=72 conv=notrunc
- dd if=reader of=$@ bs=512 seek=73 conv=notrunc
+ dd if=kernel of=$@ bs=512 seek=1 conv=notrunc
+ dd if=yotsh of=$@ bs=512 seek=32 conv=notrunc
+ dd if=while1 of=$@ bs=512 seek=72 conv=notrunc
+ dd if=reader of=$@ bs=512 seek=73 conv=notrunc
+ dd if=pmboot of=$@ bs=512 seek=100 conv=notrunc
+ dd if=pmkern of=$@ bs=512 seek=101 conv=notrunc
.c.o:
bcc -ansi -Mc -Iyotlibc -c $< -o $@
@@ -20,25 +30,40 @@ floppy.img: 55aa bootsect kernel yotsh reader while1
bootsect: bootsect.s basic.s
nasm -f bin $< -o $@
+55aa:
+ echo "0000000: 55aa" | xxd -r > $@
kernel: kernel.o
- ld86 -T 0x0000 -d kernel.o -o kernel
+ ld86 -T 0x0000 -d $^ -o $@
-yotsh: yotsh.o yotlibc/yotlibc.a
- ld86 -T 0x0000 -d yotsh.o yotlibc/yotlibc.a -o yotsh
-reader: reader.o yotlibc/yotlibc.a
- ld86 -T 0x0000 -d reader.o yotlibc/yotlibc.a -o reader
-while1: while1.o yotlibc/yotlibc.a
- ld86 -T 0x0000 -d while1.o yotlibc/yotlibc.a -o while1
+yotsh: yotsh.o $(YOT16_LIBC)
+ ld86 -T 0x0000 -d $^ -o $@
+reader: reader.o $(YOT16_LIBC)
+ ld86 -T 0x0000 -d $^ -o $@
+while1: while1.o $(YOT16_LIBC)
+ ld86 -T 0x0000 -d $^ -o $@
+
+pmboot: pmgdt.s
+ nasm -f bin -dload_offset=0x80500 -dpmkernel=0x80700 $< -o $@
+pmkern: pmkern.o pmint.o $(YOT32_KLIB)
+ ld -melf_i386 -Ttext 0x80700 $^ --oformat binary -o $@
+
+pmkern.o: pmkern.s
+ nasm -f elf32 $< -o $@
+pmint.o: pmint.c
+ gcc -m32 -masm=intel -ffreestanding -fleading-underscore \
+ -Iyotk32 -c $< -o $@
-55aa:
- echo "0000000: 55aa" | xxd -r > $@
-yotlibc/yotlibc.a:
+$(YOT16_LIBC):
$(MAKE) -C yotlibc
+$(YOT32_KLIB):
+ $(MAKE) -C yotk32
run: floppy.img
- qemu-kvm -fda floppy.img $(QARG)
+ $(QEMU) -fda $(FDIMAGE) $(QARG)
clean:
- rm -f bootsect kernel kernel.o reader.o while1.o \
- 55aa yotsh yotsh.o floppy.img
+ $(RM) $(FDIMAGE) $(BINARY) kernel.o reader.o while1.o yotsh.o \
+ pmkern.o pmint.o
+ $(MAKE) -C yotlibc clean
+ $(MAKE) -C yotk32 clean