`meson.build` rewritten with DRY principle. `deploy.sh` added, which deploys the image on a installation USB stick borrowed from another project. Image name aligned with the installer's expectations.
37 lines
1.6 KiB
Bash
Executable File
37 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
export CC=clang
|
|
|
|
LOG_LEVEL=1
|
|
for arg in "${@}"; do
|
|
case "${arg}" in
|
|
-v) LOG_LEVEL=2 ;;
|
|
-vv) LOG_LEVEL=3 ;;
|
|
-vvv) LOG_LEVEL=4 ;;
|
|
esac
|
|
done
|
|
|
|
meson setup build --reconfigure -Dc_args="-DLOG_LEVEL=${LOG_LEVEL}"
|
|
meson compile -v -C build
|
|
|
|
sector_size=512
|
|
partition_offset=2048
|
|
|
|
dd if=/dev/zero of=build/os.raw bs="${sector_size}" count="$((partition_offset + 20480))"
|
|
dd if=build/mbr.bin of=build/os.raw bs="${sector_size}" count=1 conv=notrunc
|
|
dd if=build/bootloader.bin of=build/os.raw bs="${sector_size}" seek=1 count="$((partition_offset - 1))" conv=notrunc
|
|
mkfs.fat -F 16 --offset "${partition_offset}" build/os.raw
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" -s src ::src
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/kernel.bin ::kernel.bin
|
|
mmd -i build/os.raw@@"$((partition_offset * sector_size))" ::bin
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/terminal ::bin/terminal
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/shell ::bin/shell
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/echo ::bin/echo
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/ls ::bin/ls
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/cat ::bin/cat
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/cp ::bin/cp
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/mkdir ::bin/mkdir
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/rm ::bin/rm
|
|
mcopy -i build/os.raw@@"$((partition_offset * sector_size))" build/wc ::bin/wc
|