Files
gb-emu/configure
Max Regan c53802495c build: do not use LTO for --perf
LTO results in a significant performance boost, but hurts debugability of the results from perf. For now, disable it.
2018-07-01 21:54:27 +00:00

82 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
CONFIG_MAK=config.mak
MAKEFILE=Makefile
debug="no"
coverage="no"
release="no"
output_dir="."
proj_dir=$(dirname "$BASH_SOURCE")
for arg in $@; do
case $arg in
--debug)
debug="yes"
;;
--release)
release="yes"
;;
--coverage)
coverage="yes"
;;
--perf)
perf="yes"
;;
*)
echo "unknown option $arg"
exit 1
esac
done
add_define()
{
var=$1
shift
if [[ $# -gt 0 ]]; then
echo "$var=$@" >> $CONFIG_MAK
else
echo "# $var is not defined" >> CONFIG_MAK
fi
}
quiet()
{
$@ 2> /dev/null 1> /dev/null
}
quiet rm $CONFIG_MAK
if [[ ! -e $MAKEFILE ]]; then
quiet ln -s $proj_dir/$MAKEFILE $MAKEFILE
fi
ccflags_extra=""
ldflags_extra=""
if [[ "$debug" == "yes" ]]; then
ccflags_extra="$ccflags_extra -DLOG_LEVEL=5 -DDEBUG -O0 -ggdb"
fi
if [[ "$coverage" == "yes" ]]; then
ccflags_extra="$ccflags_extra --coverage -fprofile-arcs -ftest-coverage"
ldflags_extra="$ldflags_extra -lgcov --coverage"
fi
release_cflags="-O3"
if [[ "$release" == "yes" ]]; then
ccflags_extra="$ccflags_extra $release_cflags -flto"
fi
if [[ "$perf" == "yes" ]]; then
ccflags_extra="$ccflags_extra $release_cflags -ggdb"
fi
add_define CCFLAGS_EXTRA "$ccflags_extra"
add_define LDFLAGS_EXTRA "$ldflags_extra"
add_define SRC_DIR "$proj_dir/src"
exit 0