#!/usr/bin/env bash set -e mkdir -p build/ build_debug() { gcc -g -c -o build/shadow_parser.o src/shadow_parser.c -I inc/ ar -rvs build/libparzel-shadow.a \ build/shadow_parser.o mv build/libparzel-shadow.a . gcc -g -o write_shadow_names.elf main.c libparzel-shadow.a -I inc/ } build_fast() { gcc -O3 -c -o build/shadow_parser.o src/shadow_parser.c -I inc/ ar -rvs build/libparzel-shadow.a \ build/shadow_parser.o mv build/libparzel-shadow.a . gcc -O3 -o write_shadow_names.elf main.c libparzel-shadow.a -I inc/ } build_small() { gcc -Os -c -o build/shadow_parser.o src/shadow_parser.c -I inc/ ar -rvs build/libparzel-shadow.a \ build/shadow_parser.o mv build/libparzel-shadow.a . gcc -Os -o write_shadow_names.elf main.c libparzel-shadow.a -I inc/ } BUILD_PROFILE=$1 REMAINING_TRIES=3 while [[ $REMAINING_TRIES > 0 ]] do case $BUILD_PROFILE in "debug") build_debug exit ;; "release" | "fast") build_fast exit ;; "small") build_small exit ;; "cleanup") rm write_shadow_names.elf rm libparzel-shadow.a rm -r build/ exit ;; *) printf "Profile (debug | release | small): " read BUILD_PROFILE ;; esac let REMAINING_TRIES-- done echo "Tries exhausted"