#!/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" ;; *) 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 if [[ "$release" == "yes" ]]; then ccflags_extra="$ccflags_extra -O3" fi add_define CCFLAGS_EXTRA "$ccflags_extra" add_define LDFLAGS_EXTRA "$ldflags_extra" add_define OUT "$output_dir" add_define SRC_DIR "$proj_dir/src" exit 0