72 lines
1.7 KiB
Bash
Executable File
72 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
if [ -z ${LINUX_BUILD_TOP} ]; then
|
|
echo "source build/envsetup.sh is required."
|
|
exit 1
|
|
fi
|
|
|
|
MODEL=`echo $NVT_PRJCFG_MODEL_CFG | awk -F'/' '{print $(NF-1)}'`;
|
|
|
|
function make_gcov() {
|
|
cd ${LINUX_BUILD_TOP}
|
|
# modify kernel config to support gcov
|
|
make linux_config_gcov
|
|
if [ $? -ne 0 ]; then
|
|
exit -1;
|
|
fi;
|
|
# make all
|
|
make all
|
|
if [ $? -ne 0 ]; then
|
|
exit -1;
|
|
fi;
|
|
# etc symbolic created after make all
|
|
# remove old export
|
|
sed -i '/GCOV_PREFIX/d' ${ROOTFS_DIR}/rootfs/etc/profile
|
|
# always create new
|
|
echo "export GCOV_PREFIX=/mnt/sd/gcov"${HOME} >> ${ROOTFS_DIR}/rootfs/etc/profile
|
|
echo "export GCOV_PREFIX_STRIP=2" >> ${ROOTFS_DIR}/rootfs/etc/profile
|
|
echo -e "alias gcov_tar=\"cp -rf /sys/kernel/debug/gcov/home \${GCOV_PREFIX}/../../; cd /mnt/sd; tar -jcf gcov.tar.bz2 gcov; sync\"" >> ${ROOTFS_DIR}/rootfs/etc/profile
|
|
# make rootfs and pack again
|
|
make rootfs pack
|
|
./build/rename_gcno.sh
|
|
}
|
|
|
|
function untar() {
|
|
cd ${LINUX_BUILD_TOP}
|
|
tar -jxvf gcov.tar.bz2;chmod -R 755 gcov/
|
|
cp -avf gcov${LINUX_BUILD_TOP} ${LINUX_BUILD_TOP}/../
|
|
}
|
|
|
|
function gen_report_user() {
|
|
rm -rf report_u
|
|
lcov -c -d $1 -t ${MODEL} -o ${MODEL}.user.info --gcov-tool ${CROSS_COMPILE}gcov
|
|
genhtml -o report_u ${MODEL}.user.info
|
|
}
|
|
|
|
function gen_report_kernel() {
|
|
rm -rf report_k
|
|
lcov -c -d $1 -b ${KERNELDIR} -t ${MODEL} -o ${MODEL}.kernel.info --gcov-tool ${CROSS_COMPILE}gcov
|
|
genhtml -o report_k ${MODEL}.kernel.info
|
|
}
|
|
|
|
case $1 in
|
|
make)
|
|
make_gcov
|
|
;;
|
|
untar)
|
|
untar
|
|
;;
|
|
genu)
|
|
if [ -z $2 ]; then
|
|
echo "usage: gcov genu [dir_to_source]"
|
|
exit 1
|
|
fi
|
|
gen_report_user $2
|
|
;;
|
|
genk)
|
|
if [ -z $2 ]; then
|
|
echo "usage: gcov genk [dir_to_source]"
|
|
exit 1
|
|
fi
|
|
gen_report_kernel $2
|
|
;;
|
|
esac |