summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rwxr-xr-xbuild13
-rwxr-xr-xbuild/bootloader.sh3
-rwxr-xr-xbuild/compile.sh9
-rwxr-xr-xbuild/splicetobootsect.sh18
4 files changed, 13 insertions, 30 deletions
diff --git a/build b/build
new file mode 100755
index 0000000..8ce32ef
--- /dev/null
+++ b/build
@@ -0,0 +1,13 @@
+#! /bin/bash
+set -u
+set -e
+
+sources=$(find src -type f)
+for source in $sources; do
+ build_helpers/compile.sh "$source"
+done
+
+build_helpers/bootloader.sh
+build_helpers/splicetobootsect.sh bin/bootloader.bin
+
+echo "[+] Done!"
diff --git a/build/bootloader.sh b/build/bootloader.sh
deleted file mode 100755
index b56bb3d..0000000
--- a/build/bootloader.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/sh
-FILENAME="bootloader"
-nasm "$FILENAME".asm -f bin -o "$FILENAME".bin
diff --git a/build/compile.sh b/build/compile.sh
deleted file mode 100755
index da75dec..0000000
--- a/build/compile.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#! /bin/sh
-INPATH=$1
-INFILE=$(basename $1)
-INFILENAME="${INFILE%.*}"
-INEXT="${INFILE##*.}"
-gcc -T linker.ld -m32 -nostartfiles -nostdlib -ffreestanding "$INPATH" -o "tmp/$INFILENAME".o
-objcopy -S -R .note.gnu.build-id -R .comment -O binary "tmp/$INFILENAME".o "bin/$INFILENAME".bin
-rm "tmp/$INFILENAME".o
-
diff --git a/build/splicetobootsect.sh b/build/splicetobootsect.sh
deleted file mode 100755
index 7418c9b..0000000
--- a/build/splicetobootsect.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /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. Generated file: $OUTFILE"