devtools: add tags and cscope index generation
This script generates cscope, gtags, and tags index files based on EAL environment(architecture and OS(linux/bsd)). Selection of the architecture and OS environment is based on dpdk configuration target(T=).If EAL environment(T=) is not specified, the script generates tag files based on available source code. Usage: make tags|cscope|gtags|etags [T=config] example usage: make cscope make tags T=x86_64-native-linuxapp-gcc make gtags T=arm64-armv8a-linuxapp-gcc Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> Reviewed-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
parent
f051679dc5
commit
aafaea3d3b
9
.gitignore
vendored
9
.gitignore
vendored
@ -3,3 +3,12 @@ doc/guides/cryptodevs/overview_feature_table.txt
|
|||||||
doc/guides/cryptodevs/overview_cipher_table.txt
|
doc/guides/cryptodevs/overview_cipher_table.txt
|
||||||
doc/guides/cryptodevs/overview_auth_table.txt
|
doc/guides/cryptodevs/overview_auth_table.txt
|
||||||
doc/guides/cryptodevs/overview_aead_table.txt
|
doc/guides/cryptodevs/overview_aead_table.txt
|
||||||
|
cscope.out.po
|
||||||
|
cscope.out.in
|
||||||
|
cscope.out
|
||||||
|
cscope.files
|
||||||
|
GTAGS
|
||||||
|
GPATH
|
||||||
|
GRTAGS
|
||||||
|
tags
|
||||||
|
TAGS
|
||||||
|
233
devtools/build-tags.sh
Executable file
233
devtools/build-tags.sh
Executable file
@ -0,0 +1,233 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
# Generate tags or gtags or cscope or etags files
|
||||||
|
#
|
||||||
|
# BSD LICENSE
|
||||||
|
#
|
||||||
|
# Copyright 2017 Cavium Networks
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions
|
||||||
|
# are met:
|
||||||
|
#
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in
|
||||||
|
# the documentation and/or other materials provided with the
|
||||||
|
# distribution.
|
||||||
|
# * Neither the name of Cavium networks nor the names of its
|
||||||
|
# contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
verbose=false
|
||||||
|
linux=true
|
||||||
|
bsd=true
|
||||||
|
x86_32=true
|
||||||
|
x86_64=true
|
||||||
|
ppc_64=true
|
||||||
|
arm_32=true
|
||||||
|
arm_64=true
|
||||||
|
|
||||||
|
print_usage()
|
||||||
|
{
|
||||||
|
echo "Usage: $(basename $0) [-h] [-v] tags|cscope|gtags|etags [config]"
|
||||||
|
echo "Valid configs are:"
|
||||||
|
make showconfigs | sed 's,^,\t,'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move to the root of the git tree
|
||||||
|
cd $(dirname $0)/..
|
||||||
|
|
||||||
|
while getopts hv ARG ; do
|
||||||
|
case $ARG in
|
||||||
|
v ) verbose=true ;;
|
||||||
|
h ) print_usage; exit 0 ;;
|
||||||
|
? ) print_usage; exit 1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $(($OPTIND - 1))
|
||||||
|
|
||||||
|
#ignore version control files
|
||||||
|
ignore="( -name .svn -o -name CVS -o -name .hg -o -name .git ) -prune -o"
|
||||||
|
|
||||||
|
source_dirs="test app buildtools drivers examples lib"
|
||||||
|
|
||||||
|
skip_bsd="( -name bsdapp ) -prune -o"
|
||||||
|
skip_linux="( -name linuxapp ) -prune -o"
|
||||||
|
skip_arch="( -name arch ) -prune -o"
|
||||||
|
skip_sse="( -name *_sse*.[chS] ) -prune -o"
|
||||||
|
skip_avx="( -name *_avx*.[chS] ) -prune -o"
|
||||||
|
skip_neon="( -name *_neon*.[chS] ) -prune -o"
|
||||||
|
skip_altivec="( -name *_altivec*.[chS] ) -prune -o"
|
||||||
|
skip_arm64="( -name *arm64*.[chS] ) -prune -o"
|
||||||
|
skip_x86="( -name *x86*.[chS] ) -prune -o"
|
||||||
|
skip_32b_files="( -name *_32.h ) -prune -o"
|
||||||
|
skip_64b_files="( -name *_64.h ) -prune -o"
|
||||||
|
|
||||||
|
skiplist="$skip_bsd $skip_linux $skip_arch $skip_sse $skip_avx \
|
||||||
|
$skip_neon $skip_altivec $skip_x86 $skip_arm64"
|
||||||
|
|
||||||
|
find_sources()
|
||||||
|
{
|
||||||
|
find $1 $ignore $3 -name $2 -not -type l -print
|
||||||
|
}
|
||||||
|
|
||||||
|
common_sources()
|
||||||
|
{
|
||||||
|
find_sources "$source_dirs" '*.[chS]' "$skiplist"
|
||||||
|
}
|
||||||
|
|
||||||
|
linux_sources()
|
||||||
|
{
|
||||||
|
find_sources "lib/librte_eal/linuxapp" '*.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
bsd_sources()
|
||||||
|
{
|
||||||
|
find_sources "lib/librte_eal/bsdapp" '*.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
arm_common()
|
||||||
|
{
|
||||||
|
find_sources "lib/librte_eal/common/arch/arm" '*.[chS]'
|
||||||
|
find_sources "$source_dirs" '*neon*.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
arm_32_sources()
|
||||||
|
{
|
||||||
|
arm_common
|
||||||
|
find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \
|
||||||
|
"$skip_64b_files"
|
||||||
|
}
|
||||||
|
|
||||||
|
arm_64_sources()
|
||||||
|
{
|
||||||
|
arm_common
|
||||||
|
find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \
|
||||||
|
"$skip_32b_files"
|
||||||
|
find_sources "$source_dirs" '*arm64.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
x86_common()
|
||||||
|
{
|
||||||
|
find_sources "lib/librte_eal/common/arch/x86" '*.[chS]'
|
||||||
|
|
||||||
|
find_sources "examples/performance-thread/common/arch/x86" '*.[chS]'
|
||||||
|
find_sources "$source_dirs" '*_sse*.[chS]'
|
||||||
|
find_sources "$source_dirs" '*_avx*.[chS]'
|
||||||
|
find_sources "$source_dirs" '*x86.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
x86_32_sources()
|
||||||
|
{
|
||||||
|
x86_common
|
||||||
|
find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \
|
||||||
|
"$skip_64b_files"
|
||||||
|
}
|
||||||
|
|
||||||
|
x86_64_sources()
|
||||||
|
{
|
||||||
|
x86_common
|
||||||
|
find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \
|
||||||
|
"$skip_32b_files"
|
||||||
|
}
|
||||||
|
|
||||||
|
ppc_64_sources()
|
||||||
|
{
|
||||||
|
find_sources "lib/librte_eal/common/arch/ppc_64" '*.[chS]'
|
||||||
|
find_sources "lib/librte_eal/common/include/arch/ppc_64" '*.[chS]'
|
||||||
|
find_sources "$source_dirs" '*altivec*.[chS]'
|
||||||
|
}
|
||||||
|
|
||||||
|
check_valid_target()
|
||||||
|
{
|
||||||
|
cfgfound=false
|
||||||
|
allconfigs=$(make showconfigs)
|
||||||
|
for cfg in $allconfigs ; do
|
||||||
|
if [ "$cfg" = "$1" ] ; then
|
||||||
|
cfgfound=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if ! $cfgfound ; then
|
||||||
|
echo "Invalid config: $1"
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
check_valid_target $2
|
||||||
|
|
||||||
|
echo $2 | grep -q "linuxapp-" || linux=false
|
||||||
|
echo $2 | grep -q "bsdapp-" || bsd=false
|
||||||
|
echo $2 | grep -q "x86_64-" || x86_64=false
|
||||||
|
echo $2 | grep -q "arm-" || arm_32=false
|
||||||
|
echo $2 | grep -q "arm64-" || arm_64=false
|
||||||
|
echo $2 | grep -q "ppc_64-" || ppc_64=false
|
||||||
|
echo $2 | grep -q -e "i686-" -e "x32-" || x86_32=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
all_sources()
|
||||||
|
{
|
||||||
|
common_sources
|
||||||
|
if $linux ; then linux_sources ; fi
|
||||||
|
if $bsd ; then bsd_sources ; fi
|
||||||
|
if $x86_64 ; then x86_64_sources ; fi
|
||||||
|
if $x86_32 ; then x86_32_sources ; fi
|
||||||
|
if $ppc_64 ; then ppc_64_sources ; fi
|
||||||
|
if $arm_32 ; then arm_32_sources ; fi
|
||||||
|
if $arm_64 ; then arm_64_sources ; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
show_flags()
|
||||||
|
{
|
||||||
|
if $verbose ; then
|
||||||
|
echo "mode: $1"
|
||||||
|
echo "config: $2"
|
||||||
|
echo "linux: $linux"
|
||||||
|
echo "bsd: $bsd"
|
||||||
|
echo "x86_32: $x86_32"
|
||||||
|
echo "x86_64: $x86_64"
|
||||||
|
echo "ppc_64: $ppc_64"
|
||||||
|
echo "arm_32: $arm_32"
|
||||||
|
echo "arm_64: $arm_64"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"cscope")
|
||||||
|
show_flags $1 $2
|
||||||
|
all_sources > cscope.files
|
||||||
|
cscope -q -b -f cscope.out
|
||||||
|
;;
|
||||||
|
"gtags")
|
||||||
|
show_flags $1 $2
|
||||||
|
all_sources | gtags -i -f -
|
||||||
|
;;
|
||||||
|
"tags")
|
||||||
|
show_flags $1 $2
|
||||||
|
rm -f tags
|
||||||
|
all_sources | xargs ctags -a
|
||||||
|
;;
|
||||||
|
"etags")
|
||||||
|
show_flags $1 $2
|
||||||
|
rm -f TAGS
|
||||||
|
all_sources | xargs etags -a
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Invalid mode: $1"
|
||||||
|
print_usage
|
||||||
|
;;
|
||||||
|
esac
|
@ -92,6 +92,10 @@ default: all
|
|||||||
config showconfigs showversion showversionum:
|
config showconfigs showversion showversionum:
|
||||||
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
|
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@
|
||||||
|
|
||||||
|
.PHONY: cscope gtags tags etags
|
||||||
|
cscope gtags tags etags:
|
||||||
|
$(Q)$(RTE_SDK)/devtools/build-tags.sh $@ $T
|
||||||
|
|
||||||
.PHONY: test test-basic test-fast test-ring test-mempool test-perf coverage
|
.PHONY: test test-basic test-fast test-ring test-mempool test-perf coverage
|
||||||
test test-basic test-fast test-ring test-mempool test-perf coverage:
|
test test-basic test-fast test-ring test-mempool test-perf coverage:
|
||||||
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@
|
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@
|
||||||
|
Loading…
Reference in New Issue
Block a user