#!/usr/bin/env bash
set -euo pipefail

project_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
source_file="${project_root}/dos-tools/drive-alias/rialias.S"
output="${1:-${project_root}/dos-tools/drive-alias/rialias.com}"
work="$(mktemp -d)"
trap 'rm -rf -- "$work"' EXIT

for command in as ld; do
  command -v "$command" >/dev/null || {
    echo "Required binutils command is missing: $command" >&2
    exit 1
  }
done

mkdir -p "$(dirname "$output")"
as --32 "$source_file" -o "$work/rialias.o"
ld -m elf_i386 -Ttext 0x100 --oformat binary -e _start "$work/rialias.o" -o "$output"
sha256sum "$output"
