From patchwork Sun Nov 27 00:12:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 17268 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id F391F326B; Sun, 27 Nov 2016 01:13:04 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0065.outbound.protection.outlook.com [104.47.41.65]) by dpdk.org (Postfix) with ESMTP id C7AEB316B for ; Sun, 27 Nov 2016 01:13:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=IORwScaGqG6Jc7XShX8qfib738GOSo57ATx1o/jNHes=; b=Hqh5HcrHrZieLKStDk3KU6pbaP36LORDnlWSVULXuVA2fd9Bbh21CU3fr7z7KvFQVWaecCXFVZqm3k+4LWBSAJx5n8Ndw9GvrZ3Xb3/wewJ+H4u7kru6Z6e8dWS+Zx1IPZ9QOITmd68s+KdeT4VkLOteKIQACe1OWezMsu00IyI= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.net (96.95.216.225) by BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.693.12; Sun, 27 Nov 2016 00:12:55 +0000 From: Jerin Jacob To: CC: , Jerin Jacob Date: Sun, 27 Nov 2016 05:42:42 +0530 Message-ID: <1480205562-32745-1-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 MIME-Version: 1.0 X-Originating-IP: [96.95.216.225] X-ClientProxiedBy: SN1PR11CA0021.namprd11.prod.outlook.com (10.164.10.31) To BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16) X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 2:oYfRrqd/Ay6+woWb0FqbOP0UcICGQa9yC79yXd5lEeKoWygKrV1hcLFoVqGx7WwbtsJvENfBKmmfO/YNKOtIPRRDhRl8Juj4n3F1wd3YJm7wUbd6SWh3p2dYpAAIW1wyh0glTuQYrW14oCRo4bph9F6iduor495NXnmBSs/GD6s=; 3:q6guEJjdEQyzyEb5tNtMFsPuMGsDx2zecEXEaYEkD08RPg1RCuSp+S9bV1AJnlqFFG6Dugbqkspf0xU1uQpsRUCVFRDvTJA0plF4FVGjHB79LIshIs0vvyGOTPH3agHd3AIQ4jpLQLtSg8r6oImUG678WpPUN9Q1MvkPyBA0P7w= X-MS-Office365-Filtering-Correlation-Id: 5ecce7fc-d7d2-4426-782c-08d4165a22fe X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN3PR0701MB1717; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 25:/SszvmJro0QGLadMTp7omQDhShWIivVJNO/8zxn72JWISCVROnHfSKx9sT4/GUewKJN3WkWKbaGJXyUqjH1K4Wryfw/MQhn2wvO3is+4mTbfZBNLZKutHFTmCqB1DYsHtAdmbOKEAjsAn41GS4gSyoLRtxmVUZUbCEcpH1T7S3nDfNlFfvUgkzEtnrzp8AFS3CLmW82ma1XjUslpIlmlkwUz/RtAQsU17A+XhaFxK1wvk07nriS/EGfLDXgpqUGYhlXjldAO0HQ3wEuh0o0hRxoPK/RiitH6FLdPhmx7vRXMn0egC/9Swg/Ll4J6D2ulljWHMdKssfK3SdsLQdljiJPTR1HeH0C860zgZsiVRz+iEesjmw2JXp3u3b0XAUKsx5xmB7J2Bcm7qMR5b6xv1cmFw8hoWqxnlk/913nA2Supn2Uu6eOaM3d85rmz1PDCgLHVqGxOVnu/XMSqMMLVK7Xrq+FECTf4IJE7DvSnX/gBoD/Y3ao4zX7dysSa8fiMZR3qumDnz8HBLcfYhlCZWNhfpYyGd0stOhaku4SN8Ayw3lm7S7u6hI2aDbYNWCkJ5/1fVLBJXl3VhkJkyXGgyKwZOFY0AJzLDKGRQnjFYy1rMR8nnrq3znxnf8sXT0yKnAVGEhS/9ZAHzAo5KRg3RlLr6obenXa89nE9m60RAFYnxmMYEGWnluqWrATbAd3ThFxCwyS70bacTBM6bt0MRml0PP9zgmcpHG7LMzel/lhu4T84MTX0V+9VeiDeZD/+JB4SlbE2v1F5wnUygOkX0AKfdA3GkxH/ogfz3Ix1mGbImV4uHcQIb/Keff9wDWN+ X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 31:SQO6c1vTIAWrwBthC9JcquS+F8dKMjwo8DKV62xpWPWfhHcak4M88THy6CztRiphdKj07NpDUQE8Sp85LSljTVfDseU18udCN7MlqkhkiYXQMukjwI7+ab4JpjDpNMZwua4qe7p0GcGhbXI0KWNhFX4e41xN6Q994YIjtGNesmPlHdi+4hn5RrNg6tTL2QL6AwyjOWzw+jecFrzTZLXVHzviRK32dIhjdku8B6mEcALsDVzIcxCBJuKYUq7469U3jDDVlJVy1ZbbKKkxhwGhL7yCW0awHGt27II0DmJJHFE=; 20:zXXoPQeoY3Sw2suAKiHOS1FKr2KC4ElLt9JUKCjU1vg/7nd5e/UvJxqTNOBmLqNlzO6UaznijzusFk+dhNYqxajI1XXUBqKXO48oQwtD9+hLCRANVY/WNNIutIkzCEx+mz58kOIOHSnBMc1J644aFIyRUHOEtUF4Ano+HZugjSBE+Jw9mj1fYddmls7FcxevT6A04bQJ6QvxfHwTjsMn2hjmtkkx1yhvfogozQadaDbJkDO7Nwvya0i4hTV2YUQNaS7K4GD22sJ9wxu7iF/Xb7Wzi8yz+5tlYNrx2n/Fm4sRD4UYzIM6gwgz5UGYjl+86l1vusJvRmc3ZcHLXwuaavm+T1ZbaEWsUsO7JQxEjLH7H2RBDcz4bNkepqhOiTL0lt6luhL/wjLkDbdGDfnKSSgvZ59/77V23gHR/Zs0y7/qxmr1caWVVj4MJrROA63+CFCvqKb8xAGjX7aV4xnQBYaq+LoAp9gRqb7Et9lf8qEChVOsBNxCZ7Fu0SkJBnBa3uhElMVHG9eHj9bU45aGpp8KNpWFKR/5/fdTK5MucZacyLIwvStf74WfQlpHoMowZ/0yFCzcP0f6/7FnF90LYqlyOMqTYkOysrgmOPDeTQo= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6045199)(6060326)(6040361)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6061324)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025); SRVR:BN3PR0701MB1717; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1717; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 4:xfZJjgu2P0IxzmNtF723MEgDX6vc6MHnqskyWQdPdNGRAFCXd+PDn2Hc4PtGrWiULrSM3IWqYG5D4iFOdq/Vshjj+wSgV5Muy5OhmjNt4h7OIQk+SZHyDlw96JQ/jq9AvxGPZNCPy1q6hQPBEzAmNpGon/ofhZelbTCfvLm6RQrdaYnmhs5495Cl+zgjLlonmW6BvC2DwryClaJD7UVnMNwEBXhZGkez48lYLAYkIXW1dUNeuLv3tC5s4RAddRm+26rSPWJKE1uLsIR27VmegPAV5sObwnHmyQhtX+lUDQAuFo8n/4aL2uJi9nW/mLFMLTI8g0wqdUsNKC6JVXmKKMfUJ7+pnkHPHyb79/lx03oIowt4iqijG/WqUgB6yULkzHRHYaPy9XlQAcw288wsPT0GqZUQEAhBJ1ZKBrNUMlgWcbAWTYwGhJy3GFflftXqsZM2Gl5I9zmAM9dY76fYjXI+h6luJfRcmEVUMrTzMxiPKDCThDRoJHL/iLSt5OdSbkytUWQM9WxtAphXHEbFKuYRCEg0ED0YIpyoKWOL/g/JE89a8ng4Jt3BxAOZby/OZs188U+fR3tY3mzqm0ATR8y4yJDoJAiIydhLerELah8= X-Forefront-PRVS: 0139052FDB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(199003)(189002)(39450400002)(8676002)(21086003)(39400400001)(6486002)(305945005)(81166006)(5660300001)(38730400001)(110136003)(7846002)(4326007)(733004)(4001430100002)(69596002)(50986999)(33026002)(36756003)(2906002)(33646002)(81156014)(42882006)(101416001)(5003940100001)(92566002)(7736002)(50226002)(39380400001)(6916009)(39410400001)(76506005)(3846002)(105586002)(48376002)(2351001)(97736004)(107886002)(106356001)(42186005)(189998001)(68736007)(66066001)(6666003)(47776003)(50466002)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1717; H:localhost.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1717; 23:nvKHPAJWnBpAK8ntLRQ1gZqyK4YJbZ5NWCl6Q85?= =?us-ascii?Q?kG4uYwfr6x20Nr2vKamNKjVMYXaDK5LCpKDYpGVHOb59GALCqnAGQnvsSkTA?= =?us-ascii?Q?1tPtbdxmgOoHrF/z0zjIcOp+1kpBffEjC2uvk8FZ6C9sRxPmavW6rOJgjb3R?= =?us-ascii?Q?6pyI0iYvZNifUH8/bSKwDQoQWEapcJYc4vn7iZ62J6EwyKwdT2tU+E/l3Lqx?= =?us-ascii?Q?tSLiaHfadKThl1k/3pmBDB8IjkxXewomW2DqbMTfsO0kh9fYUTKJq/SQYmij?= =?us-ascii?Q?1XBVCwRbZ4CTaZFlvjbYdr59KvBK0WRpxhOfBxhHixe36bPZhLp5ziTb+i9F?= =?us-ascii?Q?EQPB1v/+UxLouWEQ69u70568wUTFPw497xWyiM45FT39xJGoSVeNC1N7GCOV?= =?us-ascii?Q?3fJx55ABM0hu6ydBDB1tQ7R5Np1K91sFHxE8KLKtQEbTQCD3nu7XdE4Eq6DH?= =?us-ascii?Q?0UQXdKCp2y3X44dieUuD4Uv9M82IH4UIvrUkkwRTnzXt+I7uptXESZWNgd4L?= =?us-ascii?Q?2gGRiMLRfDqrW8czFeRPFZXm+GxLBYOkGRCMotU152ESE38vinXmsDHUszC9?= =?us-ascii?Q?C5T4QMuI8sdAof3d0sQk+Rox9V6UcffLahrcd/apNw85yU6HdWroipEYqxkK?= =?us-ascii?Q?eFZCaaoBegc3T9HD5jFXRMAVRx75WmdLsk/8EORD0/onTwMePnyummiv3dyk?= =?us-ascii?Q?dEbDmLK2bhIk1ONbFNHxRxafRsXIMqrQC59LbI3UJe0D7iyDSteEPyDfd5Uc?= =?us-ascii?Q?Y4CvmNjOKjIst2PAnrNxxlUkpVXNLRHt8JzuT3viB1TH7nHguaBaMN+xsb22?= =?us-ascii?Q?O4IJAWv5BRbz9zz85S5XlOT4k/TVVCXNctFy9Xcf1mSVEP8KxZILjWRyNjNM?= =?us-ascii?Q?NrQo+6yboG698g26H6mRG6PEDAXbMWLSBH3lIJBgzZ7uEdqQwgI7PbPmOBB9?= =?us-ascii?Q?CR4xtcotBx3o1e/A8KQx4zF3i8OQjzvLSuOGfF6YIBYkMaVqMtzBstsRP7Sq?= =?us-ascii?Q?DQ+GOYYPdoHWzZoD9NUcD7uqBLHFyC/aP/YXH2ihD0w/5ZrxrHHhwmBT6grr?= =?us-ascii?Q?Lr5kr9NFwUct+tidElIKXcg48bGpN15wMaxSNzdAXJd04OSRcikTmjazba4g?= =?us-ascii?Q?Ty92edqPHJBR76AJX3Mg4wPiUPr/VjsEaDOki1ivWhE7qsiRSTRr8p4aNxA+?= =?us-ascii?Q?uBtGu7KoSITemhBQ11TuKahGVhIJEwXhvkgO1x5fybgtGX4ruf+BkdJex10x?= =?us-ascii?Q?V0wXEg16NRWl27BBX3Dg4uBgEsSuKIgDpnIKZHEB5j4jBmAeDWsRndBIOLea?= =?us-ascii?Q?TPg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 6:pu796Y/46LBYDCrmfApYAsCbZOrwDk2x93PTdc91REt2r8rr5FtQHQwdBgjn4uPNHuQdt8qqBf2GgOQ25HS1SbGRlX7o2HTKxsNNJa1dbKdOcjI+t86a39s8Pmtg2Dx+HtECag5s81BzeaNE03HSga7k15C/s8JloSh4suPdCqsaMLqoX2h730MHbBivjf6SJTgM91K6WokdWvojuCFGyibRFusuN55C6xhF2AslyN9qlKXcj1WuwouljwwHC/RAGc5eI+tIf1E7LJ0smH5hiNTOKmnTVtSpuF4tJY4Ov1To0GFE42SCB/xCz7+UApr6o40uZ8i9keh1iozMDcYG2TlisHw4038FpD7bviRPbZ0=; 5:/0UuyDyxhs10NO52RgRYy614bTHMC9LrQ6sCfRPM5ypiBOorsZLxGQFWrYRld5Wd01OdTkdDpz+Vtv7PSU3f21L6NmLQPpmxd6DfVtn6fb2/14tqrtZwDg3J0pWFP2K6yW/YrW95zrtvRhabvscry3RzbL/szluy6HxVU/yx64Q=; 24:6CmcGJyvZKafgubOvDr8gck3gE7mPfsC53ZYiTc3tERrDbmnq8M5eS4km/HUkOT3iD/gapzCabvVZq5CMZVtpZcNmfI34oetJ/OohofgeQE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 7:PuKmYKGPTOrBCj/UJn3A9fX5QOecBf/OPWArxKqQqoPhis2yX9N9ptxkdeQY3he7/JHsfDoTsqMQZS4582oHfWXqjrr77qbheEgGSJiTgMOABO0Pj+zLsZnjjkKQS5YwonT31ivH/xF6BCQVArXaaDXvah4wAfgDHavS0qDnv2ZmHbbLMu0mBuwGushN+bcUFsG2rBDsihdC/QGrFzNe/XGxTgImZVy3WSWannZcEGXmXqypysTijyJGMJAL1zCwERpQTx5UNrhpmm/4wyE2sCg1Zc5+3r12qOdd0OncGkpLYnVnNPsHs5jFQdyDD7MzybEMMa/jvQfl43v9GOwE5gU5P0cBSLT/VxLr5fx7O2M= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2016 00:12:55.1869 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1717 Subject: [dpdk-dev] [PATCH] tools: add tags and cscope index file generation support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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=) example usage: make tags T=x86_64-native-linuxapp-gcc make cscope T=x86_64-native-linuxapp-gcc make gtags T=x86_64-native-linuxapp-gcc Signed-off-by: Jerin Jacob Reviewed-by: Yuanhan Liu Reviewed-by: Ferruh Yigit --- .gitignore | 8 ++ mk/rte.sdkroot.mk | 4 + scripts/tags.sh | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 263 insertions(+) create mode 100755 scripts/tags.sh diff --git a/.gitignore b/.gitignore index a722abe..76bcae2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ doc/guides/nics/overview_table.txt +cscope.out.po +cscope.out.in +cscope.out +cscope.files +GTAGS +GPATH +GRTAGS +tags diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk index 04ad523..de6355a 100644 --- a/mk/rte.sdkroot.mk +++ b/mk/rte.sdkroot.mk @@ -92,6 +92,10 @@ default: all config showconfigs showversion showversionum: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkconfig.mk $@ +.PHONY: cscope gtags tags +cscope gtags tags: + $(Q)$(RTE_SDK)/scripts/tags.sh $@ + .PHONY: test fast_test ring_test mempool_test perf_test coverage test fast_test ring_test mempool_test perf_test coverage: $(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdktest.mk $@ diff --git a/scripts/tags.sh b/scripts/tags.sh new file mode 100755 index 0000000..82c1a2a --- /dev/null +++ b/scripts/tags.sh @@ -0,0 +1,251 @@ +#!/bin/bash +# Generate tags or gtags or cscope files +# Usage tags.sh T= [VERBOSE=1] +# set -x + +verbose=false +linuxapp=false +bsdapp=false +x86_64=false +arm=false +arm64=false +ia_32=false +ppc_64=false +tile=false + +if [ "$VERBOSE" = "1" ]; then + verbose=true +fi + +#ignore version control files +ignore="( -name .svn -o -name CVS -o -name .hg -o -name .git ) -prune -o" + +source_dirs="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" +} + +linuxapp_sources() +{ + find_sources "lib/librte_eal/linuxapp" '*.[chS]' +} + +bsdapp_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_sources() +{ + arm_common + find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \ + "$skip_64b_files" +} + +arm64_sources() +{ + arm_common + find_sources "lib/librte_eal/common/include/arch/arm" '*.[chS]' \ + "$skip_32b_files" + find_sources "${source_dirs}" '*arm64.[chS]' +} + +ia_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]' +} + +i686_sources() +{ + ia_common + find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \ + "$skip_64b_files" +} + +x86_64_sources() +{ + ia_common + find_sources "lib/librte_eal/common/include/arch/x86" '*.[chS]' \ + "$skip_32b_files" +} + +ppc64_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]' +} + +tile_sources() +{ + find_sources "lib/librte_eal/common/arch/tile" '*.[chS]' + find_sources "lib/librte_eal/common/include/arch/tile" '*.[chS]' +} + +config_file() +{ + if [ -f $RTE_OUTPUT/include/rte_config.h ]; then + ls $RTE_OUTPUT/include/rte_config.h + fi +} + +usage() +{ + if [ "$1" = 'tags' ] ; then + echo "Generate tags file for editors" + fi + if [ "$1" = 'cscope' ] ; then + echo "Generate cscope index" + fi + if [ "$1" = 'gtags' ] ; then + echo "Generate GNU GLOBAL index" + fi + echo "Usage: make tags|cscope|gtags T= [VERBOSE=1]" + echo "Valid targets are:" + make showconfigs | sed 's,^,\t,' +} + +check_valid_config() +{ + cfgfound=false + allconfigs=`make showconfigs` + for cfg in $allconfigs + do + if [ "$cfg" = "$1" ] ; then + cfgfound=true + fi + done + $cfgfound || echo "Invalid config: $1" + $cfgfound || usage $2 + $cfgfound || exit 0 +} + +if [ -n "$T" ]; then + check_valid_config $T $1 + + if [ `echo $T | grep -c "linuxapp-" ` -gt 0 ]; then + linuxapp=true + fi + + if [ `echo $T | grep -c "bsdapp-" ` -gt 0 ]; then + bsdapp=true + fi + + if [ `echo $T | grep -c "x86_64-" ` -gt 0 ]; then + x86_64=true + fi + + if [ `echo $T | grep -c "i686-" ` -gt 0 ]; then + ia_32=true + fi + + if [ `echo $T | grep -c "x32-" ` -gt 0 ]; then + ia_32=true + fi + + if [ `echo $T | grep -c "arm-" ` -gt 0 ]; then + arm=true + fi + + if [ `echo $T | grep -c "arm64-" ` -gt 0 ]; then + arm64=true + fi + + if [ `echo $T | grep -c "ppc_64-" ` -gt 0 ]; then + ppc_64=true + fi + + if [ `echo $T | grep -c "tile-" ` -gt 0 ]; then + tile=true + fi + + $verbose && echo "linuxapp: $linuxapp" + $verbose && echo "bsdapp: $bsdapp" + $verbose && echo "ia_32: $ia_32" + $verbose && echo "x86_64: $x86_64" + $verbose && echo "arm: $arm" + $verbose && echo "arm64: $arm64" + $verbose && echo "ppc_64: $ppc_64" + $verbose && echo "tile: $tile" + $verbose && echo "build: $RTE_OUTPUT" +else + usage $1 + exit +fi + +all_sources() +{ + common_sources + $linuxapp && linuxapp_sources + $bsdapp && bsdapp_sources + $x86_64 && x86_64_sources + $ia_32 && i686_sources + $arm && arm_sources + $arm64 && arm64_sources + $ppc_64 && ppc64_sources + $tile && tile_sources + config_file +} + +docscope() +{ + all_sources > cscope.files + cscope -q -b -f cscope.out +} + +dogtags() +{ + all_sources | gtags -i -f - +} + +doctags() +{ + all_sources | xargs ctags -a +} + +case "$1" in + "cscope") + docscope + ;; + + "gtags") + dogtags + ;; + "tags") + rm -f tags + doctags + ;; +esac