doc: announce behavior change in bus probing
[dpdk.git] / app / meson.build
index c5b7859..93d8c15 100644 (file)
@@ -1,4 +1,80 @@
 # SPDX-License-Identifier: BSD-3-Clause
-# Copyright(c) 2017 Intel Corporation
+# Copyright(c) 2017-2019 Intel Corporation
 
-subdir('test-pmd')
+apps = [
+        'dumpcap',
+        'pdump',
+        'proc-info',
+        'test-acl',
+        'test-bbdev',
+        'test-cmdline',
+        'test-compress-perf',
+        'test-crypto-perf',
+        'test-eventdev',
+        'test-fib',
+        'test-flow-perf',
+        'test-gpudev',
+        'test-pipeline',
+        'test-pmd',
+        'test-regex',
+        'test-sad',
+]
+
+default_cflags = machine_args + ['-DALLOW_EXPERIMENTAL_API']
+default_ldflags = []
+if get_option('default_library') == 'static' and not is_windows
+    default_ldflags += ['-Wl,--export-dynamic']
+endif
+
+foreach app:apps
+    build = true
+    name = app
+    sources = []
+    includes = []
+    cflags = default_cflags
+    ldflags = default_ldflags
+    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
+            var_name = get_option('default_library') + '_rte_' + d
+            if not is_variable(var_name)
+                build = false
+                message('Missing dependency "@0@" for app "@1@"'.format(d, name))
+                break
+            endif
+            dep_objs += [get_variable(var_name)]
+        endforeach
+    endif
+
+    if not build
+        continue
+    endif
+
+    link_libs = []
+    if get_option('default_library') == 'static'
+        link_libs = dpdk_static_libraries + dpdk_drivers
+    endif
+
+    executable('dpdk-' + name,
+            sources,
+            c_args: cflags,
+            link_args: ldflags,
+            link_whole: link_libs,
+            dependencies: ext_deps + dep_objs,
+            include_directories: includes,
+            install_rpath: join_paths(get_option('prefix'), driver_install_path),
+            install: true)
+endforeach
+
+# special case the autotests
+subdir('test')