Added macros for profiling functions and made it possible to compile the
profiling code out
This commit is contained in:
@@ -2,32 +2,89 @@
|
||||
|
||||
CC=clang
|
||||
CXX=clang++
|
||||
CFLAGS="-Wall -Wextra -Iinclude "
|
||||
CFLAGS="-Wall -Wextra -I$(realpath ./include) "
|
||||
|
||||
if [[ "$1" == "release" ]]; then
|
||||
# PARSE ARGUMENTS
|
||||
# From this StackOverflow answer https://stackoverflow.com/a/14203146
|
||||
while [[ $# > 0 ]];do
|
||||
case $1 in
|
||||
--release)
|
||||
RELEASE=true
|
||||
shift
|
||||
;;
|
||||
--enable-profiling)
|
||||
ENABLE_PROFILING=true
|
||||
shift
|
||||
;;
|
||||
*|-*|--*)
|
||||
echo "Unknown option $1"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
# BUILD TYPE
|
||||
if [[ $RELEASE == true ]]; then
|
||||
CFLAGS+="-O3"
|
||||
else
|
||||
CFLAGS+="-g"
|
||||
fi
|
||||
|
||||
# profiler
|
||||
PROFSRC="./src/profiler/timer.c"
|
||||
PROFFLAGS="-c"
|
||||
|
||||
# generator
|
||||
GENSRC="./src/generator/gen_argparser.cpp ./src/generator/generator.cpp ./src/haversine.cpp ./src/point_types.cpp ./src/generator/main.cpp"
|
||||
# GENERATOR
|
||||
GENSRC="./src/generator/gen_argparser.cpp \
|
||||
./src/generator/generator.cpp \
|
||||
./src/haversine.cpp \
|
||||
./src/point_types.cpp \
|
||||
./src/generator/main.cpp"
|
||||
GENOUT=genhavr
|
||||
|
||||
(set -x ; $CXX $CFLAGS $GENSRC -o $GENOUT)
|
||||
echo
|
||||
|
||||
# processor
|
||||
JSONSRC="./src/json/*.c"
|
||||
|
||||
# PROFILER
|
||||
PROFSRC="../src/profiler/timer.c"
|
||||
PROFFLAGS="-c"
|
||||
PROF_BUILD_DIR=prof_build
|
||||
|
||||
# PROCESSOR
|
||||
JSONSRC="../src/json/*.c"
|
||||
JSONFLAGS="-c"
|
||||
PROCSRC="./*.o ./src/haversine.cpp ./src/point_types.cpp ./src/processor/proc_argparser.cpp ./src/processor/main.cpp"
|
||||
JSON_BUILD_DIR=json_build
|
||||
|
||||
PROCSRC="./$JSON_BUILD_DIR/*.o \
|
||||
./src/haversine.cpp \
|
||||
./src/point_types.cpp \
|
||||
./src/processor/proc_argparser.cpp \
|
||||
./src/processor/main.cpp "
|
||||
PROCOUT=prochavr
|
||||
|
||||
(set -x ; $CC $CFLAGS $PROFFLAGS $PROFSRC)
|
||||
(set -x ; $CC $CFLAGS $JSONFLAGS $JSONSRC)
|
||||
(set -x ; $CXX $CFLAGS $PROCSRC -o $PROCOUT)
|
||||
if [[ $ENABLE_PROFILING == true ]]; then
|
||||
PROCSRC+="./$PROF_BUILD_DIR/*.o"
|
||||
PROCFLAGS="-DENABLE_PROFILING"
|
||||
|
||||
rm ./*.o
|
||||
mkdir $PROF_BUILD_DIR
|
||||
cd $PROF_BUILD_DIR
|
||||
|
||||
(set -x ; $CC $CFLAGS $PROFFLAGS $PROFSRC)
|
||||
echo
|
||||
|
||||
cd ../
|
||||
fi
|
||||
|
||||
mkdir $JSON_BUILD_DIR
|
||||
cd $JSON_BUILD_DIR
|
||||
|
||||
(set -x ; $CC $CFLAGS $JSONFLAGS $JSONSRC)
|
||||
echo
|
||||
|
||||
cd ../
|
||||
|
||||
(set -x ; $CXX $CFLAGS $PROCFLAGS $PROCSRC -o $PROCOUT)
|
||||
echo
|
||||
|
||||
|
||||
# CLEAR BUILD FILES
|
||||
rm -rvf $JSON_BUILD_DIR $PROF_BUILD_DIR
|
||||
|
||||
Reference in New Issue
Block a user