aboutsummaryrefslogtreecommitdiff
path: root/blob
diff options
context:
space:
mode:
Diffstat (limited to 'blob')
-rwxr-xr-xblob25
1 files changed, 25 insertions, 0 deletions
diff --git a/blob b/blob
new file mode 100755
index 0000000..6baae9c
--- /dev/null
+++ b/blob
@@ -0,0 +1,25 @@
+#!/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 <stddef.h>
+
+extern const char ${symbol_base}_head;
+const char* ${symbol_base} = &${symbol_base}_head;
+const size_t ${symbol_base}_size = $(wc -c < "$input");
+
+EOF
+