#!/bin/sh input="$1" base="$2" symbol_base="$(echo "$base" | tr '[:punct:]' '_')" # assembly (used to compile data with custom symbol name) cat << EOF > "$base.s" .section .rodata .global ${symbol_base}_head ${symbol_base}_head: .incbin "$input" EOF # C header cat << EOF > "$base.h" #pragma once // NOTE: THIS FILE IS GENERATED, DO NOT EDIT #include extern const char ${symbol_base}_head; const char* ${symbol_base} = &${symbol_base}_head; const size_t ${symbol_base}_size = $(wc -c < "$input"); EOF