diff options
Diffstat (limited to 'build')
-rwxr-xr-x | build/bootloader.sh | 3 | ||||
-rwxr-xr-x | build/compile.sh | 7 | ||||
-rwxr-xr-x | build/splicetobootsect.sh | 18 |
3 files changed, 28 insertions, 0 deletions
diff --git a/build/bootloader.sh b/build/bootloader.sh new file mode 100755 index 0000000..b56bb3d --- /dev/null +++ b/build/bootloader.sh @@ -0,0 +1,3 @@ +#! /bin/sh +FILENAME="bootloader" +nasm "$FILENAME".asm -f bin -o "$FILENAME".bin diff --git a/build/compile.sh b/build/compile.sh new file mode 100755 index 0000000..efd8962 --- /dev/null +++ b/build/compile.sh @@ -0,0 +1,7 @@ +#! /bin/sh +IN=$1 +FILE=$(basename $1) +gcc -masm=intel -nostartfiles -nostdlib -ffreestanding "$IN".c -o "tmp/$FILE".o +objcopy -S -R .note.gnu.build-id -R .comment -O binary "tmp/$FILE".o "bim/$FILE".bin +rm "$IN".o + diff --git a/build/splicetobootsect.sh b/build/splicetobootsect.sh new file mode 100755 index 0000000..6a2c353 --- /dev/null +++ b/build/splicetobootsect.sh @@ -0,0 +1,18 @@ +#! /bin/bash +if [[ $1 == "" ]]; then + echo "Argument must be the path to a binary to splice into a bootsector" + exit 1 +fi + +INSIZE=$(stat -c%s $1) +if [ $INSIZE -ge 510 ]; then + echo "Input file is greater than bootsector max size: 510 bytes." + exit 1 +fi + +OUTFILE="$(basename $1)_with_bootsect.bin" +echo "Initializing output file" +dd if=bin/dummy.bin of="$OUTFILE" >/dev/null 2>&1 +echo "Splicing binary" +dd if="$1" of="$OUTFILE" conv=notrunc >/dev/null 2>&1 +echo "Done" |