#!/usr/bin/env sh set -e BFC="./build/bfc" SRC="$1" if [ -z "$SRC" ]; then echo "usage: $0 " >&2 exit 1 fi # silently build compiler if missing if [ ! -f "$BFC" ]; then make -s || { echo "build failed" >&2 exit 1 } fi # compile pipeline OUT=$(cat "$SRC" | "$BFC") LDFLAGS="-Os -march=native -mtune=native -flto -fuse-linker-plugin -DNDEBUG -fomit-frame-pointer -nostdlib -nostartfiles -no-pie -fno-stack-protector" echo "$OUT" > out.c echo "$OUT" | gcc $LDFLAGS -o ./bf.out -x c -