From c0ab4a627bca92268b9ecadc03298b8573b5d2ae Mon Sep 17 00:00:00 2001 From: iximeow Date: Wed, 24 Sep 2014 12:15:06 -0700 Subject: Initial commit --- build/bootloader.sh | 3 +++ build/compile.sh | 7 +++++++ build/splicetobootsect.sh | 18 ++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100755 build/bootloader.sh create mode 100755 build/compile.sh create mode 100755 build/splicetobootsect.sh (limited to 'build') 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" -- cgit v1.1