diff options
author | lantw44 <lantw44@gmail.com> | 2013-01-21 02:16:51 +0800 |
---|---|---|
committer | lantw44 <lantw44@gmail.com> | 2013-01-21 02:16:51 +0800 |
commit | e80b7d7b9ceabc86154715d3332aebce3a60f1fe (patch) | |
tree | 5d15230e2594494a797b9c2da6d560a26d6d219d /Makefile | |
parent | 21f4b645319848112fd62b0bb5019d98f8e4a741 (diff) | |
download | yotos-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-- | Makefile | 61 |
1 files changed, 43 insertions, 18 deletions
@@ -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 |