util-linux/sys-utils/meson.build

232 lines
2.9 KiB
Meson
Raw Normal View History

meson: add second build system To build: meson build && ninja -C build To run tests: ninja -C build check To install for packaging: DESTDIR=/var/tmp/inst ninja -C build install To install for realz: sudo ninja -C build install v2: - Optional items are now based on the 'feature' feature in meson. Built libraries which are disabled turn into disabler() objects and also poison any executables which link to them. What is there: - building of the binaries and libs and the python module - installation of binaries, libs, python module, localization files, man pages, pkgconfig files - running of tests - most options to configure build equivalently to the ./configure settings Partially implemented: - disabling of stuff when things missing. In the C code, the defines are all used, so that should be fine. In the build system, some files should be skipped, but that is probably not always done properly. Getting this right might require some testing of various build option combinations to get the details right. Not implemented: - static builds of fdisk and other binaries - things marked with XXX or FIXME - ??? Differences: - .la files are not created. They are useless and everybody hates them. - Requires.private in pkgconfig files are not present in the autogenerated .pc file. Not sure if they should be there or not. If necessary, they can be added by hand. - man pages and systemd units are installed by the install target. Not sure why 'make install' doesn't do that. - the split between / and /usr is probably wrong. But it's all pointless anyway, so maybe we could simplify things but not implementing it at all under meson?
2020-02-23 12:42:55 -06:00
dir_sys_utils = include_directories('.')
hwclock_parse_date = bison_gen.process('hwclock-parse-date.y')
lsmem_sources = files(
'lsmem.c',
)
chmem_sources = files(
'chmem.c',
)
choom_sources = files(
'choom.c',
)
ipcmk_sources = files(
'ipcmk.c',
)
ipcrm_sources = files(
'ipcrm.c',
)
ipcs_sources = files(
'ipcs.c',
'ipcutils.c',
'ipcutils.h',
)
rfkill_sources = files(
'rfkill.c',
)
renice_sources = files(
'renice.c',
)
setsid_sources = files(
'setsid.c',
)
readprofile_sources = files(
'readprofile.c',
)
tunelp_sources = files(
'tunelp.c',
)
fstrim_sources = files(
'fstrim.c',
)
dmesg_sources = files(
'dmesg.c',
) + \
monotonic_c
ctrlaltdel_sources = files(
'ctrlaltdel.c',
)
fsfreeze_sources = files(
'fsfreeze.c',
)
blkdiscard_sources = files(
'blkdiscard.c',
) + \
monotonic_c
blkzone_sources = files(
'blkzone.c',
)
ldattach_sources = files(
'ldattach.c',
)
rtcwake_sources = files(
'rtcwake.c',
)
setarch_sources = files(
'setarch.c',
)
eject_sources = files(
'eject.c',
) + \
monotonic_c
losetup_sources = files(
'losetup.c',
)
zramctl_sources = files(
'zramctl.c',
) + \
ismounted_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 12:42:55 -06:00
prlimit_sources = files(
'prlimit.c',
)
lsns_sources = files(
'lsns.c',
)
mount_sources = files(
'mount.c',
)
umount_sources = files(
'umount.c',
)
swapon_sources = files(
'swapon.c',
'swapon-common.c',
'swapon-common.h',
) + \
swapprober_c
swapoff_sources = files(
'swapoff.c',
'swapon-common.c',
'swapon-common.h',
) + \
swapprober_c
lscpu_sources = files(
'lscpu.c',
'lscpu.h',
'lscpu-cputype.c',
'lscpu-cpu.c',
'lscpu-topology.c',
'lscpu-virt.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 12:42:55 -06:00
'lscpu-arm.c',
'lscpu-dmi.c',
)
chcpu_sources = files(
'chcpu.c',
)
wdctl_sources = files(
'wdctl.c',
)
mountpoint_sources = files(
'mountpoint.c',
)
fallocate_sources = files(
'fallocate.c',
)
pivot_root_sources = files(
'pivot_root.c',
)
switch_root_sources = files(
'switch_root.c',
)
unshare_sources = files(
'unshare.c',
) + \
exec_shell_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 12:42:55 -06:00
nsenter_sources = files(
'nsenter.c',
) + \
exec_shell_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 12:42:55 -06:00
setpriv_sources = files(
'setpriv.c',
)
flock_sources = files(
'flock.c',
) + \
monotonic_c + \
timer_c
lsipc_sources = files(
'lsipc.c',
'ipcutils.c',
'ipcutils.h',
)
lsirq_sources = files(
'lsirq.c',
'irq-common.c',
'irq-common.h',
)
irqtop_sources = files(
'irqtop.c',
'irq-common.c',
'irq-common.h',
) + \
monotonic_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 12:42:55 -06:00
hwclock_sources = [
'sys-utils/hwclock.c',
'sys-utils/hwclock.h',
hwclock_parse_date,
]
if use_hwclock_cmos
hwclock_sources += [
'sys-utils/hwclock-cmos.c',
]
endif
if LINUX
hwclock_sources += [
'sys-utils/hwclock-rtc.c',
monotonic_c,
]
endif
fstrim_service = configure_file(
input : 'fstrim.service.in',
output : 'fstrim.service',
configuration : conf)
install_data(fstrim_service,
install_dir : systemdsystemunitdir)
install_data('fstrim.timer',
install_dir : systemdsystemunitdir)