DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/3] generalize builds apps using meson
@ 2018-02-16 16:53 Bruce Richardson
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 1/3] app: generalize building of " Bruce Richardson
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Bruce Richardson @ 2018-02-16 16:53 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Put the building of the apps into a foreach loop as is done with the libs
and drivers in the DPDK meson build. This will reduce the path needed to
call the compiled binaries in the build directory by one level, while the
main benefit is reduced code duplication between the different apps.

Bruce Richardson (3):
  app: generalize building of apps using meson
  app/proc_info: rename folder to remove underscore
  app: add all remaining apps to meson build

 app/meson.build                       | 47 +++++++++++++++++++++++++++++++++--
 app/pdump/meson.build                 |  6 +++++
 app/{proc_info => proc-info}/Makefile |  0
 app/{proc_info => proc-info}/main.c   |  0
 app/proc-info/meson.build             |  6 +++++
 app/test-bbdev/meson.build            |  9 +++++++
 app/test-crypto-perf/meson.build      | 14 +++++++++++
 app/test-eventdev/meson.build         | 15 +----------
 app/test-pmd/meson.build              | 20 ++-------------
 9 files changed, 83 insertions(+), 34 deletions(-)
 create mode 100644 app/pdump/meson.build
 rename app/{proc_info => proc-info}/Makefile (100%)
 rename app/{proc_info => proc-info}/main.c (100%)
 create mode 100644 app/proc-info/meson.build
 create mode 100644 app/test-bbdev/meson.build
 create mode 100644 app/test-crypto-perf/meson.build

-- 
2.14.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 1/3] app: generalize building of apps using meson
  2018-02-16 16:53 [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
@ 2018-02-16 16:53 ` Bruce Richardson
  2018-03-12 12:25   ` Van Haaren, Harry
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore Bruce Richardson
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2018-02-16 16:53 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Since most apps are built in largely the same way, generalize the logic
into a foreach loop in app/meson.build file.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 app/meson.build               | 52 +++++++++++++++++++++++++++++++++++++++++--
 app/test-eventdev/meson.build | 18 ++-------------
 app/test-pmd/meson.build      | 22 +++---------------
 3 files changed, 55 insertions(+), 37 deletions(-)

diff --git a/app/meson.build b/app/meson.build
index 0088de464..7491316e3 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -1,5 +1,53 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-subdir('test-pmd')
-subdir('test-eventdev')
+apps = ['test-eventdev',
+	'test-pmd']
+
+# for BSD only
+lib_execinfo = cc.find_library('execinfo', required: false)
+
+foreach app:apps
+	build = true
+	name = app
+	allow_experimental_apis = false
+	sources = []
+	includes = []
+	cflags = machine_args
+	objs = [] # other object files to link against, used e.g. for
+	          # instruction-set optimized versions of code
+
+	# use "deps" for internal DPDK dependencies, and "ext_deps" for
+	# external package/library requirements
+	ext_deps = []
+	deps = []
+
+	subdir(name)
+
+	if build
+		dep_objs = []
+		foreach d:deps
+			dep_objs += get_variable(get_option('default_library')
+				 + '_rte_' + d)
+		endforeach
+		dep_objs += lib_execinfo
+
+		link_libs = []
+		if get_option('default_library') == 'static'
+			link_libs = dpdk_drivers
+		endif
+
+		if allow_experimental_apis
+			cflags += '-DALLOW_EXPERIMENTAL_API'
+		endif
+
+		executable('dpdk-' + name,
+				sources,
+				c_args: cflags,
+				link_whole: link_libs,
+				dependencies: dep_objs,
+				install_rpath: join_paths(get_option('prefix'),
+						 driver_install_path),
+				install: true)
+	endif
+endforeach
diff --git a/app/test-eventdev/meson.build b/app/test-eventdev/meson.build
index 7c373c87b..a81dcd131 100644
--- a/app/test-eventdev/meson.build
+++ b/app/test-eventdev/meson.build
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Cavium, Inc
 
+allow_experimental_apis = true
 sources = files('evt_main.c',
 		'evt_options.c',
 		'evt_test.c',
@@ -11,19 +12,4 @@ sources = files('evt_main.c',
 		'test_perf_common.c',
 		'test_perf_atq.c',
 		'test_perf_queue.c')
-
-dep_objs = [get_variable(get_option('default_library') + '_rte_eventdev')]
-dep_objs += cc.find_library('execinfo', required: false) # BSD only
-
-link_libs = []
-if get_option('default_library') == 'static'
-	link_libs = dpdk_drivers
-endif
-
-executable('dpdk-test-eventdev',
-	sources,
-	c_args: [machine_args, '-DALLOW_EXPERIMENTAL_API'],
-	link_whole: link_libs,
-	dependencies: dep_objs,
-	install_rpath: join_paths(get_option('prefix'), driver_install_path),
-	install: true)
+deps += 'eventdev'
diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build
index 7ed74db2b..b5bb2e70d 100644
--- a/app/test-pmd/meson.build
+++ b/app/test-pmd/meson.build
@@ -1,6 +1,9 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
+# override default name to drop the hyphen
+name = 'testpmd'
+allow_experimental_apis = true
 sources = files('cmdline.c',
 	'cmdline_flow.c',
 	'cmdline_mtr.c',
@@ -32,22 +35,3 @@ if dpdk_conf.has('RTE_LIBRTE_SOFTNIC_PMD')
 	sources += files('tm.c')
 	deps += 'pmd_softnic'
 endif
-
-dep_objs = []
-foreach d:deps
-	dep_objs += get_variable(get_option('default_library') + '_rte_' + d)
-endforeach
-dep_objs += cc.find_library('execinfo', required: false) # for BSD only
-
-link_libs = []
-if get_option('default_library') == 'static'
-	link_libs = dpdk_drivers
-endif
-
-executable('dpdk-testpmd',
-	sources,
-	c_args: [machine_args, '-DALLOW_EXPERIMENTAL_API'],
-	link_whole: link_libs,
-	dependencies: dep_objs,
-	install_rpath: join_paths(get_option('prefix'), driver_install_path),
-	install: true)
-- 
2.14.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore
  2018-02-16 16:53 [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 1/3] app: generalize building of " Bruce Richardson
@ 2018-02-16 16:53 ` Bruce Richardson
  2018-03-12 12:30   ` Van Haaren, Harry
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build Bruce Richardson
  2018-03-12 15:06 ` [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
  3 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2018-02-16 16:53 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

All other apps in the app folder use "-" rather than "_" to separate words
in the app name, so rename proc_info to be consistent.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 app/Makefile                          | 2 +-
 app/{proc_info => proc-info}/Makefile | 0
 app/{proc_info => proc-info}/main.c   | 0
 3 files changed, 1 insertion(+), 1 deletion(-)
 rename app/{proc_info => proc-info}/Makefile (100%)
 rename app/{proc_info => proc-info}/main.c (100%)

diff --git a/app/Makefile b/app/Makefile
index 0eaed5384..069fa9849 100644
--- a/app/Makefile
+++ b/app/Makefile
@@ -4,7 +4,7 @@
 include $(RTE_SDK)/mk/rte.vars.mk
 
 DIRS-$(CONFIG_RTE_TEST_PMD) += test-pmd
-DIRS-$(CONFIG_RTE_PROC_INFO) += proc_info
+DIRS-$(CONFIG_RTE_PROC_INFO) += proc-info
 DIRS-$(CONFIG_RTE_LIBRTE_PDUMP) += pdump
 
 ifeq ($(CONFIG_RTE_LIBRTE_BBDEV),y)
diff --git a/app/proc_info/Makefile b/app/proc-info/Makefile
similarity index 100%
rename from app/proc_info/Makefile
rename to app/proc-info/Makefile
diff --git a/app/proc_info/main.c b/app/proc-info/main.c
similarity index 100%
rename from app/proc_info/main.c
rename to app/proc-info/main.c
-- 
2.14.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build
  2018-02-16 16:53 [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 1/3] app: generalize building of " Bruce Richardson
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore Bruce Richardson
@ 2018-02-16 16:53 ` Bruce Richardson
  2018-03-12 12:29   ` Van Haaren, Harry
  2018-03-12 15:06 ` [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
  3 siblings, 1 reply; 8+ messages in thread
From: Bruce Richardson @ 2018-02-16 16:53 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Add remaining subdirectories in the app folder to the meson build.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 app/meson.build                  |  6 +++++-
 app/pdump/meson.build            |  6 ++++++
 app/proc-info/meson.build        |  6 ++++++
 app/test-bbdev/meson.build       |  9 +++++++++
 app/test-crypto-perf/meson.build | 14 ++++++++++++++
 5 files changed, 40 insertions(+), 1 deletion(-)
 create mode 100644 app/pdump/meson.build
 create mode 100644 app/proc-info/meson.build
 create mode 100644 app/test-bbdev/meson.build
 create mode 100644 app/test-crypto-perf/meson.build

diff --git a/app/meson.build b/app/meson.build
index 7491316e3..99e0b93ec 100644
--- a/app/meson.build
+++ b/app/meson.build
@@ -1,7 +1,11 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2017 Intel Corporation
 
-apps = ['test-eventdev',
+apps = ['pdump',
+	'proc-info',
+	'test-bbdev',
+	'test-crypto-perf',
+	'test-eventdev',
 	'test-pmd']
 
 # for BSD only
diff --git a/app/pdump/meson.build b/app/pdump/meson.build
new file mode 100644
index 000000000..988cb4eb2
--- /dev/null
+++ b/app/pdump/meson.build
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sources = files('main.c')
+allow_experimental_apis = true
+deps = ['ethdev', 'kvargs', 'pdump']
diff --git a/app/proc-info/meson.build b/app/proc-info/meson.build
new file mode 100644
index 000000000..9c148e36e
--- /dev/null
+++ b/app/proc-info/meson.build
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sources = files('main.c')
+allow_experimental_apis = true
+deps = ['ethdev', 'metrics']
diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build
new file mode 100644
index 000000000..653907ded
--- /dev/null
+++ b/app/test-bbdev/meson.build
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sources = files('main.c',
+		'test_bbdev.c',
+		'test_bbdev_perf.c',
+		'test_bbdev_vector.c')
+allow_experimental_apis = true
+deps = ['bbdev', 'bus_vdev']
diff --git a/app/test-crypto-perf/meson.build b/app/test-crypto-perf/meson.build
new file mode 100644
index 000000000..6eb22a5fd
--- /dev/null
+++ b/app/test-crypto-perf/meson.build
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sources = files('cperf_ops.c',
+		'cperf_options_parsing.c',
+		'cperf_test_common.c',
+		'cperf_test_latency.c',
+		'cperf_test_pmd_cyclecount.c',
+		'cperf_test_throughput.c',
+		'cperf_test_vector_parsing.c',
+		'cperf_test_vectors.c',
+		'cperf_test_verify.c',
+		'main.c')
+deps = ['cryptodev']
-- 
2.14.3

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 1/3] app: generalize building of apps using meson
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 1/3] app: generalize building of " Bruce Richardson
@ 2018-03-12 12:25   ` Van Haaren, Harry
  0 siblings, 0 replies; 8+ messages in thread
From: Van Haaren, Harry @ 2018-03-12 12:25 UTC (permalink / raw)
  To: Richardson, Bruce, dev; +Cc: Richardson, Bruce

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Friday, February 16, 2018 4:54 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [dpdk-dev] [PATCH 1/3] app: generalize building of apps using meson
> 
> Since most apps are built in largely the same way, generalize the logic
> into a foreach loop in app/meson.build file.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build Bruce Richardson
@ 2018-03-12 12:29   ` Van Haaren, Harry
  0 siblings, 0 replies; 8+ messages in thread
From: Van Haaren, Harry @ 2018-03-12 12:29 UTC (permalink / raw)
  To: Richardson, Bruce, dev; +Cc: Richardson, Bruce

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Friday, February 16, 2018 4:54 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build
> 
> Add remaining subdirectories in the app folder to the meson build.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore Bruce Richardson
@ 2018-03-12 12:30   ` Van Haaren, Harry
  0 siblings, 0 replies; 8+ messages in thread
From: Van Haaren, Harry @ 2018-03-12 12:30 UTC (permalink / raw)
  To: Richardson, Bruce, dev; +Cc: Richardson, Bruce

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> Sent: Friday, February 16, 2018 4:54 PM
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>
> Subject: [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove
> underscore
> 
> All other apps in the app folder use "-" rather than "_" to separate words
> in the app name, so rename proc_info to be consistent.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Harry van Haaren <harry.van.haaren@intel.com>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [dpdk-dev] [PATCH 0/3] generalize builds apps using meson
  2018-02-16 16:53 [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
                   ` (2 preceding siblings ...)
  2018-02-16 16:53 ` [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build Bruce Richardson
@ 2018-03-12 15:06 ` Bruce Richardson
  3 siblings, 0 replies; 8+ messages in thread
From: Bruce Richardson @ 2018-03-12 15:06 UTC (permalink / raw)
  To: dev

On Fri, Feb 16, 2018 at 04:53:33PM +0000, Bruce Richardson wrote:
> Put the building of the apps into a foreach loop as is done with the libs
> and drivers in the DPDK meson build. This will reduce the path needed to
> call the compiled binaries in the build directory by one level, while the
> main benefit is reduced code duplication between the different apps.
> 
> Bruce Richardson (3):
>   app: generalize building of apps using meson
>   app/proc_info: rename folder to remove underscore
>   app: add all remaining apps to meson build
> 
Series applied to dpdk-next-build

/Bruce

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-03-12 15:06 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-16 16:53 [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson
2018-02-16 16:53 ` [dpdk-dev] [PATCH 1/3] app: generalize building of " Bruce Richardson
2018-03-12 12:25   ` Van Haaren, Harry
2018-02-16 16:53 ` [dpdk-dev] [PATCH 2/3] app/proc_info: rename folder to remove underscore Bruce Richardson
2018-03-12 12:30   ` Van Haaren, Harry
2018-02-16 16:53 ` [dpdk-dev] [PATCH 3/3] app: add all remaining apps to meson build Bruce Richardson
2018-03-12 12:29   ` Van Haaren, Harry
2018-03-12 15:06 ` [dpdk-dev] [PATCH 0/3] generalize builds apps using meson Bruce Richardson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).