summaryrefslogtreecommitdiff
path: root/scripts/mkprograms
diff options
context:
space:
mode:
authorJulian Blake Kongslie2022-10-15 12:23:23 -0700
committerJulian Blake Kongslie2022-10-15 12:26:13 -0700
commitf06ab846e3e297007afe65d9f815afff4638af0d (patch)
tree9e84c022a17afae0c1a292deb9b0ad2c8fa8acec /scripts/mkprograms
parentImplement most of the OPR instructions. (diff)
downloadbiggolf-f06ab846e3e297007afe65d9f815afff4638af0d.tar.xz
Automatically discover programs and incorporate into the binary
Diffstat (limited to '')
-rwxr-xr-xscripts/mkprograms39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/mkprograms b/scripts/mkprograms
new file mode 100755
index 0000000..0529e63
--- /dev/null
+++ b/scripts/mkprograms
@@ -0,0 +1,39 @@
1#!/bin/bash
2
3cd programs
4
5cat <<END
6#include <cstdint>
7#include <map>
8#include <string>
9
10#include "programs/programs.h"
11
12extern "C" {
13END
14
15for f in *; do
16 if [[ "$f" == "programs.h" ]]; then
17 continue
18 fi
19 b="${f%.*}"
20 echo " extern std::uint8_t _binary_${b}_bin_start[];"
21done
22
23cat <<END
24}
25
26const std::map<std::string, std::uint8_t *> programs = {
27END
28
29for f in *; do
30 if [[ "$f" == "programs.h" ]]; then
31 continue
32 fi
33 b="${f%.*}"
34 echo " { \"$b\", _binary_${b}_bin_start },"
35done
36
37cat <<END
38};
39END