#!/usr/bin/env bash

CC=${CC:-clang}
CFLAGS="-std=c89 -pedantic -Wall -Wextra -lc"
TGT=y

case "$1" in
    asm) $CC $CFLAGS -S main.c -o $TGT.asm ;;
    build) $CC $CFLAGS main.c -o $TGT;;
    sbuild) $CC $CFLAGS -static main.c -o $TGT;;
    release)
             FNAME=y_$(grep VERSION main.c | cut -d ' ' -f 3 | sed 's/"//g').tar.gz;
             git archive -o "$FNAME" HEAD;
             mv "$FNAME" ../homepage/code/
             sed -i "s/y_[0-9]\.[0-9]\.[0-9]\.tar\.gz/$FNAME/g" ../homepage/index.html
             ;;
    debug) $CC $CFLAGS -g main.c -o $TGT;;
    install) $CC $CFLAGS -g main.c -o $TGT && cp $TGT ~/.local/bin/$TGT;;
    map) find . -type f \( -name '*.h' -o -name '*.c' \) -exec grep -HEn '^[^ ].*{' {} +; ;;
    lint) sed -i 's/ *$//' main.c README TODO;;
    *) $CC $CFLAGS -g main.c -o $TGT;;
esac
