xref: /f-stack/dpdk/app/meson.build (revision d30ea906)
1*d30ea906Sjfb8856606# SPDX-License-Identifier: BSD-3-Clause
2*d30ea906Sjfb8856606# Copyright(c) 2017 Intel Corporation
3*d30ea906Sjfb8856606
4*d30ea906Sjfb8856606apps = ['pdump',
5*d30ea906Sjfb8856606	'proc-info',
6*d30ea906Sjfb8856606	'test-bbdev',
7*d30ea906Sjfb8856606	'test-crypto-perf',
8*d30ea906Sjfb8856606	'test-eventdev',
9*d30ea906Sjfb8856606	'test-pmd']
10*d30ea906Sjfb8856606
11*d30ea906Sjfb8856606# for BSD only
12*d30ea906Sjfb8856606lib_execinfo = cc.find_library('execinfo', required: false)
13*d30ea906Sjfb8856606
14*d30ea906Sjfb8856606default_cflags = machine_args
15*d30ea906Sjfb8856606
16*d30ea906Sjfb8856606# specify -D_GNU_SOURCE unconditionally
17*d30ea906Sjfb8856606default_cflags += '-D_GNU_SOURCE'
18*d30ea906Sjfb8856606
19*d30ea906Sjfb8856606foreach app:apps
20*d30ea906Sjfb8856606	build = true
21*d30ea906Sjfb8856606	name = app
22*d30ea906Sjfb8856606	allow_experimental_apis = false
23*d30ea906Sjfb8856606	sources = []
24*d30ea906Sjfb8856606	includes = []
25*d30ea906Sjfb8856606	cflags = default_cflags
26*d30ea906Sjfb8856606	objs = [] # other object files to link against, used e.g. for
27*d30ea906Sjfb8856606	          # instruction-set optimized versions of code
28*d30ea906Sjfb8856606
29*d30ea906Sjfb8856606	# use "deps" for internal DPDK dependencies, and "ext_deps" for
30*d30ea906Sjfb8856606	# external package/library requirements
31*d30ea906Sjfb8856606	ext_deps = []
32*d30ea906Sjfb8856606	deps = dpdk_app_link_libraries
33*d30ea906Sjfb8856606
34*d30ea906Sjfb8856606	subdir(name)
35*d30ea906Sjfb8856606
36*d30ea906Sjfb8856606	if build
37*d30ea906Sjfb8856606		dep_objs = []
38*d30ea906Sjfb8856606		foreach d:deps
39*d30ea906Sjfb8856606			dep_objs += get_variable(get_option('default_library')
40*d30ea906Sjfb8856606				 + '_rte_' + d)
41*d30ea906Sjfb8856606		endforeach
42*d30ea906Sjfb8856606		dep_objs += lib_execinfo
43*d30ea906Sjfb8856606
44*d30ea906Sjfb8856606		link_libs = []
45*d30ea906Sjfb8856606		if get_option('default_library') == 'static'
46*d30ea906Sjfb8856606			link_libs = dpdk_static_libraries + dpdk_drivers
47*d30ea906Sjfb8856606		endif
48*d30ea906Sjfb8856606
49*d30ea906Sjfb8856606		if allow_experimental_apis
50*d30ea906Sjfb8856606			cflags += '-DALLOW_EXPERIMENTAL_API'
51*d30ea906Sjfb8856606		endif
52*d30ea906Sjfb8856606
53*d30ea906Sjfb8856606		executable('dpdk-' + name,
54*d30ea906Sjfb8856606				sources,
55*d30ea906Sjfb8856606				c_args: cflags,
56*d30ea906Sjfb8856606				link_whole: link_libs,
57*d30ea906Sjfb8856606				dependencies: dep_objs,
58*d30ea906Sjfb8856606				install_rpath: join_paths(get_option('prefix'),
59*d30ea906Sjfb8856606						 driver_install_path),
60*d30ea906Sjfb8856606				install: true)
61*d30ea906Sjfb8856606	endif
62*d30ea906Sjfb8856606endforeach
63