#!/bin/sh
# Copyright (C) 2021 David Anderson
# This script is hereby placed in the Public Domain
# for anyone to use in any way for any purpose.
#
# Assumes running from the build directory: path/test
# which is sometimes
# /var/tmp/bld/test
# Sets variables top_srcdir and top_blddir
# If DWTOPSRCDIR is set on entry, top_srcdir
# is set to the value of $DWTOPSRCDIR
# as in this case we are running the script outside
# of the source tree.
#
# This works for cmake,configure, not meson
top_blddir=`pwd`/..
if [ $# -gt 0 ]
then
top_srcdir="$1"
if [ $# -gt 1 ]
then
x="$2"
if [ "$x" = "ninja" ]
then
# For meson only. build run in base build, not test/
top_blddir=`pwd`
echo "For ninja set top blddir $top_blddir"
else
ignore, we leav top_blddir as above.
fi
fi
else
if [ x$DWTOPSRCDIR = "x" ]
then
# Running in the source tree
top_srcdir=$top_blddir
else
# Running outside the source tree (the normal case)
top_srcdir=$DWTOPSRCDIR
fi
fi
srcdir=$top_srcdir/test
echo "TOP topsrc $top_srcdir topbld $top_blddir localsrc $srcdir"
chkres() {
r=$1
m=$2
if [ $r -ne 0 ]
then
echo "FAIL $m. Exit status for the test $r"
fi
}
# In addition the zero date for file time in line tables
# prints differently for different time zones.
textlim=700
cp "$top_srcdir/src/bin/dwarfdump/dwarfdump.conf" .
# detects Windows msys3 mingw executable
if [ -f $top_blddir/src/bin/dwarfdump/.libs/dwarfdump.exe ]
then
bldx=$top_blddir/src
dd=$bldx/bin/dwarfdump/.libs/dwarfdump.exe
if [ ! -f $bldx/bin/dwarfdump/.libs/libdwarf-*.dll ]
then
x="cp $bldx/lib/libdwarf/.libs/libdwarf-*.dll \
$bldx/bin/dwarfdump/.libs/"
echo "Do: $x"
$x
ls $bldx/bin/dwarfdump/.libs/libdwarf*
fi
bldx=
else
dd=$top_blddir/src/bin/dwarfdump/dwarfdump
fi
# Delete what follows 'last time 0x0'
fixlasttime() {
i=$1
t=$2
echo "Fix Last Time to 0, mv $t $i"
sed 's/last time 0x.*/last time 0x0/' <$i >$t
mv $t $i
}