mirror of
https://github.com/davea42/libdwarf-code.git
synced 2025-10-18 18:22:36 +08:00

because will add new functions soon. modified: CMakeLists.txt modified: configure.ac modified: doc/libdwarf.dox modified: doc/libdwarfp.mm modified: meson.build modified: scripts/allsimplebuilds.sh modified: src/lib/libdwarf/libdwarf.h modified: tools/makerelease.sh
334 lines
7.6 KiB
Bash
334 lines
7.6 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 2021 David Anderson
|
|
# This test script is in the public domain for use
|
|
# by anyone for any purpose.
|
|
|
|
echo "simple builds. "
|
|
echo " sh simplebuilds "
|
|
echo " Run from the libdwarf base source directory"
|
|
echo " as scripts/allsimplebuilds.sh "
|
|
|
|
if [ $# -ne 0 ]
|
|
then
|
|
echo " No arguments are necessary or allowed"
|
|
exit 1
|
|
fi
|
|
|
|
spath=`pwd`
|
|
d=2.2.0
|
|
tpath="/tmp/allsimple-v$d"
|
|
bbase=$tpath
|
|
tbase="/tmp/allsimpleinstalled-v$d"
|
|
|
|
echo 'Starting allsimplebuilds.sh' \
|
|
`date "+%Y-%m-%d %H:%M:%S"`
|
|
stsecs=`date '+%s'`
|
|
|
|
|
|
if [ ! -d src ]
|
|
then
|
|
echo "Looks like not running from a source directory."
|
|
echo "Instead make a temporary directory and run from there."
|
|
exit 1
|
|
elif [ ! -d test ]
|
|
then
|
|
echo "Looks like not running from a source directory."
|
|
echo "Instead make a temporary directory and run from there."
|
|
exit 1
|
|
elif [ ! -d doc ]
|
|
then
|
|
echo "Looks like not running from a source directory."
|
|
echo "Instead make a temporary directory and run from there."
|
|
exit 1
|
|
elif [ ! -f configure.ac ]
|
|
then
|
|
echo "Looks like not running from a source directory."
|
|
echo "Instead make a temporary directory and run from there."
|
|
exit 1
|
|
elif [ ! -f README.md ]
|
|
then
|
|
echo "Looks like not running from a source directory."
|
|
echo "Instead make a temporary directory and run from there."
|
|
exit 1
|
|
fi
|
|
|
|
haveapp() {
|
|
x=`which $1`
|
|
if [ "x$x" = "x" ]
|
|
then
|
|
return 1
|
|
fi
|
|
xb=`basename $x`
|
|
if [ "x$xb" = "x$1" ]
|
|
then
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
chkres() {
|
|
if [ $1 -ne 0 ]
|
|
then
|
|
echo "FAIL: $2"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
haveapp make
|
|
if [ $? -eq 0 ]
|
|
then
|
|
havemake=yes
|
|
else
|
|
havemake=no
|
|
fi
|
|
haveapp automake
|
|
if [ $? -eq 0 ]
|
|
then
|
|
haveautomake=yes
|
|
else
|
|
haveautomake=no
|
|
fi
|
|
haveapp cmake
|
|
if [ $? -eq 0 ]
|
|
then
|
|
havecmake=yes
|
|
else
|
|
havecmake=no
|
|
fi
|
|
haveapp meson
|
|
if [ $? -eq 0 ]
|
|
then
|
|
havemeson=yes
|
|
else
|
|
havemeson=no
|
|
fi
|
|
haveapp ninja
|
|
if [ $? -eq 0 ]
|
|
then
|
|
haveninja=yes
|
|
else
|
|
haveninja=no
|
|
fi
|
|
if [ "x$USERDOMAIN" = "xMSYS" ]
|
|
then
|
|
havemsys2=yes
|
|
else
|
|
havemsys2=no
|
|
fi
|
|
echo "have make...................: $havemake"
|
|
echo "have automake...............: $haveautomake"
|
|
echo "have cmake..................: $havecmake"
|
|
echo "have meson..................: $havemeson"
|
|
echo "have ninja..................: $haveninja"
|
|
echo "have msys2..................: $havemsys2"
|
|
|
|
echo "Source directory............: $spath"
|
|
echo "Run builds in temp directory: $bbase"
|
|
echo "Store install directories in: $tbase"
|
|
echo ""
|
|
echo "sleep 6"
|
|
sleep 6
|
|
|
|
echo "Clean out $bbase $tbase entirely."
|
|
rm -rf $bbase
|
|
rm -rf $tbase
|
|
mkdir $bbase
|
|
chkres $? "Failed to create $bbase"
|
|
mkdir $tbase
|
|
chkres $? "Failed to create $tbase"
|
|
|
|
cd $tpath
|
|
chkres $? "cd to $tpath fails"
|
|
rm -rf *
|
|
|
|
echo "You are unlikely to ever need libdwarfp or"
|
|
echo "dwarfgen but we build those here for completeness"
|
|
echo "Building with configure, shared library"
|
|
if [ "$havemake" = "no" ]
|
|
then
|
|
echo "SKIP configure shared library "
|
|
else
|
|
prefx=$tbase/allconfiguresharedinstalled
|
|
bb=$bbase/configureshared
|
|
mkdir $bb
|
|
chkres $? "setup $bb configure shared directory fail a"
|
|
cd $bb
|
|
chkres $? "cd configure shared directory fail b"
|
|
$spath/configure \
|
|
--disable-static \
|
|
--enable-shared \
|
|
--enable-dwarfexample \
|
|
--enable-dwarfgen \
|
|
--prefix=$prefx
|
|
chkres $? "configure setup shared fail c"
|
|
make
|
|
chkres $? "configure setup shared fail d"
|
|
make install
|
|
chkres $? "configure setup shared fail e"
|
|
make check
|
|
chkres $? "configure setup shared fail f"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with configure, static library"
|
|
if [ "$havemake" = "no" ]
|
|
then
|
|
echo "SKIP configure static library"
|
|
elif [ "$havemsys2" = "yes" ]
|
|
then
|
|
echo "SKIP configure static library on Windows msys2"
|
|
else
|
|
prefx=$tbase/allconfigurestaticinstalled
|
|
bb=$bbase/configurestatic
|
|
mkdir $bb
|
|
chkres $? "setup $bb configure static directory fail a"
|
|
cd $bb
|
|
chkres $? "cd configure static directory fail b"
|
|
$spath/configure \
|
|
--disable-shared \
|
|
--enable-static \
|
|
--enable-dwarfexample \
|
|
--enable-dwarfgen \
|
|
--prefix=$prefx
|
|
chkres $? "configure setup static fail c"
|
|
make
|
|
chkres $? "configure setup static fail d"
|
|
make install
|
|
chkres $? "configure setup static fail e"
|
|
make check
|
|
chkres $? "configure setup static fail f"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with meson, shared library"
|
|
if [ "$havemeson" = "no" -o "$haveninja" = "no" ]
|
|
then
|
|
echo "SKIP meson shared library"
|
|
else
|
|
prefx=$tbase/allmesonsharedinstalled
|
|
bb=$bbase/mesonshared
|
|
mkdir $bb
|
|
chkres $? "setup $bb configure static directory fail a"
|
|
cd $bb
|
|
chkres $? "cd meson shared directory fail b"
|
|
meson setup \
|
|
--default-library shared \
|
|
--prefix=$prefx \
|
|
-Dwerror=false \
|
|
-Ddwarfexample=true \
|
|
-Ddwarfgen=true \
|
|
. $spath
|
|
chkres $? "Meson setup shared fail c"
|
|
ninja
|
|
chkres $? "Meson ninja shared fail d"
|
|
ninja install
|
|
chkres $? "Meson ninja install shared fail e"
|
|
ninja test
|
|
chkres $? "Meson ninja test shared fail f"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with meson, static library"
|
|
if [ "$havemeson" = "no" -o "$haveninja" = "no" ]
|
|
then
|
|
echo "SKIP meson static library"
|
|
else
|
|
prefx=$tbase/allmesonstaticinstalled
|
|
bb=$bbase/mesonstatic
|
|
mkdir $bb
|
|
chkres $? "setup $bb meson static directory fail a"
|
|
cd $bb
|
|
chkres $? "cd meson static directory fail b"
|
|
meson setup \
|
|
--default-library static \
|
|
--prefix=$prefx \
|
|
-Dwerror=false \
|
|
-Ddwarfexample=true \
|
|
-Ddwarfgen=true \
|
|
. $spath
|
|
chkres $? "Meson setup static library fail c"
|
|
ninja
|
|
chkres $? "Meson ninja static library fail d"
|
|
ninja install
|
|
chkres $? "Meson ninja install static library fail e"
|
|
ninja test
|
|
chkres $? "Meson ninja test static library fail f"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with cmake, shared library"
|
|
if [ "$havecmake" = "no" -o "$haveninja" = "no" ]
|
|
then
|
|
echo "SKIP cmake shared library"
|
|
else
|
|
prefx=$tbase/allcmakesharedinstalled
|
|
bb=$bbase/cmakeshared
|
|
mkdir $bb
|
|
chkres $? "setup $bb cmake shared directory fail a"
|
|
cd $bb
|
|
chkres $? "cd cmake shared directory fail b"
|
|
cmake -G Ninja \
|
|
-DBUILD_SHARED=YES \
|
|
-DBUILD_NON_SHARED=NO \
|
|
-DBUILD_DWARFEXAMPLE:BOOL=YES \
|
|
-DBUILD_DWARFGEN:BOOL=YES \
|
|
-DDO_TESTING:BOOL=YES \
|
|
-DCMAKE_INSTALL_PREFIX=$prefx \
|
|
$spath
|
|
chkres $? "cmake setup shared library fail c"
|
|
ninja
|
|
chkres $? "cmake setup shared library fail d"
|
|
ninja install
|
|
chkres $? "cmake setup shared library fail e"
|
|
ninja test
|
|
chkres $? "cmake setup shared library fail f"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Building with cmake, static library"
|
|
if [ "$havecmake" = "no" -o "$haveninja" = "no" ]
|
|
then
|
|
echo "SKIP cmake static library"
|
|
else
|
|
prefx=$tbase/allscmakestaticinstalled
|
|
bb=$bbase/cmakestatic
|
|
mkdir $bb
|
|
chkres $? "setup $bb cmake static directory fail a"
|
|
cd $bb
|
|
chkres $? "cd cmake static directory fail b"
|
|
cmake -G Ninja \
|
|
-DBUILD_DWARFEXAMPLE:BOOL=YES \
|
|
-DBUILD_DWARFGEN:BOOL=YES \
|
|
-DBUILD_SHARED=NO \
|
|
-DBUILD_NON_SHARED=YES \
|
|
-DDO_TESTING:BOOL=YES \
|
|
-DCMAKE_INSTALL_PREFIX=$prefx \
|
|
$spath
|
|
chkres $? "cmake setup static library fail c"
|
|
ninja
|
|
chkres $? "cmake setup static library fail d"
|
|
ninja install
|
|
chkres $? "cmake setup static library fail e"
|
|
ninja test
|
|
chkres $? "cmake setup static library fail f"
|
|
fi
|
|
|
|
for i in $tbase/allconfiguresharedinstalled $tbase/allconfigurestaticinstalled $tbase/allmesonsharedinstalled $tbase/allmesonstaticinstalled $tbase/allcmakesharedinstalled $tbase/allscmakestaticinstalled
|
|
do
|
|
cd $i
|
|
find . -type f -print >/tmp/x.$$
|
|
l=`wc -l < /tmp/x.$$`
|
|
echo "$i has $l files"
|
|
rm /tmp/x.$$
|
|
done
|
|
cd $spath
|
|
ndsecs=`date '+%s'`
|
|
showminutes() {
|
|
t=`expr \( $2 \- $1 \+ 29 \) \/ 60`
|
|
echo "Run time in minutes: $t"
|
|
}
|
|
showminutes $stsecs $ndsecs
|
|
echo "PASS scripts/allsimplebuilds.sh"
|
|
exit 0
|