From 623cb9953681fa855d126552bf004f4b3a0be41f Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Fri, 7 Feb 2025 14:33:03 +0100 Subject: [PATCH] make prepare-instrumentation more flexible --- scripts/prepare_instrumentation.sh | 34 ++++++++++++++++-------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/scripts/prepare_instrumentation.sh b/scripts/prepare_instrumentation.sh index 4ed7098442..8eedf8a0f0 100755 --- a/scripts/prepare_instrumentation.sh +++ b/scripts/prepare_instrumentation.sh @@ -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" -- GitLab