68 lines
1.4 KiB
Bash
68 lines
1.4 KiB
Bash
|
#!/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"
|