Commit ec29c856 authored by Archit Tamarapu's avatar Archit Tamarapu
Browse files

integrate changes to make script independent of cwd from MR !2003...

integrate changes to make script independent of cwd from MR !2003 623cb995
parents 9889b47a 623cb995
Loading
Loading
Loading
Loading
Loading
+19 −17
Original line number Diff line number Diff line
@@ -86,23 +86,28 @@ set -x # echo commands before running

targetdir=c-code_instrument

currdir=$(pwd)
scriptdir=$(dirname $0)
ifdef_list=ifdef_instrument.list
sourcedir=$scriptdir/..
cd $scriptdir

if [[ ($(git rev-parse --is-inside-work-tree) == true) ]]; then
    sourcedir=$(git rev-parse --show-toplevel)
fi

echo "Instrumenting source-code from $sourcedir ..."

rm -Rf $targetdir
mkdir $targetdir

# copy files from source-dir
cp -R ../lib_* $targetdir
cp -R ../apps $targetdir
cp -R ../Makefile $targetdir
if [ -e ../CMakeLists.txt ]; then
cp -R $sourcedir/lib_* $targetdir
cp -R $sourcedir/apps $targetdir
cp -R $sourcedir/Makefile $targetdir
if [ -e $sourcedir/CMakeLists.txt ]; then
    cp -R ../CMakeLists.txt $targetdir
    cp -R $sourcedir/CMakeLists.txt $targetdir
fi
cp -R ../Workspace_msvc $targetdir
cp -R $sourcedir/Workspace_msvc $targetdir

# back up #ifdef-list
rm -f $ifdef_list
@@ -191,7 +196,7 @@ if coan_exists; then
else
    echo "DEBUGGING" >>$ifdef_list
fi
./parse_options_h.sh $parse_options_opt $targetdir/lib_com/options.h >>$ifdef_list
$scriptdir/parse_options_h.sh $parse_options_opt $targetdir/lib_com/options.h >>$ifdef_list
if [ $? -ne 0 ]; then
    exit -1
fi
@@ -214,7 +219,7 @@ if coan_exists; then
    fi
    coan source --replace --no-transients -E -K --file $ifdef_list $targetdir/lib_lc3plus/!(wmc_auto*).[hc]
else
    ./strip_defines_cppp.sh $targetdir $ifdef_list
    $scriptdir/strip_defines_cppp.sh $targetdir $ifdef_list
fi
shopt -u extglob

@@ -223,25 +228,22 @@ find $targetdir -name "*.[ch]" -exec sed -i.bak -e "s/\(0x[0-9a-fA-F]*\)UL/\(\(u

# run wmc_tool, exit if the command fails
set -e
"tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c" >>wmc_tool_output.txt 2>&1
"tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c" >>wmc_tool_output.txt 2>&1
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1
for bak_file in $targetdir/lib_rend/*.bak; do mv "$bak_file" "${bak_file%.*}"; done # restore fresh .c files to avoid time-consuming des-instrumentation of files by the WMC tool
if [ $ISAR -eq 0 ]; then
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" >>wmc_tool_output.txt 2>&1
else
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1
    for bak_file in $targetdir/lib_lc3plus/*.bak; do mv "$bak_file" "${bak_file%.*}"; done # restore fresh .c files to avoid time-consuming des-instrumentation of files by the WMC tool
    if [ -n "$lc3plus_fftdir" ]; then
        for bak_file in $targetdir/lib_lc3plus/fft/*.bak; do mv "$bak_file" "${bak_file%.*}"; done # restore fresh .c files to avoid time-consuming des-instrumentation of files by the WMC tool
    fi
    # ISAR post rend
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$lc3plus_fftdir" >>wmc_tool_output.txt 2>&1
fi
set +e

# automatically enable #define WMOPS in options.h
sed -i.bak -e "s/\/\*[[:space:]]*\(#define[[:space:]]*WMOPS\)[[:space:]]*\*\//\1/g" $targetdir/lib_com/options.h
sed -i.bak -e "s/\/\/[[:space:]]*\(#define[[:space:]]*WMOPS\)/\1/g" $targetdir/lib_com/options.h

# return to start dir
cd "$currdir"