| 1 | .PHONY: test-clean |
| 2 | test-clean: |
| 3 | $(MAKE) -C test -f test.mk clean |
| 4 | rm -rf test_image test.hdd test.iso |
| 5 | |
| 6 | edk2-ovmf: |
| 7 | curl -L https://github.com/osdev0/edk2-ovmf-nightly/releases/latest/download/edk2-ovmf.tar.gz | gunzip | tar -xf - |
| 8 | |
| 9 | .PHONY: test.hdd |
| 10 | test.hdd: |
| 11 | rm -f test.hdd |
| 12 | dd if=/dev/zero bs=1M count=0 seek=64 of=test.hdd |
| 13 | PATH=$$PATH:/usr/sbin:/sbin parted -s test.hdd mklabel msdos |
| 14 | PATH=$$PATH:/usr/sbin:/sbin parted -s test.hdd mkpart primary 2048s 100% |
| 15 | |
| 16 | .PHONY: mbrtest.hdd |
| 17 | mbrtest.hdd: |
| 18 | rm -f mbrtest.hdd |
| 19 | dd if=/dev/zero bs=1M count=0 seek=64 of=mbrtest.hdd |
| 20 | echo -e "o\nn\np\n1\n2048\n\nt\n6\na\nw\n" | fdisk mbrtest.hdd -H 16 -S 63 |
| 21 | |
| 22 | .PHONY: fat12-test |
| 23 | fat12-test: |
| 24 | $(MAKE) test-clean |
| 25 | $(MAKE) test.hdd |
| 26 | $(MAKE) limine-bios |
| 27 | $(MAKE) limine |
| 28 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 29 | rm -rf test_image/ |
| 30 | mkdir test_image |
| 31 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 32 | sudo partprobe `cat loopback_dev` |
| 33 | sudo mkfs.fat -F 12 `cat loopback_dev`p1 |
| 34 | sudo mount `cat loopback_dev`p1 test_image |
| 35 | sudo mkdir test_image/boot |
| 36 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 37 | sudo cp -rv test/* test_image/boot/ |
| 38 | sync |
| 39 | sudo umount test_image/ |
| 40 | sudo losetup -d `cat loopback_dev` |
| 41 | rm -rf test_image loopback_dev |
| 42 | $(BINDIR)/limine bios-install test.hdd |
| 43 | qemu-system-x86_64 -net none -smp 4 -hda test.hdd -debugcon stdio |
| 44 | |
| 45 | .PHONY: fat16-test |
| 46 | fat16-test: |
| 47 | $(MAKE) test-clean |
| 48 | $(MAKE) test.hdd |
| 49 | $(MAKE) limine-bios |
| 50 | $(MAKE) limine |
| 51 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 52 | rm -rf test_image/ |
| 53 | mkdir test_image |
| 54 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 55 | sudo partprobe `cat loopback_dev` |
| 56 | sudo mkfs.fat -F 16 `cat loopback_dev`p1 |
| 57 | sudo mount `cat loopback_dev`p1 test_image |
| 58 | sudo mkdir test_image/boot |
| 59 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 60 | sudo cp -rv test/* test_image/boot/ |
| 61 | sync |
| 62 | sudo umount test_image/ |
| 63 | sudo losetup -d `cat loopback_dev` |
| 64 | rm -rf test_image loopback_dev |
| 65 | $(BINDIR)/limine bios-install test.hdd |
| 66 | qemu-system-x86_64 -net none -smp 4 -hda test.hdd -debugcon stdio |
| 67 | |
| 68 | .PHONY: legacy-fat16-test |
| 69 | legacy-fat16-test: |
| 70 | $(MAKE) test-clean |
| 71 | $(MAKE) mbrtest.hdd |
| 72 | fdisk -l mbrtest.hdd |
| 73 | $(MAKE) limine-bios |
| 74 | $(MAKE) limine |
| 75 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 76 | rm -rf test_image/ |
| 77 | mkdir test_image |
| 78 | sudo losetup -Pf --show mbrtest.hdd > loopback_dev |
| 79 | sudo partprobe `cat loopback_dev` |
| 80 | sudo mkfs.fat -F 16 `cat loopback_dev`p1 |
| 81 | sudo mount `cat loopback_dev`p1 test_image |
| 82 | sudo mkdir test_image/boot |
| 83 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 84 | sudo cp -rv test/* test_image/boot/ |
| 85 | sync |
| 86 | sudo umount test_image/ |
| 87 | sudo losetup -d `cat loopback_dev` |
| 88 | rm -rf test_image loopback_dev |
| 89 | $(BINDIR)/limine bios-install mbrtest.hdd |
| 90 | qemu-system-i386 -cpu pentium2 -m 16M -M isapc -net none -hda mbrtest.hdd -debugcon stdio |
| 91 | |
| 92 | .PHONY: fat32-test |
| 93 | fat32-test: |
| 94 | $(MAKE) test-clean |
| 95 | $(MAKE) test.hdd |
| 96 | $(MAKE) limine-bios |
| 97 | $(MAKE) limine |
| 98 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 99 | rm -rf test_image/ |
| 100 | mkdir test_image |
| 101 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 102 | sudo partprobe `cat loopback_dev` |
| 103 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 104 | sudo mount `cat loopback_dev`p1 test_image |
| 105 | sudo mkdir test_image/boot |
| 106 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 107 | sudo cp -rv test/* test_image/boot/ |
| 108 | sync |
| 109 | sudo umount test_image/ |
| 110 | sudo losetup -d `cat loopback_dev` |
| 111 | rm -rf test_image loopback_dev |
| 112 | $(BINDIR)/limine bios-install test.hdd |
| 113 | qemu-system-x86_64 -net none -smp 4 -hda test.hdd -debugcon stdio |
| 114 | |
| 115 | .PHONY: iso9660-test |
| 116 | iso9660-test: |
| 117 | $(MAKE) test-clean |
| 118 | $(MAKE) test.hdd |
| 119 | $(MAKE) limine-bios |
| 120 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 121 | rm -rf test_image/ |
| 122 | $(MKDIR_P) test_image/boot |
| 123 | cp -rv $(BINDIR)/* test_image/boot/ |
| 124 | cp -rv test/* test_image/boot/ |
| 125 | xorriso -as mkisofs -b boot/limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table test_image/ -o test.iso |
| 126 | qemu-system-x86_64 -net none -smp 4 -cdrom test.iso -debugcon stdio |
| 127 | |
| 128 | .PHONY: full-hybrid-test |
| 129 | full-hybrid-test: |
| 130 | $(MAKE) edk2-ovmf |
| 131 | $(MAKE) test-clean |
| 132 | $(MAKE) all |
| 133 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 134 | rm -rf test_image/ |
| 135 | $(MKDIR_P) test_image/boot |
| 136 | cp -rv $(BINDIR)/* test_image/boot/ |
| 137 | cp -rv test/* test_image/boot/ |
| 138 | $(MKDIR_P) test_image/EFI/BOOT |
| 139 | cp -v $(BINDIR)/BOOT*.EFI test_image/EFI/BOOT/ |
| 140 | xorriso -as mkisofs -R -r -J -b boot/limine-bios-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus -apm-block-size 2048 --efi-boot boot/limine-uefi-cd.bin -efi-boot-part --efi-boot-image --protective-msdos-label test_image/ -o test.iso |
| 141 | $(BINDIR)/limine bios-install test.iso |
| 142 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4 -cdrom test.iso -debugcon stdio |
| 143 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4 -hda test.iso -debugcon stdio |
| 144 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4 -cdrom test.iso -debugcon stdio |
| 145 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4 -hda test.iso -debugcon stdio |
| 146 | qemu-system-x86_64 -m 512M -M q35 -net none -smp 4 -cdrom test.iso -debugcon stdio |
| 147 | qemu-system-x86_64 -m 512M -M q35 -net none -smp 4 -hda test.iso -debugcon stdio |
| 148 | |
| 149 | .PHONY: pxe-test |
| 150 | pxe-test: |
| 151 | $(MAKE) test-clean |
| 152 | $(MAKE) limine-bios |
| 153 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 154 | rm -rf test_image/ |
| 155 | $(MKDIR_P) test_image/boot |
| 156 | cp -rv $(BINDIR)/* test_image/boot/ |
| 157 | cp -rv test/* test_image/boot/ |
| 158 | qemu-system-x86_64 -smp 4 -netdev user,id=n0,tftp=./test_image,bootfile=boot/limine-bios-pxe.bin -device rtl8139,netdev=n0,mac=00:00:00:11:11:11 -debugcon stdio |
| 159 | |
| 160 | .PHONY: uefi-x86-64-test |
| 161 | uefi-x86-64-test: |
| 162 | $(MAKE) edk2-ovmf |
| 163 | $(MAKE) test-clean |
| 164 | $(MAKE) test.hdd |
| 165 | $(MAKE) limine-uefi-x86-64 |
| 166 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 167 | rm -rf test_image/ |
| 168 | mkdir test_image |
| 169 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 170 | sudo partprobe `cat loopback_dev` |
| 171 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 172 | sudo mount `cat loopback_dev`p1 test_image |
| 173 | sudo mkdir test_image/boot |
| 174 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 175 | sudo cp -rv test/* test_image/boot/ |
| 176 | sudo $(MKDIR_P) test_image/EFI/BOOT |
| 177 | sudo cp $(BINDIR)/BOOTX64.EFI test_image/EFI/BOOT/ |
| 178 | sync |
| 179 | sudo umount test_image/ |
| 180 | sudo losetup -d `cat loopback_dev` |
| 181 | rm -rf test_image loopback_dev |
| 182 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-x86_64.fd,readonly=on -net none -smp 4 -hda test.hdd -debugcon stdio |
| 183 | |
| 184 | .PHONY: uefi-aa64-test |
| 185 | uefi-aa64-test: |
| 186 | $(MAKE) edk2-ovmf |
| 187 | $(MAKE) test-clean |
| 188 | $(MAKE) test.hdd |
| 189 | $(MAKE) limine-uefi-aarch64 |
| 190 | $(MAKE) -C test -f test.mk ARCH=aarch64 |
| 191 | rm -rf test_image/ |
| 192 | mkdir test_image |
| 193 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 194 | sudo partprobe `cat loopback_dev` |
| 195 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 196 | sudo mount `cat loopback_dev`p1 test_image |
| 197 | sudo mkdir test_image/boot |
| 198 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 199 | sudo cp -rv test/* test_image/boot/ |
| 200 | sudo $(MKDIR_P) test_image/EFI/BOOT |
| 201 | sudo cp $(BINDIR)/BOOTAA64.EFI test_image/EFI/BOOT/ |
| 202 | sync |
| 203 | sudo umount test_image/ |
| 204 | sudo losetup -d `cat loopback_dev` |
| 205 | rm -rf test_image loopback_dev |
| 206 | qemu-system-aarch64 -m 512M -M virt -cpu cortex-a72 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-aarch64.fd,readonly=on -net none -smp 4 -device ramfb -device qemu-xhci -device usb-kbd -hda test.hdd -serial stdio |
| 207 | |
| 208 | .PHONY: uefi-rv64-test |
| 209 | uefi-rv64-test: |
| 210 | $(MAKE) edk2-ovmf |
| 211 | $(MAKE) test-clean |
| 212 | $(MAKE) test.hdd |
| 213 | $(MAKE) limine-uefi-riscv64 |
| 214 | $(MAKE) -C test -f test.mk ARCH=riscv64 |
| 215 | rm -rf test_image/ |
| 216 | mkdir test_image |
| 217 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 218 | sudo partprobe `cat loopback_dev` |
| 219 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 220 | sudo mount `cat loopback_dev`p1 test_image |
| 221 | sudo mkdir test_image/boot |
| 222 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 223 | sudo cp -rv test/* test_image/boot/ |
| 224 | sudo $(MKDIR_P) test_image/EFI/BOOT |
| 225 | sudo cp $(BINDIR)/BOOTRISCV64.EFI test_image/EFI/BOOT/ |
| 226 | sync |
| 227 | sudo umount test_image/ |
| 228 | sudo losetup -d `cat loopback_dev` |
| 229 | rm -rf test_image loopback_dev |
| 230 | qemu-system-riscv64 -m 512M -M virt -cpu rv64 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-riscv64.fd,readonly=on -net none -smp 4 -device ramfb -device qemu-xhci -device usb-kbd -hda test.hdd -serial stdio |
| 231 | |
| 232 | .PHONY: uefi-loongarch64-test |
| 233 | uefi-loongarch64-test: |
| 234 | $(MAKE) edk2-ovmf |
| 235 | $(MAKE) test-clean |
| 236 | $(MAKE) test.hdd |
| 237 | $(MAKE) limine-uefi-loongarch64 |
| 238 | $(MAKE) -C test -f test.mk ARCH=loongarch64 |
| 239 | rm -rf test_image/ |
| 240 | mkdir test_image |
| 241 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 242 | sudo partprobe `cat loopback_dev` |
| 243 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 244 | sudo mount `cat loopback_dev`p1 test_image |
| 245 | sudo mkdir test_image/boot |
| 246 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 247 | sudo cp -rv test/* test_image/boot/ |
| 248 | sudo $(MKDIR_P) test_image/EFI/BOOT |
| 249 | sudo cp $(BINDIR)/BOOTLOONGARCH64.EFI test_image/EFI/BOOT/ |
| 250 | sync |
| 251 | sudo umount test_image/ |
| 252 | sudo losetup -d `cat loopback_dev` |
| 253 | rm -rf test_image loopback_dev |
| 254 | qemu-system-loongarch64 -m 1G -net none -M virt -cpu la464 -smp 4 -device ramfb -device qemu-xhci -device usb-kbd -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-loongarch64.fd,readonly=on -hda test.hdd -serial stdio |
| 255 | |
| 256 | .PHONY: uefi-ia32-test |
| 257 | uefi-ia32-test: |
| 258 | $(MAKE) edk2-ovmf |
| 259 | $(MAKE) test-clean |
| 260 | $(MAKE) test.hdd |
| 261 | $(MAKE) limine-uefi-ia32 |
| 262 | $(MAKE) -C test -f test.mk ARCH=x86 |
| 263 | rm -rf test_image/ |
| 264 | mkdir test_image |
| 265 | sudo losetup -Pf --show test.hdd > loopback_dev |
| 266 | sudo partprobe `cat loopback_dev` |
| 267 | sudo mkfs.fat -F 32 `cat loopback_dev`p1 |
| 268 | sudo mount `cat loopback_dev`p1 test_image |
| 269 | sudo mkdir test_image/boot |
| 270 | sudo cp -rv $(BINDIR)/* test_image/boot/ |
| 271 | sudo cp -rv test/* test_image/boot/ |
| 272 | sudo $(MKDIR_P) test_image/EFI/BOOT |
| 273 | sudo cp $(BINDIR)/BOOTIA32.EFI test_image/EFI/BOOT/ |
| 274 | sync |
| 275 | sudo umount test_image/ |
| 276 | sudo losetup -d `cat loopback_dev` |
| 277 | rm -rf test_image loopback_dev |
| 278 | qemu-system-x86_64 -m 512M -M q35 -drive if=pflash,unit=0,format=raw,file=edk2-ovmf/ovmf-code-ia32.fd,readonly=on -net none -smp 4 -hda test.hdd -debugcon stdio |