aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Williams <jordan@jwillikers.com>2024-03-29 12:14:44 -0500
committerJordan Williams <jordan@jwillikers.com>2024-04-01 11:59:43 -0500
commit06b27058a04c1ac9eba44f19e320ecd862f6d75f (patch)
tree94768808a65ae92a2c6c7438886e631ae23fa93f
parent3f4857f7b5d6f21ebcd9dacba6df49bc79a5ca10 (diff)
downloadutil-linux-06b27058a04c1ac9eba44f19e320ecd862f6d75f.tar.gz
meson: Add build-lsfd option and make rt dependency optional
A dependency on the rt library is unnecessarily required when checking for the clock_gettime and timer_create functions. This causes the build to fail if the rt library is not found. This should not fail the build as rt is only required for the checks. Additionally, the lsfd executable and some tests require rt. There is currently no option to toggle building lsfd. This PR makes it possible to build without the rt library. Function checks no longer require rt for the build. The function checks for the rt library only run when rt is available. This PR adds an option to allow building without lsfd. This makes it possible to build without the executable that requires rt. To not require rt for the test, a additional check has been added. The effected tests won't be built unless rt has been found. Signed-off-by: Jordan Williams <jordan@jwillikers.com>
-rw-r--r--meson.build33
-rw-r--r--meson_options.txt2
2 files changed, 22 insertions, 13 deletions
diff --git a/meson.build b/meson.build
index 91726da86d..9ead241ef9 100644
--- a/meson.build
+++ b/meson.build
@@ -731,9 +731,12 @@ endif
realtime_libs = []
have = cc.has_function('clock_gettime')
if not have
- realtime_libs += cc.find_library('rt', required : true)
- have = cc.has_function('clock_gettime',
- dependencies : realtime_libs)
+ lib_rt = cc.find_library('rt', required : false)
+ if lib_rt.found()
+ realtime_libs += lib_rt
+ have = cc.has_function('clock_gettime',
+ dependencies : realtime_libs)
+ endif
endif
conf.set('HAVE_CLOCK_GETTIME', have ? 1 : false)
@@ -741,9 +744,12 @@ thread_libs = dependency('threads')
have = cc.has_function('timer_create')
if not have
- realtime_libs = [cc.find_library('rt', required : true)]
- have = cc.has_function('timer_create',
- dependencies : realtime_libs)
+ lib_rt = cc.find_library('rt', required : false)
+ if lib_rt.found()
+ realtime_libs = [lib_rt]
+ have = cc.has_function('timer_create',
+ dependencies : realtime_libs)
+ endif
if not have
realtime_libs += thread_libs
have = cc.has_function('timer_create',
@@ -2711,19 +2717,20 @@ errnos_h = custom_target('errnos.h',
command : ['tools/all_errnos', cc.cmd_array(), get_option('c_args')],
)
-mq_libs = []
-mq_libs += cc.find_library('rt', required : true)
+lib_rt = cc.find_library('rt', required : get_option('build-lsfd'))
+opt = not get_option('build-lsfd').disabled()
exe = executable(
'lsfd',
lsfd_sources, errnos_h,
include_directories : includes,
link_with : [lib_common,
lib_smartcols],
- dependencies : mq_libs,
+ dependencies : [lib_rt],
install_dir : usrbin_exec_dir,
- install : true)
-if not is_disabler(exe)
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['misc-utils/lsfd.1.adoc']
endif
@@ -3499,14 +3506,14 @@ exe = executable(
build_by_default: program_tests)
exes += exe
-if LINUX
+if LINUX and lib_rt.found()
exe = executable(
'test_mkfds',
'tests/helpers/test_mkfds.c',
'tests/helpers/test_mkfds.h',
'tests/helpers/test_mkfds_ppoll.c',
include_directories : includes,
- dependencies : mq_libs,
+ dependencies : [lib_rt],
build_by_default: program_tests)
exes += exe
endif
diff --git a/meson_options.txt b/meson_options.txt
index 7b8cf3f35f..8eb6dd9055 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -101,6 +101,8 @@ option('build-cal', type : 'feature',
description : 'build cal')
option('build-logger', type : 'feature',
description : 'build logger')
+option('build-lsfd', type : 'feature',
+ description : 'build lsfd')
option('build-switch_root', type : 'feature',
description : 'switch_root')
option('build-pivot_root', type : 'feature',