Commit 623cb995 authored by multrus's avatar multrus
Browse files

make prepare-instrumentation more flexible

parent ba27bddf
Loading
Loading
Loading
Loading
Loading
+18 −16
Original line number Diff line number Diff line
@@ -95,23 +95,27 @@ fi

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
cp -R $sourcedir/lib_* $targetdir
cp -R $sourcedir/apps $targetdir
cp -R $sourcedir/Makefile $targetdir
if [ "$PROJECT" = "FLOAT" ]; 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
@@ -155,7 +159,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
@@ -177,7 +181,7 @@ if coan_exists; then
        coan source --replace --no-transients -E -K --file $ifdef_list $targetdir/lib_{com,dec,enc,rend,util}/!(wmc_auto*).[hc]
    fi
else
    ./strip_defines_cppp.sh $targetdir $ifdef_list
    $scriptdir/strip_defines_cppp.sh $targetdir $ifdef_list
fi
shopt -u extglob

@@ -185,23 +189,21 @@ shopt -u extglob
find $targetdir -name "*.[ch]" -exec sed -i.bak -e "s/\(0x[0-9a-fA-F]*\)UL/\(\(unsigned long\)\1\)/" \{\} \;

# run wmc_tool
"tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c"  >> /dev/null
"tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >> /dev/null
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/encoder.c" "$targetdir/lib_enc/*.c" "$targetdir/lib_com/*.c"  >> /dev/null
"$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/decoder.c" "$targetdir/lib_dec/*.c" "$targetdir/lib_rend/*.c" >> /dev/null
# ISAR post-renderer and lc3plus sources only need to be instrumented in float code
if [ "$PROJECT" = "FLOAT" ]; then
    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
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" "$targetdir/lib_lc3plus/*.c" "$targetdir/lib_lc3plus/fft/*.c" >> /dev/null
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" "$targetdir/lib_lc3plus/*.c" "$targetdir/lib_lc3plus/fft/*.c" >> /dev/null
    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
    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
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$targetdir/lib_lc3plus/fft/*.c" >> /dev/null
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/isar_post_rend.c" "$targetdir/lib_isar/*.c" "$targetdir/lib_lc3plus/*.c" "$targetdir/lib_lc3plus/fft/*.c" >> /dev/null
else
    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
    "tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" >> /dev/null
    "$scriptdir/tools/$system/wmc_tool" $wmc_opt -m "$targetdir/apps/renderer.c" "$targetdir/lib_rend/*.c" >> /dev/null
fi

# 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"