vendordir = get_option('vendordir')
-add_project_arguments('-D_GNU_SOURCE', language : 'c')
+add_project_arguments('-D_GNU_SOURCE', '-fsigned-char', language : 'c')
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')
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(
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()
- 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'))
-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)
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',
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'
subdir('po')
includes = [dir_include,
- dir_libblkid,
dir_libsmartcols,
- dir_libmount,
dir_libfdisk,
dir_libuuid,
dir_liblastlog2,
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']
'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
'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']
'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)
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)
include_directories : includes,
link_args : ['--static'],
link_with : [lib_common,
- lib_blkid.get_static_lib(),
lib_smartcols.get_static_lib()],
+ dependencies : [blkid_static_dep],
install_dir : usrsbin_exec_dir,
install : opt,
build_by_default : opt)
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']
command : ['tools/all_errnos', 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']
endif
'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']
############################################################
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