aboutsummaryrefslogtreecommitdiff
path: root/fe
diff options
context:
space:
mode:
Diffstat (limited to 'fe')
-rwxr-xr-xfe27
1 files changed, 27 insertions, 0 deletions
diff --git a/fe b/fe
new file mode 100755
index 0000000..f6d9270
--- /dev/null
+++ b/fe
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+set -e
+test $# -ne 1 && (echo "$0 <file>"; exit 1)
+
+musl=${musl:-$HOME/musl}
+qbeo=$(mktemp).qbe
+tmp=$(mktemp).s
+obj=$(basename $1 .uc).o
+
+if [ -f ./build/prc ]
+then
+ ./build/prc $1 > $qbeo
+elif [ -f ./prc ]
+then
+ ./prc $1 > $qbeo
+else
+ echo "cannot find prc executable in either $PWD/prc or $PWD/build/prc" >&2
+ exit 1
+fi
+
+# uncomment to print out qbe IL output
+cat $qbeo
+qbe -o $tmp $qbeo
+as -o $obj $tmp
+ld -static -z nodefaultlib --gc-sections -o a.out -L $musl/lib/ $musl/lib/crt* $obj -lc
+rm $tmp $qbeo