makefile
This commit is contained in:
parent
74790b7525
commit
75d8667cb3
45
Makefile
45
Makefile
|
@ -1,37 +1,46 @@
|
||||||
MACHINE=mac99
|
MACHINE = mac99
|
||||||
PPC=powerpc-eabi
|
PPC = powerpc-eabi
|
||||||
QEMU=qemu-system-ppc
|
QEMU = qemu-system-ppc
|
||||||
RES=1600x900x32
|
RES = 1600x900x32
|
||||||
|
|
||||||
|
SOURCES_C = $(wildcard entry/*.c)
|
||||||
|
SOURCES_S = $(wildcard entry/*.s)
|
||||||
|
|
||||||
|
OBJECTS = $(SOURCES_C:.c=.elf) $(SOURCES_S:.s=.elf)
|
||||||
|
|
||||||
|
.PHONY: all clean run debug beige
|
||||||
|
|
||||||
DISK.APM: kernel.elf bootinfo.txt scripts/kpartx.sh
|
DISK.APM: kernel.elf bootinfo.txt scripts/kpartx.sh
|
||||||
dd bs=512K count=2 if=/dev/zero of=DISK.APM
|
dd bs=512K count=2 if=/dev/zero of=DISK.APM
|
||||||
parted DISK.APM --script mklabel mac mkpart primary hfs+ 32.8KB 100%
|
parted DISK.APM --script mklabel mac mkpart primary hfs+ 32.8KB 100%
|
||||||
sudo chmod +x scripts/kpartx.sh
|
sudo chmod +x scripts/kpartx.sh
|
||||||
sudo ./scripts/kpartx.sh
|
sudo ./scripts/kpartx.sh
|
||||||
sudo mkdir /mnt/ppc
|
sudo mkdir -p /mnt/ppc /mnt/boot
|
||||||
sudo mkdir /mnt/boot
|
|
||||||
sudo cp bootinfo.txt /mnt/ppc
|
sudo cp bootinfo.txt /mnt/ppc
|
||||||
sudo cp kernel.elf /mnt/boot
|
sudo cp kernel.elf /mnt/boot
|
||||||
sudo umount /mnt/
|
sudo umount /mnt/
|
||||||
sudo kpartx -d DISK.APM
|
sudo kpartx -d DISK.APM
|
||||||
|
|
||||||
bootinfo.txt: loader/load.fth loader/def.fth
|
bootinfo.txt: loader/load.fth loader/def.fth
|
||||||
echo "<chrp-boot><boot-script>" >> bootinfo.txt
|
echo "<chrp-boot><boot-script>" >> bootinfo.txt
|
||||||
cat loader/def.fth >> bootinfo.txt
|
cat loader/def.fth >> bootinfo.txt
|
||||||
cat loader/load.fth >> bootinfo.txt
|
cat loader/load.fth >> bootinfo.txt
|
||||||
echo "</boot-script></chrp-boot>" >> bootinfo.txt
|
echo "</boot-script></chrp-boot>" >> bootinfo.txt
|
||||||
kernel.elf: start.elf boot.elf
|
|
||||||
$(PPC)-ld -Ttext=0x200000 -Tdata=0x300000 start.elf boot.elf -o kernel.elf
|
kernel.elf: $(OBJECTS)
|
||||||
boot.elf: entry/boot.c entry/boot.h
|
$(PPC)-ld -Ttext=0x200000 -Tdata=0x300000 $^ -o $@
|
||||||
$(PPC)-gcc -c entry/boot.c -o boot.elf
|
|
||||||
start.elf: entry/start.s
|
%.elf: %.c
|
||||||
$(PPC)-as -c entry/start.s -o start.elf
|
$(PPC)-gcc -c $< -o $@
|
||||||
|
|
||||||
|
%.elf: %.s
|
||||||
|
$(PPC)-as -c $< -o $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm *.APM *elf *txt
|
rm -f *.APM *elf *txt
|
||||||
|
|
||||||
run:
|
run:
|
||||||
$(QEMU) -hda *.APM -g $(RES) -machine $(MACHINE)
|
$(QEMU) -hda *.APM -g $(RES) -machine $(MACHINE)
|
||||||
beige:
|
|
||||||
$(QEMU) -hda *.APM -g $(RES) -machine g3beige
|
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
$(QEMU) -hda *.APM -d in_asm -g $(RES) -machine $(MACHINE)
|
$(QEMU) -hda *.APM -d in_asm -g $(RES) -machine $(MACHINE)
|
||||||
all:
|
|
||||||
make clean && make && make run
|
|
||||||
|
|
Loading…
Reference in New Issue