summaryrefslogtreecommitdiffstats
path: root/meson.build
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--meson.build506
1 files changed, 304 insertions, 202 deletions
diff --git a/meson.build b/meson.build
index bc33570..ae9517c 100644
--- a/meson.build
+++ b/meson.build
@@ -13,7 +13,7 @@ pkgconfig = import('pkgconfig')
# soname versions; This never change because we use symbols versioing. There is also
# API version (LIB*_VERSION macros) and it follow package version.
libblkid_version = '1.1.0'
-libblkid_date = '27-Mar-2024'
+libblkid_date = '06-May-2024'
libuuid_version = '1.3.0'
liblastlog2_version = '2.0.0'
libmount_version = '1.1.0'
@@ -41,6 +41,10 @@ vendordir = get_option('vendordir')
add_project_arguments('-D_GNU_SOURCE', language : 'c')
+if host_machine.system() == 'darwin'
+ add_project_arguments('-D_DARWIN_C_SOURCE', language : 'c')
+endif
+
cc = meson.get_compiler('c')
conf = configuration_data()
@@ -78,7 +82,7 @@ conf.set_quoted('ADJTIME_PATH', '/etc/adjtime') # yes, both are used :(
conf.set_quoted('_PATH_VENDORDIR', vendordir)
conf.set('USE_VENDORDIR', vendordir == '' ? false : 1)
-build_libblkid = not get_option('build-libblkid').disabled()
+build_libblkid = get_option('build-libblkid').allowed()
conf.set('HAVE_LIBBLKID', build_libblkid ? 1 : false)
summary('libblkid', build_libblkid ? 'enabled' : 'disabled', section : 'components')
@@ -97,7 +101,8 @@ conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false)
have_struct_statx = cc.sizeof('struct statx', prefix : '#include <sys/stat.h>') > 0
conf.set('HAVE_STRUCT_STATX', have_struct_statx ? 1 : false)
-build_libmount = not get_option('build-libmount').disabled()
+build_libmount = get_option('build-libmount').require(get_option('build-libblkid').allowed()).allowed()
+
conf.set('HAVE_LIBMOUNT', build_libmount ? 1 : false)
conf.set('USE_LIBMOUNT_SUPPORT_NAMESPACES', 1)
conf.set('USE_LIBMOUNT_MOUNTFD_SUPPORT', have_mountfd_api ? 1 : false)
@@ -107,7 +112,7 @@ build_libsmartcols = not get_option('build-libsmartcols').disabled()
conf.set('HAVE_LIBSMARTCOLS', build_libsmartcols ? 1 : false)
summary('libsmartcols', build_libsmartcols ? 'enabled' : 'disabled', section : 'components')
-build_libfdisk = not get_option('build-libfdisk').disabled()
+build_libfdisk = not get_option('build-libfdisk').require(get_option('build-libblkid').allowed()).disabled()
conf.set('HAVE_LIBFDISK', build_libfdisk ? 1 : false)
summary('libfdisk', build_libfdisk ? 'enabled' : 'disabled', section : 'components')
@@ -346,7 +351,10 @@ lib_udev = dependency(
required : get_option('systemd'))
conf.set('HAVE_LIBUDEV', lib_udev.found() ? 1 : false)
-lib_crypt = cc.find_library('crypt')
+lib_crypt = cc.find_library('crypt', required : get_option('build-newgrp'))
+if not lib_crypt.found()
+ lib_crypt = cc.find_library('crypt', required : get_option('build-sulogin'))
+endif
lib_pam = cc.find_library('pam', required : get_option('build-login'))
if not lib_pam.found()
@@ -447,12 +455,11 @@ endforeach
have = cc.has_header('sched.h')
conf.set10('HAVE_DECL_CPU_ALLOC', have)
-# We get -1 if the size cannot be determined
-have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include <sched.h>') > 0
+have_cpu_set_t = cc.has_type('cpu_set_t', args : '-D_GNU_SOURCE', prefix : '#include <sched.h>')
conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false)
have = cc.has_header_symbol('unistd.h', 'environ', args : '-D_GNU_SOURCE')
-conf.set10('HAVE_ENVIRON_DECL', have)
+conf.set('HAVE_ENVIRON_DECL', have ? 1 : false)
have = cc.has_header_symbol('signal.h', 'sighandler_t', args : '-D_GNU_SOURCE')
conf.set('HAVE_SIGHANDLER_T', have ? 1 : false)
@@ -565,7 +572,6 @@ funcs = '''
llistxattr
llseek
newlocale
- mempcpy
mkostemp
move_mount
mount_setattr
@@ -630,6 +636,9 @@ foreach func: funcs
conf.set('HAVE_' + func.to_upper(), have ? 1 : false)
endforeach
+have_mempcpy = cc.has_function('mempcpy', prefix: '#include <string.h>', args: '-D_GNU_SOURCE')
+conf.set('HAVE_MEMPCPY', have_mempcpy ? 1 : false)
+
have = conf.get('HAVE_FUTIMENS') in [1] and conf.get('HAVE_INOTIFY_INIT1') in [1]
conf.set('AGETTY_RELOAD', have ? 1 : false)
if not have
@@ -724,12 +733,15 @@ if not cc.has_function('socket')
endif
endif
+lib_rt = cc.find_library('rt', required : false)
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)
+ 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)
@@ -737,9 +749,11 @@ 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)
+ 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',
@@ -777,9 +791,9 @@ int main(void) {
have = cc.compiles(code, name : 'using __progname')
conf.set('HAVE___PROGNAME', have ? 1 : false)
-have = conf.get('HAVE_PTY_H').to_string() == '1' \
- and conf.get('HAVE_SYS_SIGNALFD_H').to_string() == '1'
-conf.set('HAVE_PTY', have ? 1 : false)
+have_pty = conf.get('HAVE_PTY_H').to_string() == '1' \
+ and conf.get('HAVE_SYS_SIGNALFD_H').to_string() == '1'
+conf.set('HAVE_PTY', have_pty ? 1 : false)
have_opal_get_status= cc.has_header_symbol('linux/sed-opal.h', 'IOC_OPAL_GET_STATUS')
conf.set('HAVE_OPAL_GET_STATUS', have_opal_get_status ? 1 : false)
@@ -884,6 +898,7 @@ conf.set('USE_TTY_GROUP', have ? 1 : false)
bison = find_program('bison')
flex = find_program('flex')
+sed = find_program('sed')
build_hwclock = not get_option('build-hwclock').disabled()
bison_gen = generator(
@@ -891,6 +906,12 @@ bison_gen = generator(
output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
+python_module = import('python')
+python = python_module.find_installation(
+ get_option('python'),
+ required : true,
+ disabler : true)
+
meson_make_symlink = meson.current_source_dir() + '/tools/meson-make-symlink.sh'
meson_make_manpage_stub = meson.current_source_dir() + '/tools/meson-make-manpage-stub.sh'
@@ -959,9 +980,7 @@ subdir('term-utils')
subdir('po')
includes = [dir_include,
- dir_libblkid,
dir_libsmartcols,
- dir_libmount,
dir_libfdisk,
dir_libuuid,
dir_liblastlog2,
@@ -1066,7 +1085,7 @@ if opt and not is_disabler(exe)
bashcompletions += ['utmpdump']
endif
-opt = not get_option('build-su').disabled()
+opt = get_option('build-su').require(have_pty).allowed()
exe = executable(
'su',
'login-utils/su.c',
@@ -1147,7 +1166,7 @@ if opt and not is_disabler(exe)
join_paths(mandir, 'man8/vigr.8'))
endif
-opt = not get_option('build-runuser').disabled()
+opt = get_option('build-runuser').require(have_pty).allowed()
exe = executable(
'runuser',
'login-utils/runuser.c',
@@ -1360,29 +1379,39 @@ exe = executable(
exes += exe
manadocs += ['sys-utils/choom.1.adoc']
+has_seminfo_type = cc.has_type('struct seminfo', args : '-D_GNU_SOURCE', prefix : '#include <sys/sem.h>')
+
+opt = get_option('build-ipcmk').require(has_seminfo_type).allowed()
exe = executable(
'ipcmk',
ipcmk_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/ipcmk.1.adoc']
-bashcompletions += ['ipcmk']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/ipcmk.1.adoc']
+ bashcompletions += ['ipcmk']
+endif
+opt = get_option('build-ipcrm').require(has_seminfo_type).allowed()
exe = executable(
'ipcrm',
ipcrm_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/ipcrm.1.adoc']
-bashcompletions += ['ipcrm']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/ipcrm.1.adoc']
+ bashcompletions += ['ipcrm']
+endif
-opt = not get_option('build-ipcs').disabled()
+opt = not get_option('build-ipcs').require(has_seminfo_type).disabled()
exe = executable(
'ipcs',
ipcs_sources,
@@ -1484,28 +1513,32 @@ if opt and not is_disabler(exe)
bashcompletions += ['tunelp']
endif
+opt = not get_option('build-fstrim').disabled()
exe = executable(
'fstrim',
fstrim_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_mount],
+ link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : sbindir,
- install : true)
-if not is_disabler(exe)
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['sys-utils/fstrim.8.adoc']
bashcompletions += ['fstrim']
-endif
+endif
+opt = get_option('build-dmesg').require(cc.has_header('sys/klog.h')).allowed()
exe = executable(
'dmesg',
dmesg_sources,
include_directories : includes,
link_with : [lib_common,
lib_tcolors],
- install : true)
-if not is_disabler(exe)
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['sys-utils/dmesg.1.adoc']
bashcompletions += ['dmesg']
@@ -1534,113 +1567,143 @@ exes += exe
manadocs += ['sys-utils/ctrlaltdel.8.adoc']
bashcompletions += ['ctrlaltdel']
+have_linux_fs_h = conf.get('HAVE_LINUX_FS_H').to_string() == '1'
+
+opt = get_option('build-fsfreeze').require(have_linux_fs_h).allowed()
exe = executable(
'fsfreeze',
fsfreeze_sources,
include_directories : includes,
install_dir : sbindir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/fsfreeze.8.adoc']
-bashcompletions += ['fsfreeze']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/fsfreeze.8.adoc']
+ bashcompletions += ['fsfreeze']
+endif
+opt = get_option('build-blkdiscard').require(have_linux_fs_h).allowed()
exe = executable(
'blkdiscard',
blkdiscard_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_blkid],
+ link_with : [lib_common],
+ dependencies : [blkid_dep],
install_dir : sbindir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/blkdiscard.8.adoc']
-bashcompletions += ['blkdiscard']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/blkdiscard.8.adoc']
+ bashcompletions += ['blkdiscard']
+endif
-if cc.has_header('linux/blkzoned.h')
- exe = executable(
- 'blkzone',
- blkzone_sources,
- include_directories : includes,
- link_with : [lib_common],
- install_dir : sbindir,
- install : true)
+opt = get_option('build-blkzone').require(have_linux_fs_h).allowed()
+exe = executable(
+ 'blkzone',
+ blkzone_sources,
+ include_directories : includes,
+ link_with : [lib_common],
+ install_dir : sbindir,
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['sys-utils/blkzone.8.adoc']
bashcompletions += ['blkzone']
endif
-if cc.has_header('linux/pr.h')
- exe = executable(
- 'blkpr',
- blkpr_sources,
- include_directories : includes,
- link_with : [lib_common],
- install_dir : sbindir,
- install : true)
+opt = get_option('build-blkpr').require(cc.has_header('linux/pr.h')).allowed()
+exe = executable(
+ 'blkpr',
+ blkpr_sources,
+ include_directories : includes,
+ link_with : [lib_common],
+ install_dir : sbindir,
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['sys-utils/blkpr.8.adoc']
endif
+opt = get_option('build-ldattach').require(cc.has_header('linux/if.h')).allowed()
exe = executable(
'ldattach',
ldattach_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrsbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/ldattach.8.adoc']
-bashcompletions += ['ldattach']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/ldattach.8.adoc']
+ bashcompletions += ['ldattach']
+endif
+
+have_linux_rtc_h = cc.has_header('linux/rtc.h')
+opt = get_option('build-rtcwake').require(have_linux_rtc_h).allowed()
exe = executable(
'rtcwake',
rtcwake_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrsbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/rtcwake.8.adoc']
-bashcompletions += ['rtcwake']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/rtcwake.8.adoc']
+ bashcompletions += ['rtcwake']
+endif
+opt = get_option('build-setarch').require(cc.has_header('sys/personality.h')).allowed()
exe = executable(
'setarch',
setarch_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/setarch.8.adoc']
-bashcompletions += ['setarch']
-
-setarch_links = ['uname26', 'linux32', 'linux64']
-setarch_links_arch = {
- 's390x' : ['s390', 's390x'],
- 'x86' : ['i386'],
- 'x86_64' : ['i386', 'x86_64'],
- 'ppc64' : ['ppc', 'ppc64', 'ppc32'],
- 'space64' : ['sparc', 'sparc64', 'sparc32', 'sparc32bash'],
- 'mips64' : ['mips', 'mips64', 'mips32'],
- 'ia64' : ['i386', 'ia64'],
- 'hppa' : ['parisc', 'parisc64', 'parisc32'],
-}
-setarch_links += setarch_links_arch.get(host_machine.cpu_family(), [])
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/setarch.8.adoc']
+ bashcompletions += ['setarch']
+endif
-foreach link: setarch_links
- meson.add_install_script(meson_make_symlink,
- 'setarch',
- join_paths(usrbin_exec_dir, link))
- manlinks += {link + '.8': 'setarch.8'}
-endforeach
+if opt
+ setarch_links = ['uname26', 'linux32', 'linux64']
+ setarch_links_arch = {
+ 's390x' : ['s390', 's390x'],
+ 'x86' : ['i386'],
+ 'x86_64' : ['i386', 'x86_64'],
+ 'ppc64' : ['ppc', 'ppc64', 'ppc32'],
+ 'space64' : ['sparc', 'sparc64', 'sparc32', 'sparc32bash'],
+ 'mips64' : ['mips', 'mips64', 'mips32'],
+ 'ia64' : ['i386', 'ia64'],
+ 'hppa' : ['parisc', 'parisc64', 'parisc32'],
+ }
+ setarch_links += setarch_links_arch.get(host_machine.cpu_family(), [])
+
+ foreach link: setarch_links
+ meson.add_install_script(meson_make_symlink,
+ 'setarch',
+ join_paths(usrbin_exec_dir, link))
+ manlinks += {link + '.8': 'setarch.8'}
+ endforeach
+endif
opt = not get_option('build-eject').disabled()
exe = executable(
'eject',
eject_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_mount],
+ link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : usrbin_exec_dir,
install : opt,
build_by_default : opt)
@@ -1711,16 +1774,18 @@ if not is_disabler(exe)
bashcompletions += ['prlimit']
endif
+opt = not get_option('build-lsns').disabled()
exe = executable(
'lsns',
lsns_sources,
include_directories : includes,
link_with : [lib_common,
- lib_smartcols,
- lib_mount],
+ lib_smartcols],
+ dependencies : [mount_dep],
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 += ['sys-utils/lsns.8.adoc']
bashcompletions += ['lsns']
@@ -1732,9 +1797,8 @@ exe = executable(
mount_sources,
include_directories : includes,
link_with : [lib_common,
- lib_smartcols,
- lib_mount],
- dependencies : lib_selinux,
+ lib_smartcols],
+ dependencies : [lib_selinux, mount_dep],
install_mode : 'rwsr-xr-x',
install : opt,
build_by_default : opt)
@@ -1742,8 +1806,8 @@ exe2 = executable(
'umount',
umount_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_mount],
+ link_with : [lib_common],
+ dependencies : [mount_dep],
install_mode : 'rwsr-xr-x',
install : opt,
build_by_default : opt)
@@ -1762,8 +1826,8 @@ exe = executable(
include_directories : includes,
link_args : ['--static'],
link_with : [lib_common,
- lib_smartcols_static,
- lib_mount_static],
+ lib_smartcols_static],
+ dependencies : [mount_static_dep],
install : opt2,
build_by_default : opt2)
if opt2 and not is_disabler(exe)
@@ -1776,8 +1840,8 @@ exe = executable(
umount_sources,
include_directories : includes,
link_args : ['--static'],
- link_with : [lib_common,
- lib_mount_static],
+ link_with : [lib_common],
+ dependencies : [mount_static_dep],
install : opt2,
build_by_default : opt2)
if opt2 and not is_disabler(exe)
@@ -1786,32 +1850,34 @@ endif
# setuid?
+opt = not get_option('build-swapon').disabled()
exe = executable(
'swapon',
swapon_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
- lib_mount,
lib_smartcols],
+ dependencies : [blkid_dep, mount_dep],
install_dir : sbindir,
- install : true)
-if not is_disabler(exe)
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['sys-utils/swapon.8.adoc']
bashcompletions += ['swapon']
endif
+opt = not get_option('build-swapoff').disabled()
exe = executable(
'swapoff',
swapoff_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_blkid,
- lib_mount],
+ link_with : [lib_common],
+ dependencies : [blkid_dep, mount_dep],
install_dir : sbindir,
- install : true)
-if not is_disabler(exe)
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manlinks += {'swapoff.8': 'swapon.8'}
bashcompletions += ['swapoff']
@@ -1832,16 +1898,20 @@ if not is_disabler(exe)
bashcompletions += ['lscpu']
endif
+opt = get_option('build-chcpu').require(have_cpu_set_t).allowed()
exe = executable(
'chcpu',
chcpu_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : sbindir,
- install : true)
-exes += exe
-manadocs += ['sys-utils/chcpu.8.adoc']
-bashcompletions += ['chcpu']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/chcpu.8.adoc']
+ bashcompletions += ['chcpu']
+endif
exe = executable(
'wdctl',
@@ -1861,7 +1931,7 @@ exe = executable(
'mountpoint',
mountpoint_sources,
include_directories : includes,
- link_with : [lib_mount],
+ dependencies : [mount_dep],
install : opt,
build_by_default : opt)
if opt and not is_disabler(exe)
@@ -1921,6 +1991,7 @@ exe = executable(
unshare_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : usrbin_exec_dir,
install : opt,
build_by_default : opt)
@@ -1936,6 +2007,7 @@ exe = executable(
unshare_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : usrbin_exec_dir,
install : opt,
build_by_default : opt)
@@ -2109,9 +2181,8 @@ exe = executable(
mkswap_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
lib_uuid],
- dependencies: [lib_selinux],
+ dependencies: [blkid_dep, lib_selinux],
install_dir : sbindir,
install : true)
if not is_disabler(exe)
@@ -2125,8 +2196,8 @@ exe = executable(
swaplabel_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
lib_uuid],
+ dependencies : [blkid_dep],
install_dir : sbindir,
install : true)
if not is_disabler(exe)
@@ -2140,10 +2211,8 @@ exe = executable(
'fsck',
fsck_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_blkid,
- lib_mount],
- dependencies : realtime_libs,
+ link_with : [lib_common],
+ dependencies : [blkid_dep, mount_dep, realtime_libs],
install_dir : sbindir,
install : opt,
build_by_default : opt)
@@ -2240,15 +2309,20 @@ if opt and not is_disabler(exe)
bashcompletions += ['fdformat']
endif
+opt = get_option('build-blockdev').require(LINUX).allowed()
exe = executable(
'blockdev',
blockdev_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : sbindir,
- install : true)
-manadocs += ['disk-utils/blockdev.8.adoc']
-bashcompletions += ['blockdev']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['disk-utils/blockdev.8.adoc']
+ bashcompletions += ['blockdev']
+endif
opt = not get_option('build-fdisks').disabled()
if opt and not have_dirfd and not have_ddfd
@@ -2330,9 +2404,8 @@ exe = executable(
link_with : [lib_common,
lib_fdisk,
lib_smartcols,
- lib_tcolors,
- lib_mount],
- dependencies : [curses_libs],
+ lib_tcolors],
+ dependencies : [curses_libs, mount_dep],
install_dir : sbindir,
install : opt,
build_by_default : opt)
@@ -2374,8 +2447,8 @@ exe4 = executable(
partx_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
lib_smartcols],
+ dependencies : [blkid_dep],
install_dir : usrsbin_exec_dir,
install : opt,
build_by_default : opt)
@@ -2390,6 +2463,7 @@ endif
############################################################
+opt = get_option('build-script').require(have_pty).allowed()
exe = executable(
'script',
script_sources,
@@ -2400,10 +2474,13 @@ exe = executable(
realtime_libs,
math_libs],
install_dir : usrbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['term-utils/script.1.adoc']
-bashcompletions += ['script']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['term-utils/script.1.adoc']
+ bashcompletions += ['script']
+endif
exe = executable(
'test_script',
@@ -2415,9 +2492,12 @@ exe = executable(
lib_utempter,
realtime_libs,
math_libs],
- build_by_default : program_tests)
-exes += exe
+ build_by_default : opt and program_tests)
+if opt and not is_disabler(exe)
+ exes += exe
+endif
+opt = get_option('build-scriptlive').require(have_pty).allowed()
exe = executable(
'scriptlive',
scriptlive_sources,
@@ -2427,10 +2507,13 @@ exe = executable(
realtime_libs,
math_libs],
install_dir : usrbin_exec_dir,
- install : true)
-exes += exe
-manadocs += ['term-utils/scriptlive.1.adoc']
-bashcompletions += ['scriptlive']
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['term-utils/scriptlive.1.adoc']
+ bashcompletions += ['scriptlive']
+endif
exe = executable(
'scriptreplay',
@@ -2668,51 +2751,52 @@ exes += exe
manadocs += ['misc-utils/whereis.1.adoc']
bashcompletions += ['whereis']
+opt = not get_option('build-lslocks').disabled()
exe = executable(
'lslocks',
lslocks_sources,
include_directories : includes,
link_with : [lib_common,
- lib_mount,
lib_smartcols],
+ dependencies : [mount_dep],
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/lslocks.8.adoc']
bashcompletions += ['lslocks']
endif
+opt = not get_option('build-lsblk').disabled()
exe = executable(
'lsblk',
lsblk_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
- lib_mount,
lib_tcolors,
lib_smartcols],
- dependencies : lib_udev,
- install : true)
-if not is_disabler(exe)
+ dependencies : [blkid_dep, lib_udev, mount_dep],
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['misc-utils/lsblk.8.adoc']
bashcompletions += ['lsblk']
endif
-mq_libs = []
-mq_libs += cc.find_library('rt', required : true)
-
+opt = not get_option('build-lsfd').require(lib_rt.found()).disabled()
exe = executable(
'lsfd',
lsfd_sources,
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
@@ -2777,8 +2861,8 @@ exe = executable(
'blkid',
blkid_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_blkid],
+ link_with : [lib_common],
+ dependencies : [blkid_dep],
install_dir : sbindir,
install : opt,
build_by_default : opt)
@@ -2793,8 +2877,8 @@ exe = executable(
'blkid.static',
blkid_sources,
include_directories : includes,
- link_with : [lib_common,
- lib_blkid_static],
+ link_with : [lib_common],
+ dependencies : [blkid_static_dep],
install_dir : sbindir,
install : opt,
build_by_default : opt)
@@ -2806,7 +2890,7 @@ exe = executable(
'sample-mkfs',
'libblkid/samples/mkfs.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
@@ -2815,7 +2899,7 @@ exe = executable(
'sample-partitions',
'libblkid/samples/partitions.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
@@ -2824,7 +2908,7 @@ exe = executable(
'sample-superblocks',
'libblkid/samples/superblocks.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
@@ -2833,7 +2917,7 @@ exe = executable(
'sample-topology',
'libblkid/samples/topology.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
@@ -2842,7 +2926,7 @@ exe = executable(
'test_blkid_fuzz_sample',
'libblkid/src/fuzz.c',
include_directories: includes,
- link_with: lib_blkid,
+ dependencies : [blkid_dep],
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -2854,7 +2938,7 @@ exe = executable(
'findfs',
findfs_sources,
include_directories : includes,
- link_with : [lib_blkid],
+ dependencies : [blkid_dep],
install_dir : sbindir,
install : true)
if not is_disabler(exe)
@@ -2868,8 +2952,8 @@ exe = executable(
wipefs_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
lib_smartcols],
+ dependencies : [blkid_dep],
install_dir : sbindir,
install : true)
if not is_disabler(exe)
@@ -2878,17 +2962,17 @@ if not is_disabler(exe)
bashcompletions += ['wipefs']
endif
+opt = not get_option('build-findmnt').disabled()
exe = executable(
'findmnt',
findmnt_sources,
include_directories : includes,
link_with : [lib_common,
- lib_blkid,
- lib_mount,
lib_smartcols],
- dependencies : [lib_udev],
- install : true)
-if not is_disabler(exe)
+ dependencies : [blkid_dep, lib_udev, mount_dep],
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
exes += exe
manadocs += ['misc-utils/findmnt.8.adoc']
bashcompletions += ['findmnt']
@@ -2957,14 +3041,15 @@ if not is_disabler(exe)
bashcompletions += ['hardlink']
endif
-opt = not get_option('build-pipesz').disabled()
+opt = get_option('build-pipesz').allowed()
exe = executable(
'pipesz',
pipesz_sources,
include_directories : includes,
link_with : [lib_common],
install_dir : usrbin_exec_dir,
- install : true)
+ install : opt,
+ build_by_default : opt)
if opt and not is_disabler(exe)
exes += exe
manadocs += ['misc-utils/pipesz.1.adoc']
@@ -2984,14 +3069,18 @@ if not is_disabler(exe)
exes += exe
endif
+have_posix_fadvise = conf.get('HAVE_POSIX_FADVISE').to_string() == '1'
+
+opt = get_option('build-fadvise').require(have_posix_fadvise).allowed()
exe = executable(
'fadvise',
fadvise_sources,
include_directories : includes,
link_with : [lib_common],
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/fadvise.1.adoc']
bashcompletions += ['fadvise']
@@ -3015,32 +3104,38 @@ endif
syscalls_h = custom_target('syscalls.h',
input : 'tools/all_syscalls',
output : 'syscalls.h',
- command : ['tools/all_syscalls', cc.cmd_array()]
+ command : ['tools/all_syscalls', sed.full_path(),
+ cc.cmd_array(), get_option('c_args')],
)
-if cc.compiles(fs.read('include/audit-arch.h'), name : 'has AUDIT_ARCH_NATIVE')
- exe = executable(
- 'enosys',
- 'misc-utils/enosys.c', syscalls_h,
- include_directories : includes,
- link_with : [lib_common],
- install_dir : usrbin_exec_dir,
- install : true)
- if not is_disabler(exe)
- exes += exe
- manadocs += ['misc-utils/enosys.1.adoc']
- bashcompletions += ['enosys']
- endif
+have_linux_audit_h = cc.has_header('linux/audit.h')
+have_audit_arch_native = cc.compiles(fs.read('include/audit-arch.h'), name : 'has AUDIT_ARCH_NATIVE')
+
+opt = get_option('build-enosys').require(have_linux_audit_h and have_audit_arch_native).allowed()
+exe = executable(
+ 'enosys',
+ 'misc-utils/enosys.c', syscalls_h,
+ include_directories : includes,
+ link_with : [lib_common],
+ install_dir : usrbin_exec_dir,
+ install : opt,
+ build_by_default : opt)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['misc-utils/enosys.1.adoc']
+ bashcompletions += ['enosys']
endif
+opt = get_option('build-lsclocks').require(have_linux_rtc_h).allowed()
exe = executable(
'lsclocks',
lsclocks_sources,
include_directories : includes,
link_with : [lib_common, lib_smartcols],
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/lsclocks.1.adoc']
bashcompletions += ['lsclocks']
@@ -3197,7 +3292,7 @@ if conf.get('HAVE_OPENAT').to_string() == '1' \
exes += exe
endif
-if conf.get('HAVE_PTY').to_string() == '1'
+if have_pty
exe = executable(
'test_pty',
pty_session_c,
@@ -3311,7 +3406,8 @@ endif
############################################################
libfdisk_tests_cflags = ['-DTEST_PROGRAM']
-libfdisk_tests_ldadd = [lib_fdisk_static, lib_uuid, lib_blkid]
+libfdisk_tests_ldadd = [lib_fdisk_static, lib_uuid]
+libfdisk_tests_ldadd_deps = [blkid_dep]
exe = executable(
'test_fdisk_ask',
@@ -3319,6 +3415,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3330,6 +3427,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3341,6 +3439,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3352,6 +3451,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3363,6 +3463,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3374,6 +3475,7 @@ exe = executable(
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
link_with : libfdisk_tests_ldadd,
+ dependencies : libfdisk_tests_ldadd_deps,
build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
@@ -3488,14 +3590,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