libfdisk_version = '1.1.0'
prefixdir = get_option('prefix')
-if not prefixdir.startswith('/')
+if not fs.is_absolute(prefixdir)
error('Prefix is not absolute: "@0@"'.format(prefixdir))
endif
bindir = join_paths(prefixdir, get_option('bindir'))
vendordir = get_option('vendordir')
-add_project_arguments('-D_GNU_SOURCE', language : 'c')
+add_project_arguments('-D_GNU_SOURCE', '-fsigned-char', language : 'c')
+
+if host_machine.system() == 'darwin'
+ add_project_arguments('-D_DARWIN_C_SOURCE', language : 'c')
+endif
cc = meson.get_compiler('c')
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')
conf.set('HAVE_LIBUUID', build_libuuid ? 1 : false)
summary('libuuid', build_libuuid ? 'enabled' : 'disabled', section : 'components')
-build_liblastlog2 = not get_option('build-liblastlog2').disabled()
+lib_sqlite3 = dependency('sqlite3', required : get_option('build-liblastlog2'))
+build_liblastlog2 = get_option('build-liblastlog2').require(lib_sqlite3.found()).allowed()
conf.set('HAVE_LIBLASTLOG2', build_liblastlog2 ? 1 : false)
summary('liblastlog2', build_liblastlog2 ? 'enabled' : 'disabled', section : 'components')
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()
+have_sys_vfs_header = cc.has_header('sys/vfs.h')
+
+build_libmount = get_option('build-libmount').require(
+ get_option('build-libblkid').allowed() \
+ and have_sys_vfs_header \
+).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)
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')
unistd.h
utmp.h
utmpx.h
- asm-generic/fcntl.h
- asm/fcntl.h
asm/io.h
linux/blkzoned.h
linux/capability.h
lib_tinfo = dependency(
'tinfo',
+ disabler : true,
required : get_option('tinfo'))
lib_ncursesw = dependency(
else
lib_ncurses = dependency(
'ncurses',
+ disabler : true,
required : get_option('ncurses'))
headers += ['ncurses.h',
'term.h']
lib_z = dependency(
'zlib',
+ disabler : true,
required : get_option('zlib'))
lib_readline = dependency(
required : get_option('systemd'))
conf.set('HAVE_LIBUDEV', lib_udev.found() ? 1 : false)
-lib_crypt = cc.find_library('crypt')
-
-lib_pam = cc.find_library('pam', required : get_option('build-login'))
-if not lib_pam.found()
- lib_pam = cc.find_library('pam', required : get_option('build-chfn-chsh'))
-endif
-if not lib_pam.found()
- lib_pam = cc.find_library('pam', required : get_option('build-su'))
-endif
-if not lib_pam.found()
- lib_pam = cc.find_library('pam', required : get_option('build-runuser'))
+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',
+ disabler : true,
+ required : get_option('build-login').enabled() or \
+ get_option('build-chfn-chsh').enabled() or \
+ get_option('build-su').enabled() or \
+ get_option('build-runuser').enabled())
if lib_pam.found()
lib_pam_misc = cc.find_library('pam_misc')
lib_pam = [lib_pam, lib_pam_misc]
conf.set('HAVE_SMACK', not get_option('smack').disabled())
-lib_sqlite3 = dependency('sqlite3', required : get_option('build-liblastlog2'))
foreach header : headers
have = cc.has_header(header)
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')
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)
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',
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)
bison = find_program('bison')
flex = find_program('flex')
+sed = find_program('sed')
build_hwclock = not get_option('build-hwclock').disabled()
bison_gen = generator(
output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
+python_program = find_program('python3', 'python', native : 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'
subdir('misc-utils')
subdir('text-utils')
subdir('term-utils')
+subdir('lsfd-cmd')
subdir('po')
includes = [dir_include,
- dir_libblkid,
dir_libsmartcols,
- dir_libmount,
dir_libfdisk,
dir_libuuid,
dir_liblastlog2,
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',
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',
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,
bashcompletions += ['tunelp']
endif
+opt = get_option('build-fstrim').require(have_sys_vfs_header).allowed()
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']
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)
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']
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)
'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)
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)
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)
# 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']
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',
'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)
unshare_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : usrbin_exec_dir,
install : opt,
build_by_default : opt)
unshare_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [mount_dep],
install_dir : usrbin_exec_dir,
install : opt,
build_by_default : opt)
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)
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)
'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)
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
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)
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)
'disk-utils/partx.8.adoc']
bashcompletions += ['addpart', 'delpart', 'resizepart', 'partx']
endif
+opt = opt and 'partx' in static_programs
+exe = executable(
+ 'addpart.static',
+ addpart_sources,
+ include_directories : includes,
+ link_args : ['--static'],
+ link_with : [lib_common],
+ install_dir : usrsbin_exec_dir,
+ install : opt,
+ build_by_default : opt)
+exe2 = executable(
+ 'delpart.static',
+ delpart_sources,
+ include_directories : includes,
+ link_args : ['--static'],
+ link_with : [lib_common],
+ install_dir : usrsbin_exec_dir,
+ install : opt,
+ build_by_default : opt)
+exe3 = executable(
+ 'resizepart.static',
+ resizepart_sources,
+ include_directories : includes,
+ link_args : ['--static'],
+ link_with : [lib_common],
+ install_dir : usrsbin_exec_dir,
+ install : opt,
+ build_by_default : opt)
+exe4 = executable(
+ 'partx.static',
+ partx_sources,
+ include_directories : includes,
+ link_args : ['--static'],
+ link_with : [lib_common,
+ lib_smartcols.get_static_lib()],
+ dependencies : [blkid_static_dep],
+ install_dir : usrsbin_exec_dir,
+ install : opt,
+ build_by_default : opt)
+
+if opt
+ exes += [exe, exe2, exe3, exe4]
+endif
############################################################
+opt = get_option('build-script').require(have_pty).allowed()
exe = executable(
'script',
script_sources,
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',
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,
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',
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']
errnos_h = custom_target('errnos.h',
input : 'tools/all_errnos',
output : 'errnos.h',
- command : ['tools/all_errnos', cc.cmd_array(), get_option('c_args')],
+ command : ['tools/all_errnos', sed.full_path(),
+ cc.cmd_array(), get_option('c_args')],
)
-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, 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']
+ manadocs += ['lsfd-cmd/lsfd.1.adoc']
endif
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)
'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)
'sample-mkfs',
'libblkid/samples/mkfs.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
'sample-partitions',
'libblkid/samples/partitions.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
'sample-superblocks',
'libblkid/samples/superblocks.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
'sample-topology',
'libblkid/samples/topology.c',
include_directories : includes,
- link_with : lib_blkid)
+ dependencies : [blkid_dep])
if not is_disabler(exe)
exes += exe
endif
'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
'findfs',
findfs_sources,
include_directories : includes,
- link_with : [lib_blkid],
+ dependencies : [blkid_dep],
install_dir : sbindir,
install : true)
if not is_disabler(exe)
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)
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']
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']
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']
syscalls_h = custom_target('syscalls.h',
input : 'tools/all_syscalls',
output : 'syscalls.h',
- command : ['tools/all_syscalls', cc.cmd_array(), get_option('c_args')],
+ 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, errnos_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, errnos_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']
install : opt,
build_by_default : opt)
+exe5 = executable(
+ 'coresched',
+ 'schedutils/coresched.c',
+ 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, exe2, exe3, exe4]
+ exes += [exe, exe2, exe3, exe4, exe5]
manadocs += ['schedutils/chrt.1.adoc',
'schedutils/ionice.1.adoc',
'schedutils/taskset.1.adoc',
- 'schedutils/uclampset.1.adoc']
- bashcompletions += ['chrt', 'ionice', 'taskset', 'uclampset']
+ 'schedutils/uclampset.1.adoc',
+ 'schedutils/coresched.1.adoc']
+ bashcompletions += ['chrt', 'ionice', 'taskset', 'uclampset', 'coresched']
endif
############################################################
exes += exe
endif
-if conf.get('HAVE_PTY').to_string() == '1'
+if have_pty
exe = executable(
'test_pty',
pty_session_c,
############################################################
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',
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
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
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
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
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
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
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
'''asan=@0@
PYTHON=@1@
'''.format(get_option('b_sanitize')=='address' ? 'yes' : '',
- python.full_path())])
+ python_program.full_path())])
run_sh = find_program('tests/run.sh')
run_target(