mirror of
https://github.com/systemd/systemd.git
synced 2024-12-27 07:22:31 +03:00
54 lines
1.6 KiB
Bash
54 lines
1.6 KiB
Bash
#!/bin/sh
|
|
#
|
|
# gcov capability for udev
|
|
#
|
|
# Provides code coverage analysis for udev.
|
|
#
|
|
# make_gcov.sh assumes the same same default parameters as make, but also
|
|
# accepts the same parameters as make (see README file in udev/ for
|
|
# parameter info). There is one exception, klibc can not be used with
|
|
# gcov as it will not compile cleanly.
|
|
#
|
|
# make_gcov.sh then overrides CFLAGS to strip out optimization in order
|
|
# for gcov to get correct code coverage analysis.
|
|
#
|
|
# Leann Ogasawara <ogasawara@osdl.org>, April 2004
|
|
|
|
# clean up udev dir
|
|
clean_udev () {
|
|
find -name "*.gcno" -exec rm -f "{}" \;
|
|
find -name "*.gcda" -exec rm -f "{}" \;
|
|
find -name "*.gcov" -exec rm -f "{}" \;
|
|
rm -f udev_gcov.txt
|
|
make clean
|
|
}
|
|
|
|
PWD=`pwd`
|
|
GCCINCDIR=`gcc -print-search-dirs | sed -ne "s/install: \(.*\)/\1include/gp"`
|
|
LIBSYSFS="-I$PWD/libsysfs/sysfs -I$PWD/libsysfs"
|
|
WARNINGS="-Wall -Wshadow -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations"
|
|
GCC="-I$GCCINCDIR"
|
|
USE_LOG="-DUSE_LOG"
|
|
DEBUG="-D_GNU_SOURCE"
|
|
GCOV_FLAGS="-pipe -fprofile-arcs -ftest-coverage"
|
|
|
|
for i in $*; do
|
|
pre=`echo $i | sed 's/=.*//g'`
|
|
post=`echo $i | sed 's/.*=//g'`
|
|
if [ $pre = "USE_KLIBC" ] && [ $post = "true" ]; then
|
|
echo "cannot use gcov with klibc, will not compile"
|
|
exit
|
|
elif [ $pre = "USE_LOG" ] && [ $post = "false" ]; then
|
|
USE_LOG=""
|
|
elif [ $pre = "DEBUG" ] && [ $post = "true" ]; then
|
|
DEBUG="-g -DDEBUG -D_GNU_SOURCE"
|
|
elif [ $pre = "clean" ]; then
|
|
clean_udev
|
|
exit
|
|
fi
|
|
done
|
|
|
|
clean_udev
|
|
|
|
make $* CFLAGS="$WARNINGS $GCOV_FLAGS $USE_LOG $DEBUG $GCC $LIBSYSFS" LDFLAGS="-Wl,-warn-common -fprofile-arcs"
|