X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=bootcensus;a=blobdiff_plain;f=Makefile;h=2396eabf851c12bfd7c5d909f933b89be1b62a10;hp=0438d128900ce80ffd5d4d3ef4c900799ddf6679;hb=137aca58851528e77004dc3909826f24bbdbde87;hpb=a2f94f569a4c99204de02814a20098a71527e913 diff --git a/Makefile b/Makefile index 0438d12..2396eab 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ -csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c) -ssrc = $(wildcard src/*.s) $(wildcard src/libc/*.s) $(wildcard src/boot/*.s) +csrc = $(wildcard src/*.c) $(wildcard src/libc/*.c) $(wildcard src/test/*.c) +ssrc = $(wildcard src/*.s) $(wildcard src/libc/*.s) $(wildcard src/boot/*.s) $(wildcard src/test/*.s) Ssrc = $(wildcard src/*.S) obj = $(csrc:.c=.o) $(ssrc:.s=.o) $(Ssrc:.S=.o) dep = $(obj:.o=.d) @@ -9,13 +9,14 @@ bin = test.bin warn = -pedantic -Wall #opt = -O2 dbg = -g -inc = -Isrc -Isrc/libc -gccopt = -fno-pic -ffreestanding -nostdinc -fno-builtin +inc = -Isrc -Isrc/libc -Isrc/test +gccopt = -fno-pic -ffreestanding -nostdinc -fno-builtin -ffast-math CFLAGS = $(ccarch) -march=i386 $(warn) $(opt) $(dbg) $(gccopt) $(inc) $(def) ASFLAGS = $(asarch) -march=i386 $(dbg) -nostdinc -fno-builtin $(inc) LDFLAGS = $(ldarch) -nostdlib -T pcboot.ld -print-gc-sections +QEMU_FLAGS = -fda floppy.img -serial file:serial.log -soundhw sb16 ifneq ($(shell uname -m), i386) ccarch = -m32 @@ -27,16 +28,23 @@ floppy.img: boot.img dd if=/dev/zero of=$@ bs=512 count=2880 dd if=$< of=$@ conv=notrunc +pcboot.iso: floppy.img + rm -rf cdrom + git archive --format=tar --prefix=cdrom/ HEAD | tar xf - + cp $< cdrom + mkisofs -o $@ -R -J -V pcboot -b $< cdrom + + boot.img: bootldr.bin $(bin) cat bootldr.bin $(bin) >$@ -# bootldr.bin will contain only .boot and .boot2 +# bootldr.bin will contain .boot, .boot2, .bootend, and .lowtext bootldr.bin: $(elf) - objcopy -O binary -j '.boot*' $< $@ + objcopy -O binary -j '.boot*' -j .lowtext $< $@ -# the main binary will contain every section *except* .boot and .boot2 +# the main binary will contain every section *except* those $(bin): $(elf) - objcopy -O binary -R '.boot*' $< $@ + objcopy -O binary -R '.boot*' -R .lowtext $< $@ $(elf): $(obj) $(LD) -o $@ $(obj) -Map link.map $(LDFLAGS) @@ -64,18 +72,18 @@ bootldr.disasm: $(elf) objdump -d $< -j .boot -j .boot2 -m i8086 >$@ $(elf).disasm: $(elf) - objdump -d $< -j .startup -j .text -m i386 >$@ + objdump -d $< -j .startup -j .text -j .lowtext -m i386 >$@ $(elf).sym: $(elf) objcopy --only-keep-debug $< $@ .PHONY: run run: $(bin) - qemu-system-i386 -fda floppy.img -serial file:serial.log + qemu-system-i386 $(QEMU_FLAGS) .PHONY: debug debug: $(bin) $(elf).sym - qemu-system-i386 -fda floppy.img -serial file:serial.log -s -S + qemu-system-i386 $(QEMU_FLAGS) -s -S .PHONY: sym sym: $(elf).sym