meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
project('util-linux', 'c',
|
2022-05-04 23:52:31 -04:00
|
|
|
version : run_command('tools/git-version-gen', check: true).stdout(),
|
2023-05-23 16:32:23 +02:00
|
|
|
meson_version: '>=0.57.0',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
license : 'GPLv2+')
|
|
|
|
|
2023-05-22 17:58:17 +02:00
|
|
|
fs = import('fs')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
pkgconfig = import('pkgconfig')
|
|
|
|
|
|
|
|
libblkid_version = '1.1.0'
|
2021-06-01 09:52:10 +02:00
|
|
|
libblkid_date = '01-Jun-2021'
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
libuuid_version = '1.3.0'
|
|
|
|
libmount_version = '1.1.0'
|
|
|
|
libsmartcols_version = '1.1.0'
|
|
|
|
libfdisk_version = '1.1.0'
|
|
|
|
|
|
|
|
prefixdir = get_option('prefix')
|
|
|
|
if not prefixdir.startswith('/')
|
|
|
|
error('Prefix is not absolute: "@0@"'.format(prefixdir))
|
|
|
|
endif
|
|
|
|
bindir = join_paths(prefixdir, get_option('bindir'))
|
|
|
|
sbindir = join_paths(prefixdir, get_option('sbindir'))
|
|
|
|
sysconfstaticdir = join_paths(prefixdir, 'lib')
|
2021-12-30 16:33:33 +01:00
|
|
|
docdir = join_paths(prefixdir, get_option('datadir'), 'doc', 'util-linux')
|
2021-04-06 15:32:46 +02:00
|
|
|
mandir = join_paths(prefixdir, get_option('mandir'))
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
runstatedir = '/run'
|
2022-07-14 23:49:16 +02:00
|
|
|
execprefixdir = prefixdir
|
2022-12-18 18:42:04 +00:00
|
|
|
sysconfdir = join_paths(prefixdir, get_option('sysconfdir'))
|
2022-07-14 23:49:16 +02:00
|
|
|
usrbin_exec_dir = join_paths(execprefixdir, bindir)
|
|
|
|
usrsbin_exec_dir = join_paths(execprefixdir, sbindir)
|
2021-12-30 16:35:03 +01:00
|
|
|
bash_completion = dependency('bash-completion', required : get_option('build-bash-completion'))
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2021-02-16 18:09:24 +01:00
|
|
|
vendordir = get_option('vendordir')
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
add_project_arguments('-D_GNU_SOURCE', language : 'c')
|
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
|
|
|
|
|
|
|
conf = configuration_data()
|
2022-09-08 19:12:33 -07:00
|
|
|
conf.set_quoted('PACKAGE', meson.project_name())
|
|
|
|
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
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} ''',
|
2022-05-05 00:16:15 -04:00
|
|
|
''' {sub("-.*","",$3); print $3 ~ /^[0-9]+$/ ? $3 : 0} ''']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
pc_version = []
|
|
|
|
foreach code : codes
|
|
|
|
res = run_command('bash', '-c',
|
|
|
|
'''echo '@0@' | awk -F. '@1@' '''.format(
|
2022-04-12 21:50:57 -04:00
|
|
|
meson.project_version(), code), check: true)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
pc_version += res.stdout().strip()
|
|
|
|
endforeach
|
|
|
|
pc_version = '.'.join(pc_version)
|
|
|
|
|
|
|
|
conf.set_quoted('LIBBLKID_VERSION', libblkid_version)
|
|
|
|
conf.set_quoted('LIBBLKID_DATE', libblkid_date)
|
|
|
|
|
|
|
|
conf.set('bindir', bindir)
|
|
|
|
conf.set('sbindir', sbindir)
|
|
|
|
conf.set('runstatedir', runstatedir)
|
2022-12-18 18:42:04 +00:00
|
|
|
conf.set('sysconfdir', sysconfdir)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('usrsbin_execdir', usrsbin_exec_dir)
|
|
|
|
conf.set('docdir', docdir)
|
|
|
|
conf.set_quoted('_PATH_SYSCONFSTATICDIR', sysconfstaticdir)
|
|
|
|
conf.set_quoted('_PATH_RUNSTATEDIR', runstatedir)
|
|
|
|
conf.set_quoted('CONFIG_ADJTIME_PATH', '/etc/adjtime')
|
|
|
|
conf.set_quoted('ADJTIME_PATH', '/etc/adjtime') # yes, both are used :(
|
|
|
|
|
2021-02-16 18:09:24 +01:00
|
|
|
conf.set_quoted('_PATH_VENDORDIR', vendordir)
|
|
|
|
conf.set('USE_VENDORDIR', vendordir == '' ? false : 1)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
build_libblkid = not get_option('build-libblkid').disabled()
|
|
|
|
conf.set('HAVE_LIBBLKID', build_libblkid ? 1 : false)
|
|
|
|
summary('libblkid', build_libblkid ? 'enabled' : 'disabled', section : 'components')
|
|
|
|
|
|
|
|
build_libuuid = not get_option('build-libuuid').disabled()
|
|
|
|
conf.set('HAVE_LIBUUID', build_libuuid ? 1 : false)
|
|
|
|
summary('libuuid', build_libuuid ? 'enabled' : 'disabled', section : 'components')
|
|
|
|
|
2022-11-22 12:11:07 +01:00
|
|
|
have_mountfd_api = cc.sizeof('struct mount_attr', prefix : '#include <linux/mount.h>') > 0
|
|
|
|
conf.set('HAVE_STRUCT_MOUNT_ATTR', have_mountfd_api ? 1 : false)
|
|
|
|
conf.set('HAVE_MOUNTFD_API', have_mountfd_api ? 1 : false)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
build_libmount = not get_option('build-libmount').disabled()
|
|
|
|
conf.set('HAVE_LIBMOUNT', build_libmount ? 1 : false)
|
2022-11-02 05:19:19 +01:00
|
|
|
conf.set('USE_LIBMOUNT_SUPPORT_NAMESPACES', 1)
|
2022-11-22 12:11:07 +01:00
|
|
|
conf.set('USE_LIBMOUNT_MOUNTFD_SUPPORT', have_mountfd_api ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
summary('libmount', build_libmount ? 'enabled' : 'disabled', section : 'components')
|
|
|
|
|
|
|
|
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()
|
|
|
|
conf.set('HAVE_LIBFDISK', build_libfdisk ? 1 : false)
|
|
|
|
summary('libfdisk', build_libfdisk ? 'enabled' : 'disabled', section : 'components')
|
|
|
|
|
|
|
|
build_uuidd = not get_option('build-uuidd').disabled()
|
|
|
|
conf.set('HAVE_UUIDD', build_uuidd ? 1 : false)
|
|
|
|
summary('uuidd', build_uuidd ? 'enabled' : 'disabled', section : 'components')
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
static_programs = get_option('static-programs')
|
|
|
|
need_static_libs = static_programs.length() > 0 # a rough estimate...
|
|
|
|
summary('static programs', static_programs)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
LINUX = host_machine.system() in ['linux']
|
|
|
|
BSD = host_machine.system() in ['dragonfly', 'freebsd', 'netbsd', 'openbsd']
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
code = '''
|
|
|
|
#include <wchar.h>
|
|
|
|
#include <wctype.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
int main(void) {
|
|
|
|
wchar_t wc;
|
|
|
|
wint_t w;
|
|
|
|
w = fgetwc(stdin);
|
|
|
|
if (w == WEOF)
|
|
|
|
return 1;
|
|
|
|
wc = w;
|
|
|
|
fputwc(wc,stdout);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
'''
|
|
|
|
have = cc.compiles(code, name : 'wchar_t support')
|
|
|
|
if not have and get_option('widechar').enabled()
|
|
|
|
error('widechar support requested but unavailable')
|
|
|
|
endif
|
|
|
|
if get_option('ncurses').enabled() and get_option('widechar').enabled()
|
|
|
|
error('widechar support is incompatible with non-wide ncurses')
|
|
|
|
endif
|
|
|
|
conf.set('HAVE_WIDECHAR', have ? 1 : false)
|
|
|
|
|
|
|
|
headers = '''
|
|
|
|
byteswap.h
|
|
|
|
crypt.h
|
|
|
|
endian.h
|
|
|
|
err.h
|
|
|
|
errno.h
|
|
|
|
fcntl.h
|
|
|
|
getopt.h
|
|
|
|
inttypes.h
|
|
|
|
langinfo.h
|
|
|
|
lastlog.h
|
|
|
|
libutil.h
|
|
|
|
locale.h
|
|
|
|
mntent.h
|
|
|
|
paths.h
|
|
|
|
pty.h
|
|
|
|
shadow.h
|
|
|
|
stdint.h
|
|
|
|
stdio_ext.h
|
|
|
|
stdlib.h
|
|
|
|
string.h
|
|
|
|
strings.h
|
|
|
|
unistd.h
|
|
|
|
utmp.h
|
|
|
|
utmpx.h
|
lsfd: use constants defined in asm/fctl.h flags field of a fdinfo
Close #1709.
The original code decoded the field using constants defined in
/usr/include/fcntl.h. The constants defined in /usr/include/fcntl.h
was suitable for passing to the kernel as a part of arguments of
system calls like open(2). However, they were not suitable for
decoding the field.
Let's think about decoding 0300000 in
$ cat /proc/157067/fdinfo/3
pos: 0
flags: 0300000
$ lsfd -p 157067 -o+flags -Q -Q 'ASSOC == "3"'
COMMAND PID USER ASSOC MODE TYPE SOURCE MNTID INODE NAME FLAGS
test_mkfds 125128 jet 3 r-- DIR dm-0 96 96 / ???????????????????
The decoded string is printed at ???????????????????.
Quoted from /usr/include/bits/fcntl-linux.h:
#ifndef __O_LARGEFILE
# define __O_LARGEFILE 0100000
#endif
#ifndef __O_DIRECTORY
# define __O_DIRECTORY 0200000
#endif
#ifndef __O_TMPFILE
# define __O_TMPFILE (020000000 | __O_DIRECTORY)
#endif
...
#ifdef __USE_XOPEN2K8
# define O_DIRECTORY __O_DIRECTORY /* Must be a directory. */
...
#endif
...
#ifdef __USE_LARGEFILE64
# define O_LARGEFILE __O_LARGEFILE
#endif
With these constants, 0300000 is decoded as "directory,_tmpfile" or
"largefile,directory,_tmpfile".
Unexpectedly the decoded string has "_tmpfile".
It has "largefile" only when we define __USE_LARGEFILE64 when building
lsfd though it should have "largefile" always.
Quoted from /usr/include/asm-generic/fcntl.h:
#ifndef O_LARGEFILE
#define O_LARGEFILE 00100000
#endif
#ifndef O_DIRECTORY
#define O_DIRECTORY 00200000 /* must be a directory */
#endif
#ifndef __O_TMPFILE
#define __O_TMPFILE 020000000
#endif
The decoded string is "largefile,directory". It doesn't depend on
__USE_LARGEFILE64.
This change adds lsfd-decode-file-flags.c, a new small and isolated
source file, in which lsfd_decode_file_flags(), the function for
decoding the field is defined.
include/c.h includes /usr/include/fcntl.h. Almost all lsfd related
source files includes include/c.h indirectly. On the other hand,
lsfd-decode-file-flags.c includes only /usr/include/asm-generic/fcntl.h
or /usr/include/asm/fcntl.h. So the function can decode the field
expectedly.
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
2022-06-09 00:32:19 +09:00
|
|
|
asm-generic/fcntl.h
|
|
|
|
asm/fcntl.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
asm/io.h
|
|
|
|
linux/blkzoned.h
|
|
|
|
linux/capability.h
|
|
|
|
linux/cdrom.h
|
|
|
|
linux/compiler.h
|
|
|
|
linux/falloc.h
|
|
|
|
linux/fd.h
|
2023-05-14 18:35:30 +02:00
|
|
|
linux/fs.h
|
2021-05-26 13:12:31 +02:00
|
|
|
linux/fiemap.h
|
|
|
|
linux/gsmmux.h
|
2023-05-14 18:35:30 +02:00
|
|
|
linux/if_alg.h
|
|
|
|
linux/kcmp.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
linux/net_namespace.h
|
2021-05-26 13:12:31 +02:00
|
|
|
linux/nsfs.h
|
2023-05-14 18:35:30 +02:00
|
|
|
linux/pr.h
|
2023-02-14 12:04:41 +01:00
|
|
|
linux/stat.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
linux/securebits.h
|
|
|
|
linux/tiocl.h
|
|
|
|
linux/version.h
|
|
|
|
linux/watchdog.h
|
|
|
|
net/if.h
|
|
|
|
net/if_dl.h
|
|
|
|
netinet/in.h
|
|
|
|
security/openpam.h
|
|
|
|
security/pam_appl.h
|
|
|
|
security/pam_misc.h
|
|
|
|
sys/disk.h
|
|
|
|
sys/disklabel.h
|
|
|
|
sys/endian.h
|
|
|
|
sys/file.h
|
|
|
|
sys/io.h
|
|
|
|
sys/ioccom.h
|
|
|
|
sys/ioctl.h
|
|
|
|
sys/mkdev.h
|
|
|
|
sys/mount.h
|
|
|
|
sys/param.h
|
2022-08-15 20:07:27 +02:00
|
|
|
sys/pidfd.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
sys/prctl.h
|
|
|
|
sys/resource.h
|
2021-02-16 12:10:36 +01:00
|
|
|
sys/sendfile.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
sys/signalfd.h
|
|
|
|
sys/socket.h
|
|
|
|
sys/sockio.h
|
|
|
|
sys/stat.h
|
2023-05-14 18:35:30 +02:00
|
|
|
sys/statfs.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
sys/swap.h
|
|
|
|
sys/syscall.h
|
|
|
|
sys/sysmacros.h
|
|
|
|
sys/time.h
|
|
|
|
sys/timex.h
|
|
|
|
sys/ttydefaults.h
|
|
|
|
sys/types.h
|
|
|
|
sys/ucred.h
|
|
|
|
sys/un.h
|
2023-05-14 18:35:30 +02:00
|
|
|
sys/vfs.h
|
2021-05-26 13:12:31 +02:00
|
|
|
sys/xattr.h
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
'''.split()
|
|
|
|
|
|
|
|
lib_m = cc.find_library('m')
|
|
|
|
|
|
|
|
lib_tinfo = dependency(
|
|
|
|
'tinfo',
|
|
|
|
required : get_option('tinfo'))
|
|
|
|
|
|
|
|
lib_ncursesw = dependency(
|
|
|
|
'ncursesw',
|
|
|
|
required : get_option('ncursesw'))
|
|
|
|
if lib_ncursesw.found()
|
|
|
|
headers += ['ncursesw/ncurses.h',
|
|
|
|
'ncursesw/term.h',
|
|
|
|
'ncurses.h',
|
|
|
|
'term.h']
|
|
|
|
lib_ncurses = disabler()
|
|
|
|
else
|
|
|
|
lib_ncurses = dependency(
|
|
|
|
'ncurses',
|
|
|
|
required : get_option('ncurses'))
|
|
|
|
headers += ['ncurses.h',
|
|
|
|
'term.h']
|
|
|
|
endif
|
|
|
|
|
|
|
|
conf.set('HAVE_LIBNCURSESW', lib_ncursesw.found())
|
|
|
|
conf.set('HAVE_LIBNCURSES', lib_ncurses.found())
|
|
|
|
conf.set('HAVE_NCURSES', lib_ncursesw.found() or lib_ncurses.found())
|
|
|
|
|
|
|
|
lib_slang = dependency(
|
|
|
|
'slang',
|
|
|
|
required : get_option('slang'))
|
|
|
|
if lib_slang.found()
|
|
|
|
headers += ['slang.h',
|
|
|
|
'slang/slang.h',
|
|
|
|
'slcurses.h',
|
|
|
|
'slang/slcurses.h']
|
|
|
|
endif
|
|
|
|
conf.set('HAVE_SLANG', lib_slang.found())
|
|
|
|
|
|
|
|
foreach curses_libs : [lib_slang, lib_ncursesw, lib_ncurses]
|
|
|
|
if curses_libs.found()
|
2021-03-17 15:52:08 +01:00
|
|
|
have = cc.has_function('use_default_colors', dependencies : curses_libs)
|
|
|
|
conf.set('HAVE_USE_DEFAULT_COLORS', have ? 1 : false)
|
|
|
|
have = cc.has_function('resizeterm', dependencies : curses_libs)
|
|
|
|
conf.set('HAVE_RESIZETERM', have ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
break
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
|
|
|
|
lib_z = dependency(
|
|
|
|
'zlib',
|
|
|
|
required : get_option('zlib'))
|
|
|
|
|
|
|
|
lib_readline = dependency(
|
|
|
|
'readline',
|
|
|
|
required : get_option('readline'))
|
|
|
|
conf.set('HAVE_LIBREADLINE', lib_readline.found() ? 1 : false)
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
lib_readline_static = dependency(
|
|
|
|
'readline',
|
|
|
|
static : true,
|
|
|
|
required : need_static_libs ? get_option('readline') : disabler())
|
|
|
|
|
2022-09-08 19:03:49 -07:00
|
|
|
if meson.version().version_compare('>= 0.59.0')
|
|
|
|
lib_intl = dependency(
|
|
|
|
'intl',
|
|
|
|
required : get_option('nls'))
|
|
|
|
conf.set('ENABLE_NLS', lib_intl.found() ? 1 : false)
|
|
|
|
else
|
|
|
|
if get_option('nls').enabled()
|
|
|
|
error('nls is not supported with meson before 0.59.0')
|
|
|
|
endif
|
|
|
|
lib_intl = dependency('', required : false)
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
lib_user = dependency(
|
|
|
|
'libuser',
|
|
|
|
version : '>= 0.58',
|
|
|
|
required : get_option('libuser'))
|
|
|
|
conf.set('HAVE_LIBUSER', lib_user.found() ? 1 : false)
|
|
|
|
|
|
|
|
lib_util = cc.find_library(
|
|
|
|
'util',
|
|
|
|
required : get_option('libutil'))
|
|
|
|
conf.set('HAVE_LIBUTIL', lib_util.found() ? 1 : false)
|
|
|
|
|
|
|
|
lib_utempter = cc.find_library(
|
|
|
|
'utempter',
|
|
|
|
required : get_option('libutempter'))
|
|
|
|
conf.set('HAVE_LIBUTEMPTER', lib_utempter.found() ? 1 : false)
|
|
|
|
|
|
|
|
systemd = dependency(
|
|
|
|
'systemd',
|
|
|
|
required : get_option('systemd'))
|
|
|
|
|
|
|
|
lib_systemd = dependency(
|
|
|
|
'libsystemd',
|
|
|
|
required : get_option('systemd'))
|
|
|
|
conf.set('HAVE_LIBSYSTEMD', lib_systemd.found() ? 1 : false)
|
2023-05-14 18:35:30 +02:00
|
|
|
conf.set('USE_SYSTEMD', lib_systemd.found() ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
lib_udev = dependency(
|
|
|
|
'libudev',
|
|
|
|
required : get_option('systemd'))
|
|
|
|
conf.set('HAVE_LIBUDEV', lib_udev.found() ? 1 : false)
|
|
|
|
|
|
|
|
lib_crypt = cc.find_library('crypt')
|
|
|
|
|
2022-06-06 16:17:48 -07:00
|
|
|
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
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
if lib_pam.found()
|
|
|
|
lib_pam_misc = cc.find_library('pam_misc')
|
|
|
|
lib_pam = [lib_pam, lib_pam_misc]
|
2022-05-01 20:28:39 -07:00
|
|
|
else
|
|
|
|
lib_pam_misc = declare_dependency()
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
lib_cryptsetup = dependency(
|
|
|
|
'libcryptsetup',
|
|
|
|
required : get_option('cryptsetup'))
|
|
|
|
conf.set('HAVE_CRYPTSETUP', lib_cryptsetup.found() ? 1 : false)
|
|
|
|
|
2021-07-02 19:44:59 +01:00
|
|
|
if not get_option('cryptsetup').disabled() and get_option('cryptsetup-dlopen').enabled()
|
2022-09-08 18:54:08 -07:00
|
|
|
if meson.version().version_compare('>= 0.62.0')
|
|
|
|
lib_dl = dependency('dl')
|
|
|
|
else
|
|
|
|
lib_dl = cc.find_library('dl')
|
|
|
|
endif
|
2021-07-02 19:44:59 +01:00
|
|
|
conf.set('CRYPTSETUP_VIA_DLOPEN', 1)
|
|
|
|
summary('cryptsetup support (dlopen)',
|
|
|
|
'enabled',
|
|
|
|
section : 'components')
|
|
|
|
else
|
|
|
|
summary('cryptsetup support',
|
|
|
|
lib_cryptsetup.found() ? 'enabled' : 'disabled',
|
|
|
|
section : 'components')
|
|
|
|
endif
|
2021-02-16 12:10:36 +01:00
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
have = cc.has_function(
|
|
|
|
'crypt_activate_by_signed_key',
|
|
|
|
dependencies : lib_cryptsetup)
|
2021-07-02 19:11:58 +01:00
|
|
|
conf.set('HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY', have ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
lib_cap_ng = dependency(
|
2022-05-02 16:18:33 -07:00
|
|
|
'libcap-ng',
|
|
|
|
required : get_option('build-setpriv'))
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
lib_selinux = dependency(
|
|
|
|
'libselinux',
|
2021-02-16 12:10:36 +01:00
|
|
|
version : '>= 2.5',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
required : get_option('selinux'))
|
|
|
|
conf.set('HAVE_LIBSELINUX', lib_selinux.found() ? 1 : false)
|
|
|
|
|
2021-02-16 12:10:36 +01:00
|
|
|
lib_magic = dependency(
|
|
|
|
'libmagic',
|
|
|
|
required : get_option('magic'))
|
|
|
|
conf.set('HAVE_MAGIC', lib_magic.found() ? 1 : false)
|
|
|
|
|
|
|
|
lib_econf = dependency(
|
|
|
|
'libeconf',
|
|
|
|
required : get_option('econf'))
|
|
|
|
conf.set('HAVE_LIBECONF', lib_econf.found() ? 1 : false)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
lib_audit = dependency(
|
2022-12-18 18:39:56 +00:00
|
|
|
'audit',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
required : get_option('audit'))
|
|
|
|
conf.set('HAVE_LIBAUDIT', lib_audit.found() ? 1 : false)
|
|
|
|
|
|
|
|
conf.set('HAVE_SMACK', not get_option('smack').disabled())
|
|
|
|
|
|
|
|
foreach header : headers
|
|
|
|
have = cc.has_header(header)
|
|
|
|
conf.set('HAVE_' + header.underscorify().to_upper(), have ? 1 : false)
|
|
|
|
endforeach
|
|
|
|
|
|
|
|
header = 'linux/btrfs.h'
|
|
|
|
enable_btrfs = cc.has_header(header,
|
|
|
|
required : get_option('btrfs'))
|
|
|
|
conf.set('HAVE_' + header.underscorify().to_upper(), enable_btrfs ? 1 : false)
|
|
|
|
conf.set('HAVE_BTRFS_SUPPORT', enable_btrfs ? 1 : false)
|
|
|
|
|
|
|
|
prefix = conf.get('HAVE_LINUX_COMPILER_H') ? '#include <linux/compiler.h>' : ''
|
|
|
|
foreach header : [
|
|
|
|
'linux/blkpg.h',
|
|
|
|
'linux/major.h',
|
|
|
|
]
|
|
|
|
have = cc.has_header(header,
|
|
|
|
prefix : prefix)
|
|
|
|
conf.set('HAVE_' + header.underscorify().to_upper(), have ? 1 : false)
|
|
|
|
endforeach
|
|
|
|
|
|
|
|
have = cc.has_header('sched.h')
|
|
|
|
conf.set10('HAVE_DECL_CPU_ALLOC', have)
|
|
|
|
# We get -1 if the size cannot be determined
|
2022-04-29 16:55:15 -07:00
|
|
|
have_cpu_set_t = cc.sizeof('cpu_set_t', prefix : '#define _GNU_SOURCE\n#include <sched.h>') > 0
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('HAVE_CPU_SET_T', have_cpu_set_t ? 1 : false)
|
|
|
|
|
2022-05-15 20:36:39 -07:00
|
|
|
have = cc.has_header_symbol('unistd.h', 'environ', args : '-D_GNU_SOURCE')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set10('HAVE_ENVIRON_DECL', have)
|
|
|
|
|
2022-05-15 20:36:39 -07:00
|
|
|
have = cc.has_header_symbol('signal.h', 'sighandler_t', args : '-D_GNU_SOURCE')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('HAVE_SIGHANDLER_T', have ? 1 : false)
|
|
|
|
|
2022-05-15 20:24:21 -07:00
|
|
|
have = cc.has_function('strsignal')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set10('HAVE_STRSIGNAL_DECL', have)
|
|
|
|
|
|
|
|
have = cc.sizeof('union semun', prefix : '#include <sys/sem.h>') > 0
|
|
|
|
conf.set('HAVE_UNION_SEMUN', have ? 1 : false)
|
|
|
|
|
2023-05-14 18:35:30 +02:00
|
|
|
have = cc.has_type('loff_t', prefix : '#include <sys/types.h>')
|
|
|
|
conf.set('HAVE_LOFF_T', have ? 1 : false)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
have = cc.compiles('''
|
|
|
|
#define _GNU_SOURCE 1
|
|
|
|
#include <langinfo.h>
|
|
|
|
int main(void) {
|
|
|
|
char *str;
|
|
|
|
str = nl_langinfo (ALTMON_1);
|
|
|
|
str = nl_langinfo (ALTMON_2);
|
|
|
|
str = nl_langinfo (ALTMON_3);
|
|
|
|
str = nl_langinfo (ALTMON_4);
|
|
|
|
str = nl_langinfo (ALTMON_5);
|
|
|
|
str = nl_langinfo (ALTMON_6);
|
|
|
|
str = nl_langinfo (ALTMON_7);
|
|
|
|
str = nl_langinfo (ALTMON_8);
|
|
|
|
str = nl_langinfo (ALTMON_9);
|
|
|
|
str = nl_langinfo (ALTMON_10);
|
|
|
|
str = nl_langinfo (ALTMON_11);
|
|
|
|
str = nl_langinfo (ALTMON_12);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
''',
|
|
|
|
name : 'langinfo.h defines ALTMON_x constants')
|
|
|
|
conf.set('HAVE_LANGINFO_ALTMON', have ? 1 : false)
|
|
|
|
|
|
|
|
have = cc.compiles('''
|
|
|
|
#define _GNU_SOURCE 1
|
|
|
|
#include <langinfo.h>
|
|
|
|
int main(void) {
|
|
|
|
char *str;
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_1);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_2);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_3);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_4);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_5);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_6);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_7);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_8);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_9);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_10);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_11);
|
|
|
|
str = nl_langinfo (_NL_ABALTMON_12);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
''',
|
|
|
|
name : 'langinfo.h defines _NL_ABALTMON_x constants')
|
|
|
|
conf.set('HAVE_LANGINFO_NL_ABALTMON', have ? 1 : false)
|
|
|
|
|
2023-06-16 11:52:10 +02:00
|
|
|
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)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
funcs = '''
|
|
|
|
clearenv
|
2022-10-10 18:30:01 +02:00
|
|
|
close_range
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
__fpurge
|
|
|
|
fpurge
|
|
|
|
__fpending
|
|
|
|
secure_getenv
|
|
|
|
__secure_getenv
|
|
|
|
eaccess
|
|
|
|
err
|
|
|
|
errx
|
|
|
|
explicit_bzero
|
2023-01-25 14:13:05 +01:00
|
|
|
fnmatch
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
fseeko
|
2022-06-09 13:01:52 +02:00
|
|
|
fsconfig
|
|
|
|
fsmount
|
|
|
|
fsopen
|
|
|
|
fspick
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
fsync
|
2023-05-14 18:35:30 +02:00
|
|
|
getttynam
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
utimensat
|
|
|
|
getdomainname
|
|
|
|
getdtablesize
|
|
|
|
getexecname
|
|
|
|
getmntinfo
|
|
|
|
getrandom
|
|
|
|
getrlimit
|
|
|
|
getsgnam
|
|
|
|
inotify_init
|
|
|
|
jrand48
|
|
|
|
lchown
|
2022-10-10 18:28:16 +02:00
|
|
|
lgetxattr
|
|
|
|
llistxattr
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
llseek
|
2022-10-10 18:30:01 +02:00
|
|
|
newlocale
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
mempcpy
|
|
|
|
mkostemp
|
2022-05-31 17:27:04 +02:00
|
|
|
move_mount
|
|
|
|
mount_setattr
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
nanosleep
|
|
|
|
ntp_gettime
|
2022-05-31 17:27:04 +02:00
|
|
|
open_tree
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
personality
|
|
|
|
pidfd_open
|
|
|
|
pidfd_send_signal
|
|
|
|
posix_fadvise
|
|
|
|
prctl
|
|
|
|
qsort_r
|
|
|
|
rpmatch
|
|
|
|
scandirat
|
|
|
|
setprogname
|
2022-10-10 18:30:01 +02:00
|
|
|
sendfile
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
setns
|
|
|
|
setresgid
|
|
|
|
setresuid
|
|
|
|
sched_setattr
|
|
|
|
sched_setscheduler
|
|
|
|
sigqueue
|
|
|
|
srandom
|
2023-02-13 14:25:26 +01:00
|
|
|
statx
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
strnchr
|
|
|
|
strndup
|
|
|
|
strnlen
|
2022-10-10 18:30:01 +02:00
|
|
|
strtod_l
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
sysconf
|
|
|
|
sysinfo
|
|
|
|
swapon
|
|
|
|
swapoff
|
|
|
|
timegm
|
|
|
|
unshare
|
|
|
|
usleep
|
2022-10-10 18:30:01 +02:00
|
|
|
uselocale
|
|
|
|
utimensat
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
vwarnx
|
|
|
|
warn
|
|
|
|
warnx
|
|
|
|
prlimit
|
|
|
|
|
|
|
|
openat
|
|
|
|
fstatat
|
|
|
|
unlinkat
|
|
|
|
ioperm
|
|
|
|
iopl
|
|
|
|
futimens
|
|
|
|
inotify_init1
|
|
|
|
open_memstream
|
|
|
|
reboot
|
|
|
|
getusershell
|
|
|
|
'''.split()
|
|
|
|
|
|
|
|
foreach func: funcs
|
|
|
|
have = cc.has_function(func)
|
2021-04-22 20:31:05 -03:00
|
|
|
# For autotools compatibility, use either #define FOO 1 or #undef FOO.
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
# This makes little sense, but is necessary to avoid warnings about
|
|
|
|
# redefined macros from Python.h, which uses this convention.
|
|
|
|
conf.set('HAVE_' + func.to_upper(), have ? 1 : false)
|
|
|
|
endforeach
|
|
|
|
|
|
|
|
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
|
|
|
|
warning('futimens or inotify_init1 not found; agetty(8) will not provide --reload functionality')
|
|
|
|
endif
|
|
|
|
|
|
|
|
have_dirfd = (cc.has_function('dirfd') or
|
|
|
|
cc.has_header_symbol('dirent.h', 'dirfd',
|
|
|
|
prefix : '#include <sys/types.h>'))
|
|
|
|
conf.set('HAVE_DIRFD', have_dirfd ? 1 : false)
|
|
|
|
|
|
|
|
have_ddfd = cc.has_member('DIR', 'dd_fd',
|
|
|
|
prefix : '''
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <dirent.h>
|
|
|
|
''')
|
|
|
|
conf.set('HAVE_DECL_DDFD', have_ddfd ? 1 : false)
|
|
|
|
|
|
|
|
have = cc.has_member('struct tm', 'tm_gmtoff',
|
|
|
|
prefix : '''
|
|
|
|
#include <time.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
''')
|
|
|
|
conf.set('HAVE_TM_GMTOFF', have ? 1 : false)
|
|
|
|
|
2022-05-31 17:27:04 +02:00
|
|
|
|
|
|
|
|
2022-06-09 13:01:52 +02:00
|
|
|
have = cc.sizeof('enum fsconfig_command', prefix : '#include <linux/mount.h>') > 0
|
2022-11-22 12:11:07 +01:00
|
|
|
conf.set('HAVE_ENUM_FSCONFIG_COMMAND', have ? 1 : false)
|
2022-06-09 13:01:52 +02:00
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
have = cc.has_member('struct termios', 'c_line',
|
|
|
|
prefix : '#include <termios.h>')
|
|
|
|
conf.set('HAVE_STRUCT_TERMIOS_C_LINE', have ? 1 : false)
|
|
|
|
|
|
|
|
have = cc.has_member('struct stat', 'st_mtim.tv_nsec',
|
|
|
|
prefix : '#include <sys/stat.h>')
|
|
|
|
conf.set('HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC', have ? 1 : false)
|
|
|
|
|
|
|
|
# replacement for AC_STRUCT_TIMEZONE
|
|
|
|
have = cc.has_member('struct tm', 'tm_zone',
|
|
|
|
prefix : '#include <time.h>')
|
|
|
|
conf.set('HAVE_STRUCT_TM_TM_ZONE', have ? 1 : false)
|
|
|
|
|
2022-05-15 20:36:39 -07:00
|
|
|
have = cc.has_header_symbol('time.h', 'tzname', args: '-D_GNU_SOURCE')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('HAVE_DECL_TZNAME', have ? 1 : false)
|
|
|
|
|
2023-05-14 18:35:30 +02:00
|
|
|
have = cc.has_header_symbol('linux/blkzoned.h', 'BLK_ZONE_REP_CAPACITY')
|
|
|
|
conf.set('HAVE_DECL_BLK_ZONE_REP_CAPACITY', have ? 1 : false)
|
|
|
|
|
|
|
|
have = cc.has_header_symbol('linux/pr.h', 'PR_REP_CAPACITY')
|
|
|
|
conf.set('HAVE_DECL_PR_REP_CAPACITY', have ? 1 : false)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
code = '''
|
|
|
|
#include <time.h>
|
|
|
|
#if !@0@
|
|
|
|
extern char *tzname[];
|
|
|
|
#endif
|
|
|
|
int main(void) {
|
|
|
|
return tzname ? 0 : 1;
|
|
|
|
}
|
|
|
|
'''.format(have ? 1 : 0)
|
2022-04-29 16:56:54 -07:00
|
|
|
have = cc.compiles(code, name : 'using tzname[]')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('HAVE_TZNAME', have ? 1 : false)
|
|
|
|
|
|
|
|
socket_libs = []
|
|
|
|
if not cc.has_function('socket')
|
|
|
|
socket_libs += cc.find_library('socket', required : true)
|
|
|
|
have = cc.has_function('socket',
|
|
|
|
dependencies : socket_libs)
|
|
|
|
if not have
|
|
|
|
error('socket() function not available')
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
realtime_libs = []
|
|
|
|
have = cc.has_function('clock_gettime')
|
|
|
|
if not have
|
|
|
|
realtime_libs += cc.find_library('rt', required : true)
|
|
|
|
have = cc.has_function('clock_gettime',
|
|
|
|
dependencies : realtime_libs)
|
|
|
|
endif
|
2022-04-29 18:16:36 +02:00
|
|
|
conf.set('HAVE_CLOCK_GETTIME', have ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
thread_libs = dependency('threads')
|
|
|
|
|
|
|
|
have = cc.has_function('timer_create')
|
|
|
|
if not have
|
2022-10-28 16:47:57 -07:00
|
|
|
realtime_libs = [cc.find_library('rt', required : true)]
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
have = cc.has_function('timer_create',
|
|
|
|
dependencies : realtime_libs)
|
|
|
|
if not have
|
|
|
|
realtime_libs += thread_libs
|
|
|
|
have = cc.has_function('timer_create',
|
|
|
|
dependencies : realtime_libs)
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
conf.set('HAVE_TIMER_CREATE', have ? 1 : false)
|
|
|
|
if not have
|
|
|
|
have = cc.has_function('setitimer')
|
|
|
|
conf.set('HAVE_SETITIMER', have ? 1 : false)
|
|
|
|
endif
|
|
|
|
|
|
|
|
rtas_libs = cc.find_library('rtas', required : false)
|
|
|
|
conf.set('HAVE_LIBRTAS', rtas_libs.found() ? 1 : false)
|
|
|
|
|
|
|
|
math_libs = []
|
2022-04-29 18:19:53 -07:00
|
|
|
if not cc.has_header_symbol('math.h', 'isnan')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
lib = cc.find_library('m', required : true)
|
|
|
|
if (cc.has_function('isnan', dependencies : lib) and
|
|
|
|
cc.has_function('__isnan', dependencies : lib))
|
|
|
|
math_libs += lib
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
|
|
|
|
have = cc.has_header_symbol('errno.h', 'program_invocation_short_name',
|
|
|
|
args : '-D_GNU_SOURCE')
|
|
|
|
conf.set('HAVE_PROGRAM_INVOCATION_SHORT_NAME', have ? 1 : false)
|
|
|
|
|
|
|
|
code = '''
|
|
|
|
extern char *__progname;
|
|
|
|
int main(void) {
|
|
|
|
return (*__progname != 0);
|
|
|
|
}
|
|
|
|
'''
|
2022-04-29 16:56:54 -07:00
|
|
|
have = cc.compiles(code, name : 'using __progname')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
conf.set('HAVE___PROGNAME', have ? 1 : false)
|
|
|
|
|
2023-06-13 09:55:22 +02:00
|
|
|
have = conf.get('HAVE_PTY_H') != false and conf.get('HAVE_SYS_SIGNALFD_H') != false
|
|
|
|
conf.set('HAVE_PTY', have ? 1 : false)
|
|
|
|
|
libblkid: check if device is OPAL locked on I/O error
Use the appropriate ioctl, if available, to check if a device is locked
when we get an I/O error. Save the information so that we don't have to
repeat the ioctl.
Before:
LIBBLKID_DEBUG=all blkid -p /dev/sdd2
206326: libblkid: INIT: library debug mask: 0xffff
206326: libblkid: INIT: library version: 2.38.1 [04-Aug-2022]
Available "LIBBLKID_DEBUG=<name>[,...]|<mask>" debug masks:
all [0xffff] : info about all subsystems
cache [0x0004] : blkid tags cache
config [0x0008] : config file utils
dev [0x0010] : device utils
devname [0x0020] : /proc/partitions evaluation
devno [0x0040] : conversions to device name
evaluate [0x0080] : tags resolving
help [0x0001] : this help
lowprobe [0x0100] : superblock/raids/partitions probing
buffer [0x2000] : low-probing buffers
probe [0x0200] : devices verification
read [0x0400] : cache parsing
save [0x0800] : cache writing
tag [0x1000] : tags utils
206326: libblkid: LOWPROBE: allocate a new probe
206326: libblkid: LOWPROBE: zeroize wiper
206326: libblkid: LOWPROBE: ready for low-probing, offset=0, size=234584276992, zonesize=0
206326: libblkid: LOWPROBE: whole-disk: NO, regfile: NO
206326: libblkid: LOWPROBE: start probe
206326: libblkid: LOWPROBE: zeroize wiper
206326: libblkid: LOWPROBE: chain safeprobe superblocks ENABLED
206326: libblkid: LOWPROBE: --> starting probing loop [SUBLKS idx=-1]
206326: libblkid: LOWPROBE: [0] linux_raid_member:
206326: libblkid: LOWPROBE: call probefunc()
206326: libblkid: LOWPROBE: read: off=234584211456 len=64
206326: libblkid: LOWPROBE: read failed: Input/output error
206326: libblkid: LOWPROBE: <-- leaving probing loop (failed=-5) [SUBLKS idx=0]
206326: libblkid: LOWPROBE: freeing values list
206326: libblkid: LOWPROBE: end probe
206326: libblkid: LOWPROBE: zeroize wiper
206326: libblkid: LOWPROBE: free probe
After:
LIBBLKID_DEBUG=all blkid -p /dev/sdd2
206221: libblkid: INIT: library debug mask: 0xffff
206221: libblkid: INIT: library version: 2.38.1119 [28-Mar-2022]
Available "LIBBLKID_DEBUG=<name>[,...]|<mask>" debug masks:
all [0x00ffff] : info about all subsystems
cache [0x000004] : blkid tags cache
config [0x000008] : config file utils
dev [0x000010] : device utils
devname [0x000020] : /proc/partitions evaluation
devno [0x000040] : conversions to device name
evaluate [0x000080] : tags resolving
help [0x000001] : this help
lowprobe [0x000100] : superblock/raids/partitions probing
buffer [0x002000] : low-probing buffers
probe [0x000200] : devices verification
read [0x000400] : cache parsing
save [0x000800] : cache writing
tag [0x001000] : tags utils
206221: libblkid: LOWPROBE: allocate a new probe
206221: libblkid: LOWPROBE: zeroize wiper
206221: libblkid: LOWPROBE: ready for low-probing, offset=0, size=234584276992, zonesize=0
206221: libblkid: LOWPROBE: whole-disk: NO, regfile: NO
206221: libblkid: LOWPROBE: start probe
206221: libblkid: LOWPROBE: zeroize wiper
206221: libblkid: LOWPROBE: chain safeprobe superblocks ENABLED
206221: libblkid: LOWPROBE: --> starting probing loop [SUBLKS idx=-1]
206221: libblkid: LOWPROBE: [0] linux_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: read: off=234584211456 len=64
206221: libblkid: LOWPROBE: read failed: Input/output error
206221: libblkid: LOWPROBE: read: off=234584268800 len=256
206221: libblkid: LOWPROBE: read failed: Input/output error
206221: libblkid: LOWPROBE: read: off=0 len=256
206221: libblkid: LOWPROBE: read: off=4096 len=256
206221: libblkid: LOWPROBE: [1] ddf_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: read: off=234584276480 len=512
206221: libblkid: LOWPROBE: read failed: Input/output error
206221: libblkid: LOWPROBE: [2] isw_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [3] lsi_mega_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [4] via_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [5] silicon_medley_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [6] nvidia_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [7] promise_fasttrack_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [8] hpt45x_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [9] hpt37x_raid_member:
206221: libblkid: LOWPROBE: read: off=4096 len=1024
206221: libblkid: BUFFER: reuse: off=4096 len=1024 (for off=4096 len=1024)
206221: libblkid: LOWPROBE: [10] adaptec_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [11] jmicron_raid_member:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: [12] bcache:
206221: libblkid: BUFFER: reuse: off=4096 len=1024 (for off=4096 len=1024)
206221: libblkid: LOWPROBE: [13] bcachefs:
206221: libblkid: BUFFER: reuse: off=4096 len=1024 (for off=4096 len=1024)
206221: libblkid: BUFFER: reuse: off=4096 len=1024 (for off=4096 len=1024)
206221: libblkid: LOWPROBE: [14] ceph_bluestore:
206221: libblkid: LOWPROBE: read: off=0 len=1024
206221: libblkid: LOWPROBE: [15] drbd:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: LOWPROBE: read: off=234584272896 len=104
206221: libblkid: LOWPROBE: read failed: Input/output error
206221: libblkid: LOWPROBE: read: off=234584272896 len=1392
206221: libblkid: LOWPROBE: read failed: Input/output error
206221: libblkid: LOWPROBE: [16] drbdmanage_control_volume:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [17] drbdproxy_datalog:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [18] LVM2_member:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: read: off=1024 len=1024
206221: libblkid: BUFFER: reuse: off=1024 len=1024 (for off=1024 len=1024)
206221: libblkid: LOWPROBE: [19] LVM1_member:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [20] DM_snapshot_cow:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [21] DM_verity_hash:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [22] DM_integrity:
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: [23] crypto_LUKS:
206221: libblkid: LOWPROBE: call probefunc()
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=512)
206221: libblkid: LOWPROBE: assigning VERSION [superblocks]
206221: libblkid: LOWPROBE: assigning UUID [superblocks]
206221: libblkid: LOWPROBE: assigning LABEL [superblocks]
206221: libblkid: LOWPROBE: free value LABEL
206221: libblkid: LOWPROBE: assigning SUBSYSTEM [superblocks]
206221: libblkid: LOWPROBE: assigning TYPE [superblocks]
206221: libblkid: LOWPROBE: assigning USAGE [superblocks]
206221: libblkid: LOWPROBE: <-- leaving probing loop (type=crypto_LUKS) [SUBLKS idx=23]
206221: libblkid: LOWPROBE: freeing values list
206221: libblkid: LOWPROBE: chain safeprobe topology DISABLED
206221: libblkid: LOWPROBE: chain safeprobe partitions ENABLED
206221: libblkid: LOWPROBE: Resetting partitions values
206221: libblkid: LOWPROBE: --> starting probing loop [PARTS idx=-1]
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: gpt: ---> call probefunc()
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=512)
206221: libblkid: LOWPROBE: gpt: <--- (rc = 1)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: ultrix: ---> call probefunc()
206221: libblkid: LOWPROBE: read: off=15872 len=512
206221: libblkid: LOWPROBE: ultrix: <--- (rc = 1)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: read: off=28672 len=1024
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: atari: ---> call probefunc()
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=512)
206221: libblkid: LOWPROBE: atari: <--- (rc = 1)
206221: libblkid: LOWPROBE: <-- leaving probing loop (failed=1) [PARTS idx=12]
206221: libblkid: LOWPROBE: parts: start probing for partition entry
206221: libblkid: DEVNO: found devno 0x0830 as /dev/sdd
206221: libblkid: LOWPROBE: allocate a wholedisk probe
206221: libblkid: LOWPROBE: allocate a new probe
206221: libblkid: LOWPROBE: zeroize wiper
206221: libblkid: LOWPROBE: ready for low-probing, offset=0, size=256060514304, zonesize=0
206221: libblkid: LOWPROBE: whole-disk: YES, regfile: NO
206221: libblkid: LOWPROBE: partlist reset
206221: libblkid: LOWPROBE: parts: initialized partitions list (size=0)
206221: libblkid: LOWPROBE: --> starting probing loop [PARTS idx=-1]
206221: libblkid: LOWPROBE: read: off=0 len=1024
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=1024)
206221: libblkid: LOWPROBE: magic sboff=510, kboff=0
206221: libblkid: LOWPROBE: dos: ---> call probefunc()
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=512)
206221: libblkid: LOWPROBE: probably GPT -- ignore
206221: libblkid: LOWPROBE: dos: <--- (rc = 1)
206221: libblkid: LOWPROBE: gpt: ---> call probefunc()
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=0 len=512)
206221: libblkid: LOWPROBE: #1 valid PMBR partition
206221: libblkid: LOWPROBE: checking for GPT header at 1
206221: libblkid: BUFFER: reuse: off=0 len=1024 (for off=512 len=512)
206221: libblkid: LOWPROBE: read: off=1024 len=16384
206221: libblkid: LOWPROBE: parts: create a new partition table (type=gpt, offset=512)
206221: libblkid: LOWPROBE: parts: add partition (start=2048, size=41943040)
206221: libblkid: LOWPROBE: parts: add partition (start=41945088, size=458172416)
206221: libblkid: LOWPROBE: gpt: <--- (rc = 0)
206221: libblkid: LOWPROBE: <-- leaving probing loop (type=gpt) [PARTS idx=4]
206221: libblkid: LOWPROBE: partitions probe done [rc=0]
206221: libblkid: LOWPROBE: returning partitions binary data
206221: libblkid: LOWPROBE: trying to convert devno 0x832 to partition
206221: libblkid: LOWPROBE: searching by offset/size
206221: libblkid: LOWPROBE: assigning PART_ENTRY_SCHEME [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_UUID [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_TYPE [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_NUMBER [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_OFFSET [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_SIZE [partitions]
206221: libblkid: LOWPROBE: assigning PART_ENTRY_DISK [partitions]
206221: libblkid: LOWPROBE: parts: end probing for partition entry [success]
206221: libblkid: LOWPROBE: partitions probe done [rc=0]
206221: libblkid: LOWPROBE: end probe
206221: libblkid: LOWPROBE: zeroize wiper
206221: libblkid: LOWPROBE: returning VERSION value
206221: libblkid: LOWPROBE: returning UUID value
206221: libblkid: LOWPROBE: returning SUBSYSTEM value
206221: libblkid: LOWPROBE: returning TYPE value
206221: libblkid: LOWPROBE: returning USAGE value
206221: libblkid: LOWPROBE: returning PART_ENTRY_SCHEME value
206221: libblkid: LOWPROBE: returning PART_ENTRY_UUID value
206221: libblkid: LOWPROBE: returning PART_ENTRY_TYPE value
206221: libblkid: LOWPROBE: returning PART_ENTRY_NUMBER value
206221: libblkid: LOWPROBE: returning PART_ENTRY_OFFSET value
206221: libblkid: LOWPROBE: returning PART_ENTRY_SIZE value
206221: libblkid: LOWPROBE: returning PART_ENTRY_DISK value
/dev/sdd2: VERSION="2" UUID="a918f1d0-f1de-44f5-9d93-ce9dc15cc2c7" SUBSYSTEM="HW-OPAL" TYPE="crypto_LUKS" USAGE="crypto" PART_ENTRY_SCHEME="gpt" PART_ENTRY_UUID="39ed5135-46e4-ca44-837e-da3c0781367b" PART_ENTRY_TYPE="0fc63daf-8483-4772-8e79-3d69d8477de4" PART_ENTRY_NUMBER="2" PART_ENTRY_OFFSET="41945088" PART_ENTRY_SIZE="458172416" PART_ENTRY_DISK="8:48"
206221: libblkid: BUFFER: Resetting probing buffers
206221: libblkid: BUFFER: remove buffer: [off=0, len=256]
206221: libblkid: BUFFER: remove buffer: [off=4096, len=256]
206221: libblkid: BUFFER: remove buffer: [off=4096, len=1024]
206221: libblkid: BUFFER: remove buffer: [off=0, len=1024]
206221: libblkid: BUFFER: remove buffer: [off=1024, len=1024]
206221: libblkid: BUFFER: remove buffer: [off=15872, len=512]
206221: libblkid: BUFFER: remove buffer: [off=28672, len=1024]
206221: libblkid: LOWPROBE: buffers summary: 5120 bytes by 7 read() calls
206221: libblkid: LOWPROBE: resetting results
206221: libblkid: LOWPROBE: free value VERSION
206221: libblkid: LOWPROBE: free value UUID
206221: libblkid: LOWPROBE: free value SUBSYSTEM
206221: libblkid: LOWPROBE: free value TYPE
206221: libblkid: LOWPROBE: free value USAGE
206221: libblkid: LOWPROBE: free value PART_ENTRY_SCHEME
206221: libblkid: LOWPROBE: free value PART_ENTRY_UUID
206221: libblkid: LOWPROBE: free value PART_ENTRY_TYPE
206221: libblkid: LOWPROBE: free value PART_ENTRY_NUMBER
206221: libblkid: LOWPROBE: free value PART_ENTRY_OFFSET
206221: libblkid: LOWPROBE: free value PART_ENTRY_SIZE
206221: libblkid: LOWPROBE: free value PART_ENTRY_DISK
206221: libblkid: BUFFER: Resetting probing buffers
206221: libblkid: BUFFER: remove buffer: [off=0, len=1024]
206221: libblkid: BUFFER: remove buffer: [off=1024, len=16384]
206221: libblkid: LOWPROBE: buffers summary: 17408 bytes by 2 read() calls
206221: libblkid: LOWPROBE: free probe
206221: libblkid: LOWPROBE: free probe
Signed-off-by: Luca Boccassi <bluca@debian.org>
2023-02-22 01:33:36 +00:00
|
|
|
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)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
build_plymouth_support = get_option('build-plymouth-support')
|
|
|
|
have_tiocglcktrmios = cc.has_header_symbol(
|
|
|
|
'sys/ioctl.h', 'TIOCGLCKTRMIOS',
|
|
|
|
required : build_plymouth_support.enabled())
|
|
|
|
have_sock_cloexec = cc.has_header_symbol(
|
|
|
|
'sys/socket.h', 'SOCK_CLOEXEC',
|
|
|
|
prefix : '#include <sys/types.h>',
|
|
|
|
required : build_plymouth_support.enabled())
|
|
|
|
have_sock_nonblock = cc.has_header_symbol(
|
|
|
|
'sys/socket.h', 'SOCK_NONBLOCK',
|
|
|
|
prefix : '#include <sys/types.h>',
|
|
|
|
required : build_plymouth_support.enabled())
|
|
|
|
have_so_passcred = cc.has_header_symbol(
|
|
|
|
'sys/socket.h', 'SO_PASSCRED',
|
|
|
|
prefix : '#include <sys/types.h>',
|
|
|
|
required : build_plymouth_support.enabled())
|
|
|
|
|
|
|
|
build_plymouth_support = (not build_plymouth_support.disabled() and
|
|
|
|
have_tiocglcktrmios and
|
|
|
|
have_sock_cloexec and
|
|
|
|
have_sock_nonblock and
|
|
|
|
have_so_passcred)
|
|
|
|
conf.set('ENABLE_PLYMOUTH_SUPPORT', build_plymouth_support ? 1 : false)
|
|
|
|
summary('plymouth support',
|
|
|
|
build_plymouth_support ? 'enabled' : 'disabled',
|
|
|
|
section : 'components')
|
|
|
|
|
|
|
|
# check for valid fallocate() function
|
|
|
|
# with 32 bits glibc 2.10, fallocate() exists but not fallocate64()
|
|
|
|
# when _FILE_OFFSET_BITS==64, fallocate() is redirect to fallocate64()
|
|
|
|
# and program can't be linked.
|
|
|
|
code = '''
|
|
|
|
#define _GNU_SOURCE
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
|
|
|
int main(void) {
|
|
|
|
long ret;
|
|
|
|
ret = fallocate(0, FALLOC_FL_KEEP_SIZE, 0xfffffffful, 0xfffffffful);
|
|
|
|
return ret == 0 ? 0 : 1;
|
|
|
|
}
|
|
|
|
'''
|
|
|
|
have = cc.links(code, name : 'fallocate() function')
|
|
|
|
conf.set('HAVE_FALLOCATE', have ? 1 : false)
|
|
|
|
|
|
|
|
code = '''
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
|
|
|
int main(void) {
|
|
|
|
long ret;
|
|
|
|
ret = posix_fallocate(0, 0xfffffffful, 0xfffffffful);
|
|
|
|
return ret == 0 ? 0 : 1;
|
|
|
|
}
|
|
|
|
'''
|
|
|
|
have = cc.links(code, name : 'posix_fallocate() function')
|
|
|
|
conf.set('HAVE_POSIX_FALLOCATE', have ? 1 : false)
|
|
|
|
|
|
|
|
use_hwclock_cmos = host_machine.cpu_family() in ['x86', 'x86_64']
|
|
|
|
message('Use CMOS clock: @0@'.format(use_hwclock_cmos))
|
|
|
|
conf.set('USE_HWCLOCK_CMOS', use_hwclock_cmos ? 1 : false)
|
|
|
|
|
|
|
|
conf.set('HAVE_TLS', get_option('use-tls') ? 1 : false)
|
|
|
|
conf.set('PG_BELL', get_option('pg-bell') ? 1 : false)
|
2022-11-21 02:49:40 +01:00
|
|
|
conf.set('USE_COLORS_BY_DEFAULT', get_option('colors-default') ? 1 : false)
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
2021-02-16 12:10:36 +01:00
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
fs_search_path = get_option('fs-search-path')
|
|
|
|
fs_search_path_extra = get_option('fs-search-path-extra')
|
|
|
|
if fs_search_path_extra != ''
|
|
|
|
fs_search_path = ':'.join(fs_search_path, fs_search_path_extra)
|
|
|
|
endif
|
|
|
|
conf.set_quoted('FS_SEARCH_PATH', fs_search_path)
|
|
|
|
|
2022-04-29 16:53:43 -07:00
|
|
|
systemdsystemunitdir = ''
|
2021-05-03 11:10:10 +02:00
|
|
|
if systemd.found()
|
2022-05-02 16:30:26 -07:00
|
|
|
systemdsystemunitdir = systemd.get_variable(pkgconfig : 'systemdsystemunitdir')
|
2021-05-03 11:10:10 +02:00
|
|
|
endif
|
2021-02-16 12:10:36 +01:00
|
|
|
|
2022-12-18 18:42:04 +00:00
|
|
|
sysvinit = get_option('sysvinit').enabled()
|
|
|
|
sysvinitrcdir = sysconfdir + '/init.d'
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
chfn_chsh_password = get_option('chfn-chsh-password') or lib_user.found()
|
|
|
|
conf.set('CHFN_CHSH_PASSWORD', chfn_chsh_password ? 1 : false)
|
|
|
|
|
|
|
|
have = get_option('chsh-only-listed')
|
|
|
|
conf.set('ONLY_LISTED_SHELLS', have ? 1 : false)
|
|
|
|
|
|
|
|
have = get_option('use-tty-group')
|
|
|
|
conf.set('USE_TTY_GROUP', have ? 1 : false)
|
|
|
|
|
|
|
|
build_hwclock = not get_option('build-hwclock').disabled()
|
|
|
|
bison = find_program('bison', required: build_hwclock)
|
|
|
|
bison_gen = generator(
|
|
|
|
bison,
|
|
|
|
output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
|
|
|
|
arguments : ['@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
|
|
|
|
|
2021-04-06 15:32:46 +02:00
|
|
|
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
meson_make_symlink = meson.current_source_dir() + '/tools/meson-make-symlink.sh'
|
2021-12-30 16:35:03 +01:00
|
|
|
meson_make_manpage_stub = meson.current_source_dir() + '/tools/meson-make-manpage-stub.sh'
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2022-10-28 16:58:25 -07:00
|
|
|
configure_file(
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
output : 'config.h',
|
|
|
|
configuration : conf)
|
|
|
|
|
2022-04-14 10:55:29 -04:00
|
|
|
add_project_arguments('-include', meson.current_build_dir() / 'config.h', language : 'c')
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2022-11-02 04:38:07 +01:00
|
|
|
compiler_flags = [
|
|
|
|
'-fno-common',
|
|
|
|
|
|
|
|
'-Waddress-of-packed-member',
|
|
|
|
'-Wdiscarded-qualifiers',
|
|
|
|
'-Wembedded-directive',
|
|
|
|
'-Wextra-semi',
|
|
|
|
'-Wformat-security',
|
|
|
|
'-Wimplicit-function-declaration',
|
|
|
|
'-Wmissing-declarations',
|
|
|
|
'-Wmissing-parameter-type',
|
|
|
|
'-Wmissing-prototypes',
|
|
|
|
'-Wnested-externs',
|
|
|
|
'-Wno-missing-field-initializers',
|
2022-12-12 20:11:56 +00:00
|
|
|
'-Wold-style-definition',
|
2022-11-02 04:38:07 +01:00
|
|
|
'-Wpointer-arith',
|
|
|
|
'-Wredundant-decls',
|
|
|
|
'-Wsign-compare',
|
|
|
|
'-Wstrict-prototypes',
|
|
|
|
'-Wtype-limits',
|
|
|
|
'-Wuninitialized',
|
|
|
|
'-Wunused-but-set-parameter',
|
|
|
|
'-Wunused-but-set-variable',
|
|
|
|
'-Wunused-parameter',
|
|
|
|
'-Wunused-result',
|
|
|
|
'-Wunused-variable',
|
|
|
|
]
|
|
|
|
foreach compiler_flag : compiler_flags
|
|
|
|
if cc.has_argument(compiler_flag)
|
|
|
|
add_project_arguments(compiler_flag, language : 'c')
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs = []
|
2021-12-30 16:35:03 +01:00
|
|
|
manlinks = {}
|
2022-01-04 12:17:41 +01:00
|
|
|
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions = []
|
2022-01-04 12:17:41 +01:00
|
|
|
bashcompletionslinks = {}
|
2021-04-06 15:32:46 +02:00
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
subdir('include')
|
|
|
|
subdir('lib')
|
|
|
|
subdir('libblkid')
|
|
|
|
subdir('libmount')
|
|
|
|
subdir('libsmartcols')
|
|
|
|
subdir('libuuid')
|
|
|
|
subdir('libfdisk')
|
|
|
|
subdir('login-utils')
|
|
|
|
subdir('sys-utils')
|
|
|
|
subdir('disk-utils')
|
|
|
|
subdir('misc-utils')
|
|
|
|
subdir('text-utils')
|
|
|
|
subdir('term-utils')
|
|
|
|
subdir('po')
|
|
|
|
|
|
|
|
includes = [dir_include,
|
|
|
|
dir_libblkid,
|
|
|
|
dir_libsmartcols,
|
|
|
|
dir_libmount,
|
|
|
|
dir_libfdisk,
|
|
|
|
dir_libuuid,
|
|
|
|
dir_sys_utils]
|
|
|
|
|
|
|
|
exes = []
|
|
|
|
|
|
|
|
opt = not get_option('build-chfn-chsh').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'chfn',
|
|
|
|
chfn_sources,
|
|
|
|
chfn_chsh_sources,
|
|
|
|
include_directories : includes,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : chfn_chsh_deps,
|
|
|
|
install_dir : usrbin_exec_dir,
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
2021-12-30 16:35:03 +01:00
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe2 = executable(
|
|
|
|
'chsh',
|
|
|
|
'login-utils/chsh.c',
|
2022-12-12 19:07:03 +00:00
|
|
|
'lib/shells.c',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
chfn_chsh_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
dependencies : chfn_chsh_deps,
|
|
|
|
install_dir : usrbin_exec_dir,
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += [exe, exe2]
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/chfn.1.adoc', 'login-utils/chsh.1.adoc']
|
|
|
|
bashcompletions += ['chfn', 'chsh']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_islocal',
|
|
|
|
test_islocal_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_PROGRAM')
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test-consoles',
|
|
|
|
test_consoles_sources,
|
|
|
|
c_args : ['-DTEST_PROGRAM'],
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
opt = not get_option('build-last').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'last',
|
|
|
|
last_sources,
|
|
|
|
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
|
|
|
|
meson.add_install_script(meson_make_symlink,
|
|
|
|
'last',
|
|
|
|
join_paths(usrbin_exec_dir, 'lastb'))
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/last.1.adoc']
|
|
|
|
manlinks += {'lastb.1': 'last.1'}
|
|
|
|
bashcompletions += ['last']
|
2022-01-04 12:17:41 +01:00
|
|
|
bashcompletionslinks += {'lastb': 'last'}
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-nologin').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'nologin',
|
|
|
|
'login-utils/nologin.c',
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
2021-02-16 18:09:24 +01:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/nologin.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-utmpdump').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'utmpdump',
|
|
|
|
'login-utils/utmpdump.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
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/utmpdump.1.adoc']
|
|
|
|
bashcompletions += ['utmpdump']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-su').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'su',
|
|
|
|
'login-utils/su.c',
|
|
|
|
'login-utils/su-common.c',
|
|
|
|
'login-utils/su-common.h',
|
2022-12-12 19:07:03 +00:00
|
|
|
'lib/shells.c',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
pty_session_c,
|
|
|
|
monotonic_c,
|
|
|
|
include_directories : includes,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_pam,
|
|
|
|
lib_pam_misc,
|
|
|
|
lib_util,
|
|
|
|
realtime_libs],
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/su.1.adoc']
|
|
|
|
bashcompletions += ['su']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-newgrp').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'newgrp',
|
|
|
|
'login-utils/newgrp.c',
|
|
|
|
include_directories : includes,
|
|
|
|
dependencies : [lib_crypt],
|
|
|
|
install_dir : usrbin_exec_dir,
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/newgrp.1.adoc']
|
2023-05-22 15:56:28 +02:00
|
|
|
bashcompletions += ['newgrp']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-lslogins').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'lslogins',
|
|
|
|
'login-utils/lslogins.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
2022-11-30 05:30:31 +01:00
|
|
|
lib_smartcols,
|
|
|
|
logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_selinux,
|
|
|
|
lib_systemd],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/lslogins.1.adoc']
|
|
|
|
bashcompletions += ['lslogins']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-vipw').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'vipw',
|
|
|
|
'login-utils/vipw.c',
|
|
|
|
'login-utils/setpwnam.h',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_selinux],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
meson.add_install_script(meson_make_symlink,
|
|
|
|
'vipw',
|
|
|
|
join_paths(usrbin_exec_dir, 'vigr'))
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/vipw.8.adoc']
|
2023-05-22 16:11:18 +02:00
|
|
|
meson.add_install_script(meson_make_symlink,
|
|
|
|
'vipw.8',
|
|
|
|
join_paths(mandir, 'man8/vigr.8'))
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-runuser').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'runuser',
|
|
|
|
'login-utils/runuser.c',
|
|
|
|
'login-utils/su-common.c',
|
|
|
|
'login-utils/su-common.h',
|
2022-12-12 19:07:03 +00:00
|
|
|
'lib/shells.c',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
pty_session_c,
|
|
|
|
monotonic_c,
|
|
|
|
include_directories : includes,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_pam,
|
|
|
|
lib_pam_misc,
|
|
|
|
lib_util,
|
|
|
|
realtime_libs],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['login-utils/runuser.1.adoc']
|
2022-01-04 12:17:41 +01:00
|
|
|
bashcompletionslinks += {'runuser': 'su'}
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'col',
|
|
|
|
col_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/col.1.adoc']
|
|
|
|
bashcompletions += ['col']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'colcrt',
|
|
|
|
colcrt_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/colcrt.1.adoc']
|
|
|
|
bashcompletions += ['colcrt']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'colrm',
|
|
|
|
colrm_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/colrm.1.adoc']
|
|
|
|
bashcompletions += ['colrm']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'rev',
|
|
|
|
rev_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/rev.1.adoc']
|
|
|
|
bashcompletions += ['rev']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'column',
|
|
|
|
column_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/column.1.adoc']
|
|
|
|
bashcompletions += ['column']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-line').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'line',
|
|
|
|
line_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/line.1.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-pg').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'pg',
|
|
|
|
pg_sources,
|
|
|
|
link_with : lib_common,
|
|
|
|
include_directories : includes,
|
|
|
|
dependencies : [lib_tinfo,
|
|
|
|
curses_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/pg.1.adoc']
|
|
|
|
bashcompletions += ['pg']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-ul').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'ul',
|
|
|
|
ul_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
dependencies : [lib_tinfo,
|
|
|
|
curses_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/ul.1.adoc']
|
|
|
|
bashcompletions += ['ul']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-more').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'more',
|
|
|
|
more_sources,
|
2021-02-16 18:09:24 +01:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
include_directories : includes,
|
|
|
|
dependencies : [lib_tinfo,
|
2021-02-16 12:10:36 +01:00
|
|
|
curses_libs,
|
|
|
|
lib_magic],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'test_more',
|
|
|
|
more_sources,
|
2021-02-16 18:09:24 +01:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_PROGRAM',
|
|
|
|
dependencies : [lib_tinfo,
|
2021-02-16 12:10:36 +01:00
|
|
|
curses_libs,
|
|
|
|
lib_magic],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
build_by_default : opt)
|
|
|
|
exes += exe
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += [exe, exe2]
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['text-utils/more.1.adoc']
|
|
|
|
bashcompletions += ['more']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'hexdump',
|
|
|
|
hexdump_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['text-utils/hexdump.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['hexdump']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-lsmem').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'lsmem',
|
|
|
|
lsmem_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/lsmem.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lsmem']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-chmem').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'chmem',
|
|
|
|
chmem_sources,
|
|
|
|
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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/chmem.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['chmem']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'choom',
|
|
|
|
choom_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/choom.1.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'ipcmk',
|
|
|
|
ipcmk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/ipcmk.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['ipcmk']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'ipcrm',
|
|
|
|
ipcrm_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/ipcrm.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['ipcrm']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
opt = not get_option('build-ipcs').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'ipcs',
|
|
|
|
ipcs_sources,
|
|
|
|
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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/ipcs.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['ipcs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-rfkill').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'rfkill',
|
|
|
|
rfkill_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/rfkill.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['rfkill']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'renice',
|
|
|
|
renice_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/renice.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['renice']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'setsid',
|
|
|
|
setsid_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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/setsid.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['setsid']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'readprofile',
|
|
|
|
readprofile_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/readprofile.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['readprofile']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-tunelp').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'tunelp',
|
|
|
|
tunelp_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/tunelp.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['tunelp']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'fstrim',
|
|
|
|
fstrim_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/fstrim.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fstrim']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'dmesg',
|
|
|
|
dmesg_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors],
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/dmesg.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['dmesg']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_dmesg',
|
|
|
|
dmesg_sources,
|
|
|
|
include_directories : dir_include,
|
|
|
|
c_args : '-DTEST_DMESG',
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'ctrlaltdel',
|
|
|
|
ctrlaltdel_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/ctrlaltdel.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['ctrlaltdel']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'fsfreeze',
|
|
|
|
fsfreeze_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/fsfreeze.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fsfreeze']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'blkdiscard',
|
|
|
|
blkdiscard_sources,
|
|
|
|
include_directories : includes,
|
2021-02-16 18:09:24 +01:00
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/blkdiscard.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['blkdiscard']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'blkzone',
|
|
|
|
blkzone_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/blkzone.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['blkzone']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2023-01-22 14:27:12 +00:00
|
|
|
exe = executable(
|
|
|
|
'blkpr',
|
|
|
|
blkpr_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
|
|
|
manadocs += ['sys-utils/blkpr.8.adoc']
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe = executable(
|
|
|
|
'ldattach',
|
|
|
|
ldattach_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/ldattach.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['ldattach']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'rtcwake',
|
|
|
|
rtcwake_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/rtcwake.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['rtcwake']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'setarch',
|
|
|
|
setarch_sources,
|
|
|
|
include_directories : includes,
|
2022-12-21 13:42:05 +00:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/setarch.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['setarch']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
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))
|
2021-12-30 16:35:03 +01:00
|
|
|
manlinks += {link + '.8': 'setarch.8'}
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endforeach
|
|
|
|
|
|
|
|
opt = not get_option('build-eject').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'eject',
|
|
|
|
eject_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exe = exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/eject.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['eject']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-losetup').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'losetup',
|
|
|
|
losetup_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/losetup.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['losetup']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt = opt and 'losetup' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'losetup.static',
|
|
|
|
losetup_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_args : ['--static'],
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols.get_static_lib()],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
opt = not get_option('build-zramctl').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'zramctl',
|
|
|
|
zramctl_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/zramctl.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['zramctl']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'prlimit',
|
|
|
|
prlimit_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/prlimit.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['prlimit']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'lsns',
|
|
|
|
lsns_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_mount],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/lsns.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lsns']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-mount').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mount',
|
|
|
|
mount_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_mount],
|
|
|
|
dependencies : lib_selinux,
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'umount',
|
|
|
|
umount_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount],
|
2023-06-09 14:09:02 +02:00
|
|
|
install_mode : 'rwsr-xr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += [exe, exe2]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/fstab.5.adoc',
|
|
|
|
'sys-utils/mount.8.adoc',
|
|
|
|
'sys-utils/umount.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mount', 'umount']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt2 = opt and 'mount' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'mount.static',
|
|
|
|
mount_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_args : ['--static'],
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols_static,
|
|
|
|
lib_mount_static],
|
|
|
|
install : opt2,
|
|
|
|
build_by_default : opt2)
|
|
|
|
if opt2 and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
opt2 = opt and 'umount' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'umount.static',
|
|
|
|
umount_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_args : ['--static'],
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount_static],
|
|
|
|
install : opt2,
|
|
|
|
build_by_default : opt2)
|
|
|
|
if opt2 and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
# setuid?
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'swapon',
|
|
|
|
swapon_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_mount,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/swapon.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['swapon']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'swapoff',
|
|
|
|
swapoff_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_mount],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manlinks += {'swapoff.8': 'swapon.8'}
|
|
|
|
bashcompletions += ['swapoff']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'lscpu',
|
|
|
|
lscpu_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
dependencies : [rtas_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/lscpu.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lscpu']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'chcpu',
|
|
|
|
chcpu_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/chcpu.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['chcpu']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'wdctl',
|
|
|
|
wdctl_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/wdctl.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['wdctl']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-mountpoint').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mountpoint',
|
|
|
|
mountpoint_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_mount],
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/mountpoint.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mountpoint']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-fallocate').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'fallocate',
|
|
|
|
fallocate_sources,
|
|
|
|
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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/fallocate.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fallocate']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-pivot_root').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'pivot_root',
|
|
|
|
pivot_root_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/pivot_root.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['pivot_root']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-switch_root').disabled()
|
|
|
|
if opt and not have_dirfd and not have_ddfd
|
|
|
|
error('neither dirfd nor ddfd are available')
|
|
|
|
endif
|
|
|
|
exe = executable(
|
|
|
|
'switch_root',
|
|
|
|
switch_root_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/switch_root.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-unshare').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'unshare',
|
|
|
|
unshare_sources,
|
|
|
|
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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/unshare.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['unshare']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt = opt and 'unshare' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'unshare.static',
|
|
|
|
unshare_sources,
|
|
|
|
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
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
opt = not get_option('build-nsenter').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'nsenter',
|
|
|
|
nsenter_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_selinux],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/nsenter.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['nsenter']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt = opt and 'nsenter' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'nsenter.static',
|
|
|
|
nsenter_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_selinux],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
2022-05-02 16:18:33 -07:00
|
|
|
opt = not get_option('build-setpriv').disabled() and lib_cap_ng.found()
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe = executable(
|
|
|
|
'setpriv',
|
|
|
|
setpriv_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_cap_ng],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/setpriv.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['setpriv']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'flock',
|
|
|
|
flock_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : realtime_libs,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/flock.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['flock']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2021-03-25 12:12:11 +01:00
|
|
|
opt = not get_option('build-lsirq').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'lsirq',
|
|
|
|
lsirq_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/lsirq.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lsirq']
|
2021-03-25 12:12:11 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-irqtop').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'irqtop',
|
|
|
|
irqtop_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
dependencies : [realtime_libs, curses_libs],
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_tcolors],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/irqtop.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['irqtop']
|
2021-03-25 12:12:11 +01:00
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
opt = not get_option('build-ipcs').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'lsipc',
|
|
|
|
lsipc_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['sys-utils/lsipc.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lsipc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = build_hwclock
|
|
|
|
exe = executable(
|
|
|
|
'hwclock',
|
|
|
|
hwclock_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_m,
|
|
|
|
lib_audit],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
manadocs += ['sys-utils/hwclock.8.adoc', 'sys-utils/adjtime_config.5.adoc']
|
|
|
|
bashcompletions += ['hwclock']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'mkfs',
|
|
|
|
mkfs_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/mkfs.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mkfs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
opt = not get_option('build-bfs').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mkfs.bfs',
|
|
|
|
mkfs_bfs_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
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/mkfs.bfs.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mkfs.bfs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'isosize',
|
|
|
|
isosize_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/isosize.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['isosize']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'mkswap',
|
|
|
|
mkswap_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_uuid],
|
|
|
|
dependencies: [lib_selinux],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/mkswap.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mkswap']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'swaplabel',
|
|
|
|
swaplabel_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_uuid],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/swaplabel.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['swaplabel']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-fsck').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'fsck',
|
|
|
|
fsck_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_mount],
|
|
|
|
dependencies : realtime_libs,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/fsck.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fsck']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-minix').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mkfs.minix',
|
|
|
|
mkfs_minix_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'test_mkfs_minix',
|
|
|
|
mkfs_minix_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_SCRIPT',
|
|
|
|
link_with : [lib_common],
|
|
|
|
build_by_default : opt)
|
|
|
|
exe3 = executable(
|
|
|
|
'fsck.minix',
|
|
|
|
fsck_minix_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, exe2, exe3]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/mkfs.minix.8.adoc','disk-utils/fsck.minix.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mkfs.minix', 'fsck.minix']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-cramfs').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mkfs.cramfs',
|
|
|
|
mkfs_cramfs_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_z],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'fsck.cramfs',
|
|
|
|
fsck_cramfs_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_z],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += [exe, exe2]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/mkfs.cramfs.8.adoc','disk-utils/fsck.cramfs.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mkfs.cramfs', 'fsck.cramfs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-raw').disabled()
|
2021-09-23 14:09:35 +02:00
|
|
|
if opt
|
2021-09-24 15:52:07 +02:00
|
|
|
cc.has_header('linux/raw.h', required: opt)
|
2021-09-23 14:09:35 +02:00
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe = executable(
|
|
|
|
'raw',
|
|
|
|
raw_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/raw.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['raw']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-fdformat').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'fdformat',
|
|
|
|
fdformat_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/fdformat.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'blockdev',
|
|
|
|
blockdev_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/blockdev.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['blockdev']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
opt = not get_option('build-fdisks').disabled()
|
|
|
|
if opt and not have_dirfd and not have_ddfd
|
|
|
|
error('neither dirfd nor ddfd are available')
|
|
|
|
endif
|
|
|
|
exe = executable(
|
|
|
|
'fdisk',
|
|
|
|
fdisk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_fdisk,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_tcolors],
|
|
|
|
dependencies : [lib_readline],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fdisk']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt2 = opt and 'fdisk' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'fdisk.static',
|
|
|
|
fdisk_sources,
|
|
|
|
link_args : ['--static'],
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors,
|
|
|
|
lib_fdisk_static,
|
|
|
|
lib_smartcols.get_static_lib()],
|
|
|
|
dependencies : [lib_readline_static],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt2,
|
|
|
|
build_by_default : opt2)
|
|
|
|
if opt2 and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sfdisk',
|
|
|
|
sfdisk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_fdisk,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_tcolors],
|
|
|
|
dependencies : [lib_readline],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['sfdisk']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt2 = opt and 'sfdisk' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'sfdisk.static',
|
|
|
|
sfdisk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors,
|
|
|
|
lib_fdisk_static,
|
|
|
|
lib_smartcols.get_static_lib()],
|
|
|
|
dependencies : [lib_readline_static],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt2,
|
|
|
|
build_by_default : opt2)
|
|
|
|
if opt2 and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'cfdisk',
|
|
|
|
cfdisk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_fdisk,
|
|
|
|
lib_smartcols,
|
|
|
|
lib_tcolors,
|
|
|
|
lib_mount],
|
|
|
|
dependencies : [curses_libs],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/fdisk.8.adoc',
|
|
|
|
'disk-utils/sfdisk.8.adoc',
|
|
|
|
'disk-utils/cfdisk.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['cfdisk']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-partx').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'addpart',
|
|
|
|
addpart_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'delpart',
|
|
|
|
delpart_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe3 = executable(
|
|
|
|
'resizepart',
|
|
|
|
resizepart_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe4 = executable(
|
|
|
|
'partx',
|
|
|
|
partx_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += [exe, exe2, exe3, exe4]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['disk-utils/addpart.8.adoc',
|
|
|
|
'disk-utils/delpart.8.adoc',
|
|
|
|
'disk-utils/resizepart.8.adoc',
|
|
|
|
'disk-utils/partx.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['addpart', 'delpart', 'resizepart', 'partx']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'script',
|
|
|
|
script_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_util,
|
|
|
|
lib_utempter,
|
|
|
|
realtime_libs,
|
|
|
|
math_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/script.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['script']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_script',
|
|
|
|
script_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_SCRIPT',
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_util,
|
|
|
|
lib_utempter,
|
|
|
|
realtime_libs,
|
|
|
|
math_libs])
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'scriptlive',
|
|
|
|
scriptlive_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_util,
|
|
|
|
realtime_libs,
|
|
|
|
math_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/scriptlive.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['scriptlive']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'scriptreplay',
|
|
|
|
scriptreplay_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [math_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/scriptreplay.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['scriptreplay']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
opt = not get_option('build-agetty').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'agetty',
|
|
|
|
agetty_sources,
|
|
|
|
include_directories : includes,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : BSD ? lib_util : [],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/agetty.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-setterm').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'setterm',
|
|
|
|
setterm_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [curses_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/setterm.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['setterm']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-mesg').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'mesg',
|
|
|
|
mesg_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/mesg.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mesg']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-wall').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'wall',
|
|
|
|
wall_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
2023-06-09 15:02:57 +02:00
|
|
|
install_mode : 'rwxr-sr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/wall.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['wall']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
# chgrp tty $(DESTDIR)$(usrbin_execdir)/wall
|
|
|
|
# chmod g+s $(DESTDIR)$(usrbin_execdir)/wall
|
|
|
|
|
|
|
|
opt = not get_option('build-write').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'write',
|
|
|
|
write_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
2023-06-09 15:04:00 +02:00
|
|
|
install_mode : 'rwxr-sr-x',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/write.1.adoc']
|
2023-05-22 15:57:35 +02:00
|
|
|
bashcompletions += ['write']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
# chgrp tty $(DESTDIR)$(usrbin_execdir)/write
|
|
|
|
# chmod g+s $(DESTDIR)$(usrbin_execdir)/write
|
|
|
|
|
|
|
|
opt = not get_option('build-login').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'login',
|
|
|
|
login_sources,
|
|
|
|
include_directories : includes,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_pam,
|
|
|
|
lib_audit,
|
|
|
|
lib_selinux],
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['login-utils/login.1.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-sulogin').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'sulogin',
|
|
|
|
sulogin_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_crypt,
|
|
|
|
lib_selinux],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['login-utils/sulogin.8.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'cal',
|
|
|
|
cal_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors],
|
|
|
|
dependencies : [curses_libs],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/cal.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['cal']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
opt = not get_option('build-logger').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'logger',
|
|
|
|
logger_sources,
|
|
|
|
include_directories : includes,
|
2021-09-07 18:58:16 -04:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_systemd],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/logger.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['logger']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_logger',
|
|
|
|
logger_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_LOGGER',
|
2021-09-07 18:58:16 -04:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
dependencies : [lib_systemd])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'look',
|
|
|
|
look_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/look.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['look']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'mcookie',
|
|
|
|
mcookie_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/mcookie.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['mcookie']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'namei',
|
|
|
|
namei_sources,
|
|
|
|
include_directories : includes,
|
2022-12-18 18:55:01 +00:00
|
|
|
dependencies : [lib_selinux],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/namei.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['namei']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'whereis',
|
|
|
|
whereis_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/whereis.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['whereis']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'lslocks',
|
|
|
|
lslocks_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/lslocks.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lslocks']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'lsblk',
|
|
|
|
lsblk_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_mount,
|
|
|
|
lib_smartcols],
|
|
|
|
dependencies : lib_udev,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/lsblk.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['lsblk']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2021-10-06 11:11:16 +02:00
|
|
|
exe = executable(
|
|
|
|
'lsfd',
|
|
|
|
lsfd_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/lsfd.1.adoc']
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe = executable(
|
|
|
|
'uuidgen',
|
|
|
|
uuidgen_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_uuid],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/uuidgen.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['uuidgen']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'uuidparse',
|
|
|
|
uuidparse_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_uuid,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/uuidparse.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['uuidparse']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = build_uuidd
|
|
|
|
exe = executable(
|
|
|
|
'uuidd',
|
|
|
|
uuidd_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_uuid],
|
|
|
|
dependencies : [realtime_libs,
|
|
|
|
lib_systemd],
|
|
|
|
install_dir : usrsbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'test_uuidd',
|
|
|
|
test_uuidd_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_uuid],
|
|
|
|
dependencies : thread_libs,
|
|
|
|
build_by_default : opt)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += [exe, exe2]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/uuidd.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['uuidd']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = build_libblkid
|
|
|
|
exe = executable(
|
|
|
|
'blkid',
|
|
|
|
blkid_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/blkid.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['blkid']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2020-05-11 12:06:39 +02:00
|
|
|
opt = opt and 'blkid' in static_programs
|
|
|
|
exe = executable(
|
|
|
|
'blkid.static',
|
|
|
|
blkid_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid_static],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-mkfs',
|
|
|
|
'libblkid/samples/mkfs.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_blkid)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-partitions',
|
|
|
|
'libblkid/samples/partitions.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_blkid)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-superblocks',
|
|
|
|
'libblkid/samples/superblocks.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_blkid)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-topology',
|
|
|
|
'libblkid/samples/topology.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_blkid)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
2023-01-25 17:21:18 +00:00
|
|
|
exe = executable(
|
|
|
|
'test_blkid_fuzz_sample',
|
|
|
|
'libblkid/src/fuzz.c',
|
|
|
|
include_directories: includes,
|
|
|
|
link_with: lib_blkid)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
############################################################
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'findfs',
|
|
|
|
findfs_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_blkid],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/findfs.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['findfs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'wipefs',
|
|
|
|
wipefs_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_blkid,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : sbindir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/wipefs.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['wipefs']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
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)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/findmnt.8.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['findmnt']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'kill',
|
|
|
|
kill_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/kill.1.adoc']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
opt = not get_option('build-rename').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'rename',
|
|
|
|
rename_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/rename.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['rename']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'getopt',
|
|
|
|
getopt_sources,
|
|
|
|
include_directories : includes,
|
2021-02-16 18:09:24 +01:00
|
|
|
link_with : [lib_common],
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/getopt.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['getopt']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'fincore',
|
|
|
|
fincore_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_smartcols],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/fincore.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['fincore']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'hardlink',
|
|
|
|
hardlink_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['misc-utils/hardlink.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['hardlink']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
2022-04-11 22:59:27 -06:00
|
|
|
opt = not get_option('build-pipesz').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'pipesz',
|
|
|
|
pipesz_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common],
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : true)
|
|
|
|
if opt and not is_disabler(exe)
|
|
|
|
exes += exe
|
2022-04-11 22:59:29 -06:00
|
|
|
manadocs += ['misc-utils/pipesz.1.adoc']
|
2022-04-11 22:59:30 -06:00
|
|
|
bashcompletions += ['pipesz']
|
2022-04-11 22:59:27 -06:00
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
exe = executable(
|
|
|
|
'test_cal',
|
|
|
|
cal_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
c_args : '-DTEST_CAL',
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_tcolors],
|
|
|
|
dependencies : [curses_libs])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
2022-10-30 10:33:57 +09:00
|
|
|
exe = executable(
|
|
|
|
'fadvise',
|
|
|
|
fadvise_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/fadvise.1.adoc']
|
|
|
|
bashcompletions += ['fadvise']
|
|
|
|
endif
|
|
|
|
|
2023-06-13 10:15:39 +02:00
|
|
|
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
|
2022-12-24 04:27:04 +00:00
|
|
|
endif
|
|
|
|
|
2023-05-05 00:39:40 +02:00
|
|
|
syscalls_h = custom_target('syscalls.h',
|
|
|
|
input : 'tools/all_syscalls',
|
|
|
|
output : 'syscalls.h',
|
|
|
|
command : ['bash', '@INPUT@', cc.cmd_array()],
|
|
|
|
)
|
|
|
|
|
2023-05-22 17:58:17 +02:00
|
|
|
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
|
2023-04-27 23:40:28 +02:00
|
|
|
endif
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
############################################################
|
|
|
|
|
|
|
|
opt = not get_option('build-schedutils').disabled()
|
|
|
|
exe = executable(
|
|
|
|
'chrt',
|
|
|
|
'schedutils/chrt.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
|
|
|
|
exe2 = executable(
|
|
|
|
'ionice',
|
|
|
|
'schedutils/ionice.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
|
|
|
|
exe3 = executable(
|
|
|
|
'taskset',
|
|
|
|
'schedutils/taskset.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
|
2021-02-16 12:10:36 +01:00
|
|
|
exe4 = executable(
|
|
|
|
'uclampset',
|
|
|
|
'schedutils/uclampset.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common,
|
|
|
|
install_dir : usrbin_exec_dir,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
if opt and not is_disabler(exe)
|
2021-02-16 12:10:36 +01:00
|
|
|
exes += [exe, exe2, exe3, exe4]
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['schedutils/chrt.1.adoc',
|
|
|
|
'schedutils/ionice.1.adoc',
|
|
|
|
'schedutils/taskset.1.adoc',
|
|
|
|
'schedutils/uclampset.1.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
bashcompletions += ['chrt', 'ionice', 'taskset', 'uclampset']
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
# TODO: when autotools compat is not needed, s/_/-/g in file names?
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_ttyutils',
|
|
|
|
'lib/ttyutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_TTYUTILS'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_blkdev',
|
|
|
|
'lib/blkdev.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_BLKDEV'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_ismounted',
|
|
|
|
'lib/ismounted.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_ISMOUNTED'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_mangle',
|
|
|
|
'lib/mangle.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_MANGLE'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_strutils',
|
|
|
|
'lib/strutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_STRUTILS'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_colors',
|
|
|
|
'lib/colors.c',
|
|
|
|
'lib/color-names.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_COLORS'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : [lib_common, lib_tcolors])
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_randutils',
|
|
|
|
'lib/randutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_RANDUTILS'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
2023-06-13 10:01:52 +02:00
|
|
|
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)
|
|
|
|
exes += exe
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2023-06-13 10:01:52 +02:00
|
|
|
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
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2023-06-13 09:55:22 +02:00
|
|
|
if conf.get('HAVE_PTY') != false
|
|
|
|
exe = executable(
|
|
|
|
'test_pty',
|
|
|
|
pty_session_c,
|
|
|
|
monotonic_c,
|
|
|
|
c_args : ['-DTEST_PROGRAM_PTY'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : [lib_common],
|
|
|
|
dependencies : [lib_m,
|
|
|
|
realtime_libs,
|
|
|
|
lib_util])
|
|
|
|
exes += exe
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
2023-06-13 10:01:52 +02:00
|
|
|
if LINUX
|
|
|
|
exe = executable(
|
|
|
|
'test_cpuset',
|
|
|
|
'lib/cpuset.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_CPUSET'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_sysfs',
|
|
|
|
'lib/sysfs.c',
|
|
|
|
'lib/path.c',
|
2023-01-06 15:58:16 +01:00
|
|
|
'lib/buffer.c',
|
2023-01-07 02:24:49 +00:00
|
|
|
'lib/mbsalign.c',
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
'lib/fileutils.c',
|
|
|
|
have_cpu_set_t ? 'lib/cpuset.c' : [],
|
|
|
|
c_args : ['-DTEST_PROGRAM_SYSFS'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_pager',
|
|
|
|
'lib/pager.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_PAGER'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_linux_version',
|
|
|
|
'lib/linux_version.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_LINUXVERSION'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fileutils',
|
|
|
|
'lib/fileutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_FILEUTILS'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_canonicalize',
|
|
|
|
'lib/canonicalize.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_CANONICALIZE'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_timeutils',
|
|
|
|
'lib/timeutils.c',
|
|
|
|
'lib/strutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_TIMEUTILS'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_pwdutils',
|
|
|
|
'lib/pwdutils.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
2022-03-21 13:40:40 +01:00
|
|
|
exe = executable(
|
|
|
|
'test_logindefs',
|
|
|
|
'lib/logindefs.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM'],
|
|
|
|
include_directories : dir_include,
|
2022-11-30 05:30:31 +01:00
|
|
|
link_with : [lib_common, logindefs_c])
|
2022-03-21 13:40:40 +01:00
|
|
|
exes += exe
|
|
|
|
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
############################################################
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_uuid_parser',
|
|
|
|
'libuuid/src/test_uuid.c',
|
|
|
|
include_directories : [dir_include, dir_libuuid],
|
|
|
|
link_with : lib_uuid,
|
|
|
|
dependencies : socket_libs)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
libfdisk_tests_cflags = ['-DTEST_PROGRAM',
|
|
|
|
'-Wno-unused']
|
2020-05-11 12:06:39 +02:00
|
|
|
libfdisk_tests_ldadd = [lib_fdisk_static, lib_uuid, lib_blkid]
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_ask',
|
|
|
|
'libfdisk/src/ask.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_gpt',
|
|
|
|
'libfdisk/src/gpt.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_utils',
|
|
|
|
'libfdisk/src/utils.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_script',
|
|
|
|
'libfdisk/src/script.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_version',
|
|
|
|
'libfdisk/src/version.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_fdisk_item',
|
|
|
|
'libfdisk/src/item.c',
|
|
|
|
c_args : libfdisk_tests_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : libfdisk_tests_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
sample_fdisk_cflags = ['-Wno-unused']
|
|
|
|
sample_fdisk_ldadd = [lib_common, lib_fdisk]
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-fdisk-mkpart',
|
|
|
|
'libfdisk/samples/mkpart.c',
|
|
|
|
c_args : sample_fdisk_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : sample_fdisk_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-fdisk-mkpart-fullspec',
|
|
|
|
'libfdisk/samples/mkpart-fullspec.c',
|
|
|
|
c_args : sample_fdisk_cflags,
|
|
|
|
include_directories : lib_fdisk_includes,
|
|
|
|
link_with : sample_fdisk_ldadd)
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_mbsencode',
|
|
|
|
'tests/helpers/test_mbsencode.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_byteswap',
|
|
|
|
'tests/helpers/test_byteswap.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_md5',
|
|
|
|
'tests/helpers/test_md5.c',
|
|
|
|
md5_c,
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_sha1',
|
|
|
|
'tests/helpers/test_sha1.c',
|
|
|
|
sha1_c,
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_pathnames',
|
|
|
|
'tests/helpers/test_pathnames.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_strerror',
|
|
|
|
'tests/helpers/test_strerror.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_sysinfo',
|
|
|
|
'tests/helpers/test_sysinfo.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_sigreceive',
|
|
|
|
'tests/helpers/test_sigreceive.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_tiocsti',
|
|
|
|
'tests/helpers/test_tiocsti.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'test_uuid_namespace',
|
|
|
|
'tests/helpers/test_uuid_namespace.c',
|
|
|
|
predefined_c,
|
|
|
|
unpack_c,
|
|
|
|
unparse_c,
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
2023-03-12 00:24:02 +09:00
|
|
|
mq_libs = []
|
|
|
|
mq_libs += cc.find_library('rt', required : true)
|
2023-06-13 10:01:52 +02:00
|
|
|
|
|
|
|
if LINUX
|
|
|
|
exe = executable(
|
|
|
|
'test_mkfds',
|
|
|
|
'tests/helpers/test_mkfds.c',
|
|
|
|
include_directories : includes,
|
|
|
|
dependencies : mq_libs)
|
|
|
|
exes += exe
|
|
|
|
endif
|
2022-10-10 16:08:10 +02:00
|
|
|
|
2023-04-28 00:04:19 +02:00
|
|
|
exe = executable(
|
|
|
|
'test_enosys',
|
|
|
|
'tests/helpers/test_enosys.c',
|
|
|
|
include_directories : includes)
|
|
|
|
exes += exe
|
|
|
|
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
############################################################
|
|
|
|
|
2023-06-13 10:01:52 +02:00
|
|
|
if conf.get('HAVE_OPENAT') != false
|
|
|
|
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
|
|
|
|
endif
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-title',
|
|
|
|
'libsmartcols/samples/title.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-wrap',
|
|
|
|
'libsmartcols/samples/wrap.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-continuous',
|
|
|
|
'libsmartcols/samples/continuous.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-maxout',
|
|
|
|
'libsmartcols/samples/maxout.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-fromfile',
|
|
|
|
'libsmartcols/samples/fromfile.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-grouping-simple',
|
|
|
|
'libsmartcols/samples/grouping-simple.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-grouping-overlay',
|
|
|
|
'libsmartcols/samples/grouping-overlay.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
endif
|
|
|
|
|
|
|
|
############################################################
|
|
|
|
|
|
|
|
# Let the test runner know whether we're running under asan and export
|
|
|
|
# some paths. We use a file on disk so that it is possible to run the
|
|
|
|
# test scripts from commandline without setting any variables.
|
|
|
|
configure_file(output : 'meson.conf',
|
|
|
|
capture : true,
|
|
|
|
command : ['echo',
|
|
|
|
'''asan=@0@
|
|
|
|
PYTHON=@1@
|
|
|
|
'''.format(get_option('b_sanitize')=='address' ? 'yes' : '',
|
2023-05-23 16:32:23 +02:00
|
|
|
python.full_path())])
|
meson: add second build system
To build: meson build && ninja -C build
To run tests: ninja -C build check
To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install
To install for realz: sudo ninja -C build install
v2:
- Optional items are now based on the 'feature' feature in meson.
Built libraries which are disabled turn into disabler() objects
and also poison any executables which link to them.
What is there:
- building of the binaries and libs and the python module
- installation of binaries, libs, python module, localization files,
man pages, pkgconfig files
- running of tests
- most options to configure build equivalently to the
./configure settings
Partially implemented:
- disabling of stuff when things missing. In the C code, the defines
are all used, so that should be fine. In the build system, some
files should be skipped, but that is probably not always done properly.
Getting this right might require some testing of various build option
combinations to get the details right.
Not implemented:
- static builds of fdisk and other binaries
- things marked with XXX or FIXME
- ???
Differences:
- .la files are not created. They are useless and everybody hates them.
- Requires.private in pkgconfig files are not present in the
autogenerated .pc file. Not sure if they should be there or not. If
necessary, they can be added by hand.
- man pages and systemd units are installed by the install target. Not
sure why 'make install' doesn't do that.
- the split between / and /usr is probably wrong. But it's all pointless
anyway, so maybe we could simplify things but not implementing it at
all under meson?
2020-02-23 19:42:55 +01:00
|
|
|
|
|
|
|
run_sh = find_program('tests/run.sh')
|
|
|
|
run_target(
|
|
|
|
'check',
|
|
|
|
command : [run_sh,
|
|
|
|
'--srcdir=' + meson.current_source_dir(),
|
|
|
|
'--builddir=' + meson.current_build_dir(),
|
|
|
|
'--parallel',
|
|
|
|
'--nonroot'],
|
|
|
|
depends : exes)
|
2021-04-06 15:32:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
manadocs += ['lib/terminal-colors.d.5.adoc']
|
|
|
|
manadocs += ['libblkid/libblkid.3.adoc']
|
|
|
|
|
|
|
|
if build_libuuid
|
|
|
|
manadocs += [
|
|
|
|
'libuuid/man/uuid.3.adoc',
|
|
|
|
'libuuid/man/uuid_clear.3.adoc',
|
|
|
|
'libuuid/man/uuid_compare.3.adoc',
|
|
|
|
'libuuid/man/uuid_copy.3.adoc',
|
|
|
|
'libuuid/man/uuid_generate.3.adoc',
|
|
|
|
'libuuid/man/uuid_is_null.3.adoc',
|
|
|
|
'libuuid/man/uuid_parse.3.adoc',
|
|
|
|
'libuuid/man/uuid_time.3.adoc',
|
|
|
|
'libuuid/man/uuid_unparse.3.adoc']
|
2021-12-30 16:35:03 +01:00
|
|
|
manlinks += {
|
|
|
|
'uuid_generate_random.3': 'uuid_generate.3',
|
|
|
|
'uuid_generate_time.3': 'uuid_generate.3',
|
|
|
|
'uuid_generate_time_safe.3': 'uuid_generate.3',
|
|
|
|
}
|
2021-04-06 15:32:46 +02:00
|
|
|
endif
|
|
|
|
|
2021-09-07 18:58:48 -04:00
|
|
|
asciidoctor = find_program('asciidoctor', required : false)
|
2021-04-06 15:32:46 +02:00
|
|
|
if asciidoctor.found()
|
|
|
|
foreach adoc : manadocs
|
|
|
|
name = adoc.split('/')[-1]
|
|
|
|
page = name.split('.adoc')[0]
|
|
|
|
section = page.split('.')[-1]
|
|
|
|
mandirn = join_paths(mandir, 'man' + section)
|
|
|
|
input = adoc
|
|
|
|
|
|
|
|
custom_target(
|
|
|
|
page,
|
|
|
|
command : [ asciidoctor,
|
|
|
|
'-b', 'manpage',
|
|
|
|
'-a', 'VERSION=' + meson.project_version(),
|
2021-12-30 16:35:03 +01:00
|
|
|
'-a', 'release-version=' + meson.project_version(),
|
2021-04-06 15:32:46 +02:00
|
|
|
'-a', 'ADJTIME_PATH=/etc/adjtime',
|
2021-12-30 16:35:03 +01:00
|
|
|
'-a', 'package-docdir=' + docdir,
|
2021-04-06 15:32:46 +02:00
|
|
|
'--base-dir=' + meson.current_source_dir(),
|
|
|
|
'--destination-dir=' + meson.current_build_dir(),
|
2023-01-06 02:34:09 +00:00
|
|
|
'--load-path', '@SOURCE_ROOT@/tools',
|
|
|
|
'--require', 'asciidoctor-includetracker',
|
2021-04-06 15:32:46 +02:00
|
|
|
'@INPUT@'],
|
|
|
|
input : input,
|
|
|
|
output : [page],
|
2023-01-06 02:34:09 +00:00
|
|
|
depfile : page + '.deps',
|
2021-04-06 15:32:46 +02:00
|
|
|
install: true,
|
|
|
|
install_dir : mandirn)
|
|
|
|
endforeach
|
2021-12-30 16:35:03 +01:00
|
|
|
|
|
|
|
foreach link_name, target : manlinks
|
|
|
|
link_section = link_name.split('.')[-1]
|
|
|
|
target_section = target.split('.')[-1]
|
|
|
|
meson.add_install_script(meson_make_manpage_stub,
|
|
|
|
join_paths('man' + target_section, target),
|
|
|
|
join_paths(mandir, 'man' + link_section, link_name))
|
|
|
|
endforeach
|
|
|
|
endif
|
|
|
|
|
|
|
|
if bash_completion.found()
|
|
|
|
foreach completion : bashcompletions
|
|
|
|
install_data(
|
|
|
|
join_paths('bash-completion', completion),
|
2022-01-04 12:57:52 +01:00
|
|
|
install_dir : bash_completion.get_variable(pkgconfig : 'completionsdir')
|
2021-12-30 16:35:03 +01:00
|
|
|
)
|
|
|
|
endforeach
|
2022-01-04 12:17:41 +01:00
|
|
|
foreach link_name, target : bashcompletionslinks
|
|
|
|
meson.add_install_script(meson_make_symlink,
|
|
|
|
target,
|
2022-01-04 12:57:52 +01:00
|
|
|
join_paths(bash_completion.get_variable(pkgconfig : 'completionsdir'), link_name))
|
2022-01-04 12:17:41 +01:00
|
|
|
endforeach
|
2021-04-06 15:32:46 +02:00
|
|
|
endif
|