-version = 8 # the version of the EAL API
-allow_experimental_apis = true
-deps += 'compat'
-deps += 'kvargs'
-cflags += '-D_GNU_SOURCE'
-sources = common_sources + env_sources
-objs = common_objs + env_objs
-headers = common_headers + env_headers
-includes = eal_inc
+dpdk_conf.set('RTE_EXEC_ENV_' + exec_env.to_upper(), 1)
+subdir(exec_env)
+
+subdir(arch_subdir)
+
+deps += ['kvargs']
+if not is_windows
+ deps += ['telemetry']
+endif
+if dpdk_conf.has('RTE_USE_LIBBSD')
+ ext_deps += libbsd
+endif
+if cc.has_function('getentropy', prefix : '#include <unistd.h>')
+ cflags += '-DRTE_LIBEAL_USE_GETENTROPY'
+endif
+if cc.has_header('getopt.h')
+ cflags += ['-DHAVE_GETOPT_H', '-DHAVE_GETOPT', '-DHAVE_GETOPT_LONG']
+endif