Files
extremely-stupid-idea/compile-blob.sh
2024-01-27 21:06:02 +01:00

31 lines
583 B
Bash
Executable File

#!/bin/sh
set -eu
for cmd in ld as clang-format; do
command -v $cmd &>/dev/null || (echo command $cmd not found; exit 1 )
done
if [ "$#" -ne "1" ]; then
printf "Usage: %s <asm file>" $0 >/dev/stderr
exit 1
fi
as_output=$(mktemp)
ld_output=$(mktemp)
cleanup() {
rm $as_output
rm $ld_output
}
trap cleanup EXIT
as $1 -o $as_output
ld --oformat binary $as_output -o $ld_output
(
echo '#pragma once'
echo 'static const unsigned char binary_data[] = {'
tail $ld_output -c +4097 | hexdump -v --format='"" 1/1 "0x%02x,"'
echo '};'
) | clang-format