diff --git a/examples/distributor/meson.build b/examples/distributor/meson.build
index 5244cd4ff..d8dbc235f 100644
--- a/examples/distributor/meson.build
+++ b/examples/distributor/meson.build
@@ -8,6 +8,9 @@
 
 # require the power library
 build = dpdk_conf.has('RTE_LIB_POWER')
+if not build
+	subdir_done()
+endif
 
 allow_experimental_apis = true
 deps += ['distributor', 'power']
diff --git a/examples/ethtool/meson.build b/examples/ethtool/meson.build
index cc8edac3d..4d08bc4c5 100644
--- a/examples/ethtool/meson.build
+++ b/examples/ethtool/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = is_linux
+if not build
+	subdir_done()
+endif
+
 sources = files('lib/rte_ethtool.c',
 	'ethtool-app/ethapp.c',
 	'ethtool-app/main.c')
diff --git a/examples/ioat/meson.build b/examples/ioat/meson.build
index 6afbaa680..e348196ba 100644
--- a/examples/ioat/meson.build
+++ b/examples/ioat/meson.build
@@ -8,6 +8,9 @@
 
 allow_experimental_apis = true
 build = dpdk_conf.has('RTE_RAW_IOAT')
+if not build
+	subdir_done()
+endif
 
 deps += ['raw_ioat']
 
diff --git a/examples/ip_pipeline/meson.build b/examples/ip_pipeline/meson.build
index 664223c97..945e28b58 100644
--- a/examples/ip_pipeline/meson.build
+++ b/examples/ip_pipeline/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = cc.has_header('sys/epoll.h')
+if not build
+	subdir_done()
+endif
+
 deps += ['pipeline', 'bus_pci']
 allow_experimental_apis = true
 sources = files(
diff --git a/examples/kni/meson.build b/examples/kni/meson.build
index 58639b139..e119eebab 100644
--- a/examples/kni/meson.build
+++ b/examples/kni/meson.build
@@ -8,6 +8,10 @@
 
 # this app can be built if-and-only-if KNI library is buildable
 build = dpdk_conf.has('RTE_LIB_KNI')
+if not build
+	subdir_done()
+endif
+
 deps += ['kni', 'bus_pci']
 sources = files(
 	'main.c'
diff --git a/examples/l2fwd-cat/meson.build b/examples/l2fwd-cat/meson.build
index 2bed18e74..60169bcbd 100644
--- a/examples/l2fwd-cat/meson.build
+++ b/examples/l2fwd-cat/meson.build
@@ -8,6 +8,10 @@
 
 pqos = cc.find_library('pqos', required: false)
 build = pqos.found()
+if not build
+	subdir_done()
+endif
+
 ext_deps += pqos
 allow_experimental_apis = true
 cflags += '-I/usr/local/include' # assume pqos lib installed in /usr/local
diff --git a/examples/ntb/meson.build b/examples/ntb/meson.build
index b0201f68b..02be9fc80 100644
--- a/examples/ntb/meson.build
+++ b/examples/ntb/meson.build
@@ -9,7 +9,9 @@
 allow_experimental_apis = true
 if not is_linux
 	build = false
+	subdir_done()
 endif
+
 deps += 'rawdev'
 cflags += ['-D_FILE_OFFSET_BITS=64']
 sources = files(
diff --git a/examples/performance-thread/l3fwd-thread/meson.build b/examples/performance-thread/l3fwd-thread/meson.build
index 99de24be7..4858b201e 100644
--- a/examples/performance-thread/l3fwd-thread/meson.build
+++ b/examples/performance-thread/l3fwd-thread/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = dpdk_conf.has('RTE_ARCH_X86_64')
+if not build
+	subdir_done()
+endif
+
 deps += ['timer', 'lpm']
 allow_experimental_apis = true
 
diff --git a/examples/performance-thread/pthread_shim/meson.build b/examples/performance-thread/pthread_shim/meson.build
index 26ef78635..d49979930 100644
--- a/examples/performance-thread/pthread_shim/meson.build
+++ b/examples/performance-thread/pthread_shim/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = dpdk_conf.has('RTE_ARCH_X86_64') or dpdk_conf.has('RTE_ARCH_ARM64')
+if not build
+	subdir_done()
+endif
+
 deps += ['timer']
 allow_experimental_apis = true
 
diff --git a/examples/pipeline/meson.build b/examples/pipeline/meson.build
index e47d483de..4f5925d7c 100644
--- a/examples/pipeline/meson.build
+++ b/examples/pipeline/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = cc.has_header('sys/epoll.h')
+if not build
+	subdir_done()
+endif
+
 deps += ['pipeline', 'bus_pci']
 allow_experimental_apis = true
 sources = files(
diff --git a/examples/vdpa/meson.build b/examples/vdpa/meson.build
index 73f129cd9..26f6089c9 100644
--- a/examples/vdpa/meson.build
+++ b/examples/vdpa/meson.build
@@ -8,7 +8,9 @@
 
 if not is_linux
 	build = false
+	subdir_done()
 endif
+
 deps += 'vhost'
 allow_experimental_apis = true
 sources = files(
diff --git a/examples/vhost/meson.build b/examples/vhost/meson.build
index 24f1f7131..7e5b9d938 100644
--- a/examples/vhost/meson.build
+++ b/examples/vhost/meson.build
@@ -8,7 +8,9 @@
 
 if not is_linux
 	build = false
+	subdir_done()
 endif
+
 deps += 'vhost'
 allow_experimental_apis = true
 sources = files(
diff --git a/examples/vhost_blk/meson.build b/examples/vhost_blk/meson.build
index 857367192..354ba0584 100644
--- a/examples/vhost_blk/meson.build
+++ b/examples/vhost_blk/meson.build
@@ -8,10 +8,12 @@
 
 if not is_linux
 	build = false
+	subdir_done()
 endif
 
 if not cc.has_header('linux/virtio_blk.h')
 	build = false
+	subdir_done()
 endif
 
 deps += 'vhost'
diff --git a/examples/vhost_crypto/meson.build b/examples/vhost_crypto/meson.build
index b2c125e2f..403f21098 100644
--- a/examples/vhost_crypto/meson.build
+++ b/examples/vhost_crypto/meson.build
@@ -7,6 +7,10 @@
 # DPDK instance, use 'make'
 
 build = dpdk_conf.has('RTE_LIB_VHOST')
+if not build
+	subdir_done()
+endif
+
 allow_experimental_apis = true
 deps += ['vhost', 'cryptodev']
 sources = files(
