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(),
|
2022-04-12 21:25:01 -04:00
|
|
|
meson_version: '>=0.53.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+')
|
|
|
|
|
|
|
|
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
|
2021-05-26 13:12:31 +02:00
|
|
|
linux/fiemap.h
|
|
|
|
linux/gsmmux.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
|
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
|
|
|
|
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
|
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)
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
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
|
|
|
|
fmemopen
|
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
|
|
|
|
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)
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
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,
|
|
|
|
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,
|
|
|
|
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],
|
|
|
|
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,
|
|
|
|
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']
|
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']
|
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,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
exe2 = executable(
|
|
|
|
'umount',
|
|
|
|
umount_sources,
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_common,
|
|
|
|
lib_mount],
|
|
|
|
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,
|
|
|
|
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,
|
|
|
|
install : opt,
|
|
|
|
build_by_default : opt)
|
|
|
|
if opt
|
|
|
|
exes += exe
|
2021-04-06 15:32:46 +02:00
|
|
|
manadocs += ['term-utils/write.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
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
2022-12-24 04:27:04 +00:00
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
|
|
|
# XXX: HAVE_OPENAT && HAVE_DIRFD
|
|
|
|
exe = executable(
|
2021-09-07 17:42:37 +02:00
|
|
|
'test_procfs',
|
|
|
|
'lib/procfs.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_PROCFS'],
|
2021-10-10 17:01:40 +09:00
|
|
|
include_directories : dir_include,
|
|
|
|
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
|
|
|
exes += exe
|
|
|
|
|
|
|
|
# XXX: HAVE_OPENAT && HAVE_DIRFD
|
|
|
|
exe = executable(
|
|
|
|
'test_path',
|
|
|
|
'lib/path.c',
|
|
|
|
'lib/fileutils.c',
|
|
|
|
have_cpu_set_t ? 'lib/cpuset.c' : [],
|
|
|
|
c_args : ['-DTEST_PROGRAM_PATH'],
|
|
|
|
include_directories : dir_include,
|
|
|
|
link_with : lib_common)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
# XXX: HAVE_PTY
|
|
|
|
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
|
|
|
|
|
|
|
|
# XXX: LINUX
|
|
|
|
exe = executable(
|
|
|
|
'test_cpuset',
|
|
|
|
'lib/cpuset.c',
|
|
|
|
c_args : ['-DTEST_PROGRAM_CPUSET'],
|
|
|
|
include_directories : dir_include)
|
|
|
|
exes += exe
|
|
|
|
|
|
|
|
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
|
|
|
|
|
2022-10-10 16:08:10 +02:00
|
|
|
# XXX: LINUX
|
|
|
|
exe = executable(
|
|
|
|
'test_mkfds',
|
|
|
|
'tests/helpers/test_mkfds.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
|
|
|
############################################################
|
|
|
|
|
|
|
|
# XXX: HAVE_OPENAT
|
|
|
|
exe = executable(
|
|
|
|
'sample-scols-tree',
|
|
|
|
'libsmartcols/samples/tree.c',
|
|
|
|
include_directories : includes,
|
|
|
|
link_with : [lib_smartcols, lib_common])
|
|
|
|
if not is_disabler(exe)
|
|
|
|
exes += exe
|
|
|
|
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' : '',
|
|
|
|
python.path())])
|
|
|
|
|
|
|
|
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
|