package_string = '@0@ @1@'.format(meson.project_name(), meson.project_version())
conf.set_quoted('PACKAGE_STRING', package_string)
-codes = [''' {print $1} ''',
- ''' {sub("-.*","",$2); print $2} ''',
- ''' {sub("-.*","",$3); print $3 ~ /^[0-9]+$/ ? $3 : 0} ''']
pc_version = []
-foreach code : codes
- res = run_command('bash', '-c',
- '''echo '@0@' | awk -F. '@1@' '''.format(
- meson.project_version(), code), check: true)
- pc_version += res.stdout().strip()
-endforeach
+pc_version = meson.project_version().split('-')[0].split('.')
+
+if pc_version.length() < 3
+ pc_version += '0'
+endif
+
pc_version = '.'.join(pc_version)
conf.set_quoted('LIBBLKID_VERSION', libblkid_version)
conf.set('HAVE_STRUCT_MOUNT_ATTR', have_mountfd_api ? 1 : false)
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()
conf.set('HAVE_LIBMOUNT', build_libmount ? 1 : false)
conf.set('USE_LIBMOUNT_SUPPORT_NAMESPACES', 1)
linux/kcmp.h
linux/net_namespace.h
linux/nsfs.h
+ linux/mount.h
linux/pr.h
- linux/stat.h
linux/securebits.h
linux/tiocl.h
linux/version.h
conf.set('HAVE_LIBSYSTEMD', lib_systemd.found() ? 1 : false)
conf.set('USE_SYSTEMD', lib_systemd.found() ? 1 : false)
+have = cc.has_function(
+ 'sd_session_get_username',
+ dependencies : lib_systemd)
+conf.set('HAVE_DECL_SD_SESSION_GET_USERNAME', have ? 1 : false)
+
lib_udev = dependency(
'libudev',
required : get_option('systemd'))
name : 'langinfo.h defines _NL_ABALTMON_x constants')
conf.set('HAVE_LANGINFO_NL_ABALTMON', have ? 1 : false)
+have = cc.compiles('''
+ #define _GNU_SOURCE 1
+ #include <langinfo.h>
+ int main(void) {
+ char *str;
+ str = nl_langinfo (_NL_TIME_WEEK_1STDAY);
+ return 0;
+ }
+ ''',
+ name : 'langinfo.h defines _NL_TIME_WEEK_1STDAY constant')
+conf.set('HAVE_DECL__NL_TIME_WEEK_1STDAY', have ? 1 : false)
+
funcs = '''
+ cachestat
clearenv
close_range
__fpurge
prefix : '#include <sys/stat.h>')
conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false)
+have = cc.has_member('struct statx', 'stx_mnt_id',
+ prefix : '#include <sys/stat.h>')
+conf.set('HAVE_STRUCT_STATX_STX_MNT_ID', have ? 1 : false)
+
# replacement for AC_STRUCT_TIMEZONE
have = cc.has_member('struct tm', 'tm_zone',
prefix : '#include <time.h>')
sysvinit = get_option('sysvinit').enabled()
sysvinitrcdir = sysconfdir + '/init.d'
+program_tests = get_option('program-tests')
+
chfn_chsh_password = get_option('chfn-chsh-password') or lib_user.found()
conf.set('CHFN_CHSH_PASSWORD', chfn_chsh_password ? 1 : false)
'-Wunused-parameter',
'-Wunused-result',
'-Wunused-variable',
+ '-Wvla',
+ '-Walloca',
]
foreach compiler_flag : compiler_flags
if cc.has_argument(compiler_flag)
'test_islocal',
test_islocal_sources,
include_directories : includes,
- c_args : '-DTEST_PROGRAM')
+ c_args : '-DTEST_PROGRAM',
+ build_by_default : program_tests)
exes += exe
exe = executable(
test_consoles_sources,
c_args : ['-DTEST_PROGRAM'],
include_directories : includes,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default : program_tests)
exes += exe
opt = not get_option('build-last').disabled()
dependencies : [lib_tinfo,
curses_libs,
lib_magic],
- build_by_default : opt)
+ build_by_default : opt and program_tests)
exes += exe
if opt and not is_disabler(exe)
exes += [exe, exe2]
bashcompletions += ['renice']
endif
+exe = executable(
+ 'setpgid',
+ setpgid_sources,
+ include_directories: includes,
+ link_with : [lib_common,
+ lib_smartcols],
+ install_dir : usrbin_exec_dir,
+ install : true)
+if opt and not is_disabler(exe)
+ exes += exe
+ manadocs += ['sys-utils/setpgid.1.adoc']
+ bashcompletions += ['setpgid']
+endif
+
exe = executable(
'setsid',
setsid_sources,
include_directories : dir_include,
c_args : '-DTEST_DMESG',
link_with : [lib_common,
- lib_tcolors])
+ lib_tcolors],
+ build_by_default : program_tests)
if not is_disabler(exe)
exes += exe
endif
include_directories : includes,
c_args : '-DTEST_SCRIPT',
link_with : [lib_common],
- build_by_default : opt)
+ build_by_default : opt and program_tests)
exe3 = executable(
'fsck.minix',
fsck_minix_sources,
dependencies : [lib_util,
lib_utempter,
realtime_libs,
- math_libs])
+ math_libs],
+ build_by_default : program_tests)
exes += exe
exe = executable(
agetty_sources,
include_directories : includes,
link_with : [lib_common, logindefs_c],
- dependencies : BSD ? lib_util : [],
+ dependencies : [BSD ? lib_util : [], lib_systemd],
install_dir : sbindir,
install : opt,
build_by_default : opt)
wall_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [lib_systemd],
install_dir : usrbin_exec_dir,
install_mode : 'rwxr-sr-x',
install : opt,
write_sources,
include_directories : includes,
link_with : [lib_common],
+ dependencies : [lib_systemd],
install_dir : usrbin_exec_dir,
install_mode : 'rwxr-sr-x',
install : opt,
include_directories : includes,
c_args : '-DTEST_LOGGER',
link_with : [lib_common],
- dependencies : [lib_systemd])
+ dependencies : [lib_systemd],
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'uuidgen',
uuidgen_sources,
include_directories : includes,
- link_with : [lib_uuid],
+ link_with : [lib_common,
+ lib_uuid],
install_dir : usrbin_exec_dir,
install : true)
if not is_disabler(exe)
link_with : [lib_common,
lib_uuid],
dependencies : thread_libs,
- build_by_default : opt)
+ build_by_default : opt and program_tests)
if not is_disabler(exe)
exes += [exe, exe2]
manadocs += ['misc-utils/uuidd.8.adoc']
'test_blkid_fuzz_sample',
'libblkid/src/fuzz.c',
include_directories: includes,
- link_with: lib_blkid)
+ link_with: lib_blkid,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
c_args : '-DTEST_CAL',
link_with : [lib_common,
lib_tcolors],
- dependencies : [curses_libs])
+ dependencies : [curses_libs],
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
bashcompletions += ['fadvise']
endif
-# XXX: HAVE_PIDFD_OPEN
-exe = executable(
- 'waitpid',
- waitpid_sources,
- include_directories : includes,
- link_with : [lib_common],
- install_dir : usrbin_exec_dir,
- install : true)
-if not is_disabler(exe)
- exes += exe
- manadocs += ['misc-utils/waitpid.1.adoc']
- bashcompletions += ['waitpid']
+if LINUX and conf.get('HAVE_PIDFD_OPEN') != false
+ exe = executable(
+ 'waitpid',
+ waitpid_sources,
+ include_directories : includes,
+ link_with : [lib_common],
+ install_dir : usrbin_exec_dir,
+ install : true)
+ if not is_disabler(exe)
+ exes += exe
+ manadocs += ['misc-utils/waitpid.1.adoc']
+ bashcompletions += ['waitpid']
+ endif
endif
syscalls_h = custom_target('syscalls.h',
input : 'tools/all_syscalls',
output : 'syscalls.h',
- command : ['bash', '@INPUT@', cc.cmd_array()],
+ command : ['tools/all_syscalls', cc.cmd_array()]
)
if cc.compiles(fs.read('include/audit-arch.h'), name : 'has AUDIT_ARCH_NATIVE')
endif
endif
+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)
+ exes += exe
+ manadocs += ['misc-utils/lsclocks.1.adoc']
+ bashcompletions += ['lsclocks']
+endif
+
############################################################
opt = not get_option('build-schedutils').disabled()
'lib/ttyutils.c',
c_args : ['-DTEST_PROGRAM_TTYUTILS'],
include_directories : dir_include,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/blkdev.c',
c_args : ['-DTEST_PROGRAM_BLKDEV'],
include_directories : dir_include,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/ismounted.c',
c_args : ['-DTEST_PROGRAM_ISMOUNTED'],
include_directories : dir_include,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_mangle',
'lib/mangle.c',
c_args : ['-DTEST_PROGRAM_MANGLE'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_strutils',
'lib/strutils.c',
c_args : ['-DTEST_PROGRAM_STRUTILS'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/color-names.c',
c_args : ['-DTEST_PROGRAM_COLORS'],
include_directories : dir_include,
- link_with : [lib_common, lib_tcolors])
+ link_with : [lib_common, lib_tcolors],
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_randutils',
'lib/randutils.c',
c_args : ['-DTEST_PROGRAM_RANDUTILS'],
- include_directories : dir_include)
-exes += exe
-
-# XXX: HAVE_OPENAT && HAVE_DIRFD
-exe = executable(
- 'test_procfs',
- 'lib/procfs.c',
- c_args : ['-DTEST_PROGRAM_PROCFS'],
include_directories : dir_include,
- link_with : lib_common)
+ build_by_default: program_tests)
exes += exe
-# XXX: HAVE_OPENAT && HAVE_DIRFD
-exe = executable(
- 'test_path',
- 'lib/path.c',
- 'lib/fileutils.c',
- have_cpu_set_t ? 'lib/cpuset.c' : [],
- c_args : ['-DTEST_PROGRAM_PATH'],
- include_directories : dir_include,
- link_with : lib_common)
-exes += exe
+if conf.get('HAVE_OPENAT') != false and conf.get('HAVE_DIRFD') != false
+ exe = executable(
+ 'test_procfs',
+ 'lib/procfs.c',
+ c_args : ['-DTEST_PROGRAM_PROCFS'],
+ include_directories : dir_include,
+ link_with : lib_common,
+ build_by_default: program_tests)
+ exes += exe
+
+ exe = executable(
+ 'test_path',
+ 'lib/path.c',
+ 'lib/fileutils.c',
+ have_cpu_set_t ? 'lib/cpuset.c' : [],
+ c_args : ['-DTEST_PROGRAM_PATH'],
+ include_directories : dir_include,
+ link_with : lib_common,
+ build_by_default: program_tests)
+ exes += exe
+endif
if conf.get('HAVE_PTY') != false
exe = executable(
link_with : [lib_common],
dependencies : [lib_m,
realtime_libs,
- lib_util])
+ lib_util],
+ build_by_default: program_tests)
exes += exe
endif
-# XXX: LINUX
-exe = executable(
- 'test_cpuset',
- 'lib/cpuset.c',
- c_args : ['-DTEST_PROGRAM_CPUSET'],
- include_directories : dir_include)
-exes += exe
+if LINUX
+ exe = executable(
+ 'test_cpuset',
+ 'lib/cpuset.c',
+ c_args : ['-DTEST_PROGRAM_CPUSET'],
+ include_directories : dir_include,
+ build_by_default: program_tests)
+ exes += exe
+endif
exe = executable(
'test_sysfs',
'lib/fileutils.c',
have_cpu_set_t ? 'lib/cpuset.c' : [],
c_args : ['-DTEST_PROGRAM_SYSFS'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_pager',
'lib/pager.c',
c_args : ['-DTEST_PROGRAM_PAGER'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_linux_version',
'lib/linux_version.c',
c_args : ['-DTEST_PROGRAM_LINUXVERSION'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_fileutils',
'lib/fileutils.c',
c_args : ['-DTEST_PROGRAM_FILEUTILS'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_canonicalize',
'lib/canonicalize.c',
c_args : ['-DTEST_PROGRAM_CANONICALIZE'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/timeutils.c',
'lib/strutils.c',
c_args : ['-DTEST_PROGRAM_TIMEUTILS'],
- include_directories : dir_include)
+ include_directories : dir_include,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/pwdutils.c',
c_args : ['-DTEST_PROGRAM'],
include_directories : dir_include,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'lib/logindefs.c',
c_args : ['-DTEST_PROGRAM'],
include_directories : dir_include,
- link_with : [lib_common, logindefs_c])
+ link_with : [lib_common, logindefs_c],
+ build_by_default: program_tests)
exes += exe
'libuuid/src/test_uuid.c',
include_directories : [dir_include, dir_libuuid],
link_with : lib_uuid,
- dependencies : socket_libs)
+ dependencies : socket_libs,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/ask.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/gpt.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/utils.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/script.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/version.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'libfdisk/src/item.c',
c_args : libfdisk_tests_cflags,
include_directories : lib_fdisk_includes,
- link_with : libfdisk_tests_ldadd)
+ link_with : libfdisk_tests_ldadd,
+ build_by_default: program_tests)
if not is_disabler(exe)
exes += exe
endif
'test_mbsencode',
'tests/helpers/test_mbsencode.c',
include_directories : includes,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_byteswap',
'tests/helpers/test_byteswap.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_md5',
'tests/helpers/test_md5.c',
md5_c,
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_sha1',
'tests/helpers/test_sha1.c',
sha1_c,
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_pathnames',
'tests/helpers/test_pathnames.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_strerror',
'tests/helpers/test_strerror.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_sysinfo',
'tests/helpers/test_sysinfo.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_sigreceive',
'tests/helpers/test_sigreceive.c',
include_directories : includes,
- link_with : lib_common)
+ link_with : lib_common,
+ build_by_default: program_tests)
exes += exe
exe = executable(
'test_tiocsti',
'tests/helpers/test_tiocsti.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
exe = executable(
predefined_c,
unpack_c,
unparse_c,
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
mq_libs = []
mq_libs += cc.find_library('rt', required : true)
-# XXX: LINUX
-exe = executable(
- 'test_mkfds',
- 'tests/helpers/test_mkfds.c',
- include_directories : includes,
- dependencies : mq_libs)
-exes += exe
+
+if LINUX
+ exe = executable(
+ 'test_mkfds',
+ 'tests/helpers/test_mkfds.c',
+ include_directories : includes,
+ dependencies : mq_libs,
+ build_by_default: program_tests)
+ exes += exe
+endif
exe = executable(
'test_enosys',
'tests/helpers/test_enosys.c',
- include_directories : includes)
+ include_directories : includes,
+ build_by_default: program_tests)
exes += exe
############################################################
-# XXX: HAVE_OPENAT
-exe = executable(
- 'sample-scols-tree',
- 'libsmartcols/samples/tree.c',
- include_directories : includes,
- link_with : [lib_smartcols, lib_common])
-if not is_disabler(exe)
- exes += exe
+if conf.get('HAVE_OPENAT') != false
+ exe = executable(
+ 'sample-scols-tree',
+ 'libsmartcols/samples/tree.c',
+ include_directories : includes,
+ link_with : [lib_smartcols, lib_common],
+ build_by_default: program_tests)
+ if not is_disabler(exe)
+ exes += exe
+ endif
endif
exe = executable(