if BUILD_LSMEM
usrbin_exec_PROGRAMS += lsmem
dist_man_MANS += sys-utils/lsmem.1
lsmem_SOURCES = sys-utils/lsmem.c
lsmem_LDADD = $(LDADD) libcommon.la libsmartcols.la
lsmem_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif

if BUILD_CHMEM
usrbin_exec_PROGRAMS += chmem
dist_man_MANS += sys-utils/chmem.8
chmem_SOURCES = sys-utils/chmem.c
chmem_LDADD = $(LDADD) libcommon.la
endif

if BUILD_FLOCK
usrbin_exec_PROGRAMS += flock
dist_man_MANS += sys-utils/flock.1
flock_SOURCES = sys-utils/flock.c lib/monotonic.c lib/timer.c
flock_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS)
endif

if BUILD_CHOOM
usrbin_exec_PROGRAMS += choom
dist_man_MANS += sys-utils/choom.1
choom_SOURCES = sys-utils/choom.c
choom_LDADD = $(LDADD) libcommon.la
endif

if BUILD_IPCMK
usrbin_exec_PROGRAMS += ipcmk
dist_man_MANS += sys-utils/ipcmk.1
ipcmk_SOURCES = sys-utils/ipcmk.c
ipcmk_LDADD = $(LDADD) libcommon.la
endif

if BUILD_IPCRM
usrbin_exec_PROGRAMS += ipcrm
dist_man_MANS += sys-utils/ipcrm.1
ipcrm_SOURCES = sys-utils/ipcrm.c
ipcrm_LDADD = $(LDADD) libcommon.la
endif

if BUILD_IPCS
usrbin_exec_PROGRAMS += ipcs
dist_man_MANS += sys-utils/ipcs.1
ipcs_SOURCES =	sys-utils/ipcs.c \
		sys-utils/ipcutils.c \
		sys-utils/ipcutils.h
ipcs_LDADD = $(LDADD) libcommon.la
endif

if BUILD_LSIPC
usrbin_exec_PROGRAMS += lsipc
dist_man_MANS += sys-utils/lsipc.1
lsipc_SOURCES =	sys-utils/lsipc.c \
		sys-utils/ipcutils.c \
		sys-utils/ipcutils.h
lsipc_LDADD = $(LDADD) libcommon.la libsmartcols.la
lsipc_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif

if BUILD_RENICE
usrbin_exec_PROGRAMS += renice
dist_man_MANS += sys-utils/renice.1
renice_SOURCES = sys-utils/renice.c
endif

if BUILD_RFKILL
usrsbin_exec_PROGRAMS += rfkill
dist_man_MANS += sys-utils/rfkill.8
rfkill_SOURCES = sys-utils/rfkill.c
rfkill_LDADD = $(LDADD) libcommon.la libsmartcols.la
rfkill_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif

if BUILD_SETSID
usrbin_exec_PROGRAMS += setsid
dist_man_MANS += sys-utils/setsid.1
setsid_SOURCES = sys-utils/setsid.c
endif

if BUILD_READPROFILE
usrsbin_exec_PROGRAMS += readprofile
dist_man_MANS += sys-utils/readprofile.8
readprofile_SOURCES = sys-utils/readprofile.c
endif

if BUILD_TUNELP
usrsbin_exec_PROGRAMS += tunelp
dist_man_MANS += sys-utils/tunelp.8
tunelp_SOURCES = sys-utils/tunelp.c
tunelp_LDADD = $(LDADD) libcommon.la
endif

if BUILD_FSTRIM
sbin_PROGRAMS += fstrim
dist_man_MANS += sys-utils/fstrim.8
fstrim_SOURCES = sys-utils/fstrim.c
fstrim_LDADD = $(LDADD) libcommon.la libmount.la
fstrim_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)
if HAVE_SYSTEMD
systemdsystemunit_DATA += \
		sys-utils/fstrim.service \
		sys-utils/fstrim.timer
endif
endif # BUILD_FSTRIM

PATHFILES += sys-utils/fstrim.service
EXTRA_DIST += sys-utils/fstrim.timer

if BUILD_DMESG
bin_PROGRAMS += dmesg
dist_man_MANS += sys-utils/dmesg.1
dmesg_SOURCES = sys-utils/dmesg.c lib/monotonic.c
dmesg_LDADD = $(LDADD) libcommon.la libtcolors.la $(REALTIME_LIBS)
dmesg_CFLAGS = $(AM_CFLAGS)
check_PROGRAMS += test_dmesg
test_dmesg_SOURCES = $(dmesg_SOURCES)
test_dmesg_LDADD = $(dmesg_LDADD)
test_dmesg_CFLAGS = -DTEST_DMESG $(dmesg_CFLAGS)
endif

if BUILD_CTRLALTDEL
sbin_PROGRAMS += ctrlaltdel
dist_man_MANS += sys-utils/ctrlaltdel.8
ctrlaltdel_SOURCES = sys-utils/ctrlaltdel.c
ctrlaltdel_LDADD = $(LDADD) libcommon.la
endif

if BUILD_FSFREEZE
sbin_PROGRAMS += fsfreeze
dist_man_MANS += sys-utils/fsfreeze.8
fsfreeze_SOURCES = sys-utils/fsfreeze.c
endif

if BUILD_BLKDISCARD
sbin_PROGRAMS += blkdiscard
dist_man_MANS += sys-utils/blkdiscard.8
blkdiscard_SOURCES = sys-utils/blkdiscard.c lib/monotonic.c
blkdiscard_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS)
endif

if BUILD_BLKZONE
sbin_PROGRAMS += blkzone
dist_man_MANS += sys-utils/blkzone.8
blkzone_SOURCES = sys-utils/blkzone.c
blkzone_LDADD = $(LDADD) libcommon.la
endif

if BUILD_LDATTACH
usrsbin_exec_PROGRAMS += ldattach
dist_man_MANS += sys-utils/ldattach.8
ldattach_SOURCES = sys-utils/ldattach.c
ldattach_LDADD = $(LDADD) libcommon.la
endif

if BUILD_RTCWAKE
usrsbin_exec_PROGRAMS += rtcwake
dist_man_MANS += sys-utils/rtcwake.8
PATHFILES += sys-utils/rtcwake.8
rtcwake_SOURCES = sys-utils/rtcwake.c
rtcwake_LDADD = $(LDADD) libcommon.la
endif

if BUILD_SETARCH
usrbin_exec_PROGRAMS += setarch
dist_man_MANS += sys-utils/setarch.8
setarch_SOURCES = sys-utils/setarch.c

SETARCH_LINKS = uname26 linux32 linux64

if ARCH_S390
SETARCH_LINKS += s390 s390x
endif
if ARCH_I86
SETARCH_LINKS += i386
endif
if ARCH_86_64
SETARCH_LINKS += i386 x86_64
endif
if ARCH_PPC
SETARCH_LINKS += ppc ppc64 ppc32
endif
if ARCH_SPARC
SETARCH_LINKS += sparc sparc64 sparc32 sparc32bash
endif
if ARCH_MIPS
SETARCH_LINKS += mips mips64 mips32
endif
if ARCH_IA64
SETARCH_LINKS += i386 ia64
endif
if ARCH_HPPA
SETARCH_LINKS += parisc parisc64 parisc32
endif

SETARCH_MAN_LINKS = $(addprefix sys-utils/,$(SETARCH_LINKS:=.8))
man_MANS += $(SETARCH_MAN_LINKS)
CLEANFILES += $(SETARCH_MAN_LINKS)

$(SETARCH_MAN_LINKS):
	$(AM_V_at) $(MKDIR_P) sys-utils
	$(AM_V_GEN)echo ".so man8/setarch.8" > $@

install-exec-hook-setarch:
	for I in $(SETARCH_LINKS); do \
		cd $(DESTDIR)$(usrbin_execdir) && ln -sf setarch $$I ; \
	done

uninstall-hook-setarch:
	for I in $(SETARCH_LINKS); do \
		rm -f $(DESTDIR)$(usrbin_execdir)/$$I ; \
	done

INSTALL_EXEC_HOOKS += install-exec-hook-setarch
UNINSTALL_HOOKS += uninstall-hook-setarch

endif # BUILD_SETARCH


if BUILD_EJECT
usrbin_exec_PROGRAMS += eject
eject_SOURCES =  sys-utils/eject.c lib/monotonic.c
eject_LDADD = $(LDADD) libmount.la libcommon.la $(REALTIME_LIBS)
eject_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)
dist_man_MANS += sys-utils/eject.1
endif


if BUILD_LOSETUP
sbin_PROGRAMS += losetup
dist_man_MANS += sys-utils/losetup.8
losetup_SOURCES = sys-utils/losetup.c
losetup_LDADD = $(LDADD) libcommon.la libsmartcols.la
losetup_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)

if HAVE_STATIC_LOSETUP
bin_PROGRAMS += losetup.static
losetup_static_SOURCES = $(losetup_SOURCES)
losetup_static_LDFLAGS = -all-static
losetup_static_LDADD = $(losetup_LDADD)
losetup_static_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif
endif # BUILD_LOSETUP


if BUILD_ZRAMCTL
sbin_PROGRAMS += zramctl
dist_man_MANS += sys-utils/zramctl.8
zramctl_SOURCES = sys-utils/zramctl.c
zramctl_LDADD = $(LDADD) libcommon.la libsmartcols.la
zramctl_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif


if BUILD_PRLIMIT
usrbin_exec_PROGRAMS += prlimit
dist_man_MANS += sys-utils/prlimit.1
prlimit_SOURCES = sys-utils/prlimit.c
prlimit_LDADD = $(LDADD) libcommon.la libsmartcols.la
prlimit_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif


if BUILD_LSNS
usrbin_exec_PROGRAMS += lsns
dist_man_MANS += sys-utils/lsns.8
lsns_SOURCES =	sys-utils/lsns.c
lsns_LDADD = $(LDADD) libcommon.la libsmartcols.la libmount.la
lsns_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir) -I$(ul_libmount_incdir)
endif


if BUILD_MOUNT
bin_PROGRAMS += mount umount
dist_man_MANS += \
	sys-utils/mount.8 \
	sys-utils/fstab.5 \
	sys-utils/umount.8
mount_SOURCES = sys-utils/mount.c
mount_LDADD = $(LDADD) libcommon.la libmount.la $(SELINUX_LIBS)
mount_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) -I$(ul_libmount_incdir)
mount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)

umount_SOURCES = sys-utils/umount.c
umount_LDADD = $(LDADD) libcommon.la libmount.la
umount_CFLAGS = $(AM_CFLAGS) $(SUID_CFLAGS) -I$(ul_libmount_incdir)
umount_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)

if HAVE_STATIC_MOUNT
bin_PROGRAMS += mount.static
mount_static_SOURCES = $(mount_SOURCES)
mount_static_CFLAGS = $(mount_CFLAGS)
mount_static_LDFLAGS = $(mount_LDFLAGS) -all-static
mount_static_LDADD = $(mount_LDADD) $(SELINUX_LIBS_STATIC)
endif

if HAVE_STATIC_UMOUNT
bin_PROGRAMS += umount.static
umount_static_SOURCES = $(umount_SOURCES)
umount_static_CFLAGS = $(umount_CFLAGS)
umount_static_LDFLAGS = $(umount_LDFLAGS) -all-static
umount_static_LDADD = $(umount_LDADD)
endif

install-exec-hook-mount:
if MAKEINSTALL_DO_CHOWN
	chown root:root $(DESTDIR)$(bindir)/mount
endif
if MAKEINSTALL_DO_SETUID
	chmod 4755 $(DESTDIR)$(bindir)/mount
endif
if MAKEINSTALL_DO_CHOWN
	chown root:root $(DESTDIR)$(bindir)/umount
endif
if MAKEINSTALL_DO_SETUID
	chmod 4755 $(DESTDIR)$(bindir)/umount
endif

INSTALL_EXEC_HOOKS += install-exec-hook-mount
endif # BUILD_MOUNT


if BUILD_SWAPON
sbin_PROGRAMS += swapon swapoff
dist_man_MANS += \
	sys-utils/swapoff.8 \
	sys-utils/swapon.8

swapon_SOURCES = \
	sys-utils/swapon.c \
	sys-utils/swapon-common.c \
	sys-utils/swapon-common.h \
	lib/swapprober.c \
	include/swapprober.h
swapon_CFLAGS = $(AM_CFLAGS) \
	-I$(ul_libblkid_incdir) \
	-I$(ul_libmount_incdir) \
	-I$(ul_libsmartcols_incdir)
swapon_LDADD = $(LDADD) \
	libblkid.la \
	libcommon.la \
	libmount.la \
	libsmartcols.la

swapoff_SOURCES = \
	sys-utils/swapoff.c \
	sys-utils/swapon-common.c \
	sys-utils/swapon-common.h \
	lib/swapprober.c \
	include/swapprober.h
swapoff_CFLAGS = $(AM_CFLAGS) \
	-I$(ul_libblkid_incdir) \
	-I$(ul_libmount_incdir)
swapoff_LDADD = $(LDADD) \
	libmount.la \
	libblkid.la \
	libcommon.la
endif

if BUILD_LSCPU
usrbin_exec_PROGRAMS += lscpu
lscpu_SOURCES = \
	sys-utils/lscpu.c \
	sys-utils/lscpu.h \
	sys-utils/lscpu-arm.c \
	sys-utils/lscpu-dmi.c
lscpu_LDADD = $(LDADD) libcommon.la libsmartcols.la $(RTAS_LIBS)
lscpu_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
dist_man_MANS += sys-utils/lscpu.1
endif

if BUILD_CHCPU
sbin_PROGRAMS += chcpu
chcpu_SOURCES = sys-utils/chcpu.c
chcpu_LDADD = $(LDADD) libcommon.la
dist_man_MANS += sys-utils/chcpu.8
endif

if BUILD_WDCTL
bin_PROGRAMS += wdctl
dist_man_MANS += sys-utils/wdctl.8
wdctl_SOURCES = sys-utils/wdctl.c
wdctl_LDADD = $(LDADD) libcommon.la libsmartcols.la
wdctl_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
endif

if BUILD_MOUNTPOINT
bin_PROGRAMS += mountpoint
mountpoint_LDADD = $(LDADD) libmount.la
mountpoint_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)
dist_man_MANS += sys-utils/mountpoint.1
mountpoint_SOURCES = sys-utils/mountpoint.c
endif

if BUILD_FALLOCATE
usrbin_exec_PROGRAMS += fallocate
fallocate_SOURCES = sys-utils/fallocate.c
fallocate_LDADD = $(LDADD) libcommon.la
dist_man_MANS += sys-utils/fallocate.1
endif

if BUILD_PIVOT_ROOT
sbin_PROGRAMS += pivot_root
dist_man_MANS += sys-utils/pivot_root.8
pivot_root_SOURCES = sys-utils/pivot_root.c
endif

if BUILD_SWITCH_ROOT
sbin_PROGRAMS += switch_root
dist_man_MANS += sys-utils/switch_root.8
switch_root_SOURCES = sys-utils/switch_root.c
endif

if BUILD_UNSHARE
usrbin_exec_PROGRAMS += unshare
dist_man_MANS += sys-utils/unshare.1
unshare_SOURCES = sys-utils/unshare.c
unshare_LDADD = $(LDADD) libcommon.la
unshare_CFLAGS = $(AM_CFLAGS) -I$(ul_libmount_incdir)

if HAVE_STATIC_UNSHARE
usrbin_exec_PROGRAMS += unshare.static
unshare_static_SOURCES = $(unshare_SOURCES)
unshare_static_LDFLAGS = -all-static
unshare_static_LDADD = $(unshare_LDADD)
unshare_static_CFLAGS = $(unshare_CFLAGS)
endif
endif

if BUILD_NSENTER
usrbin_exec_PROGRAMS += nsenter
dist_man_MANS += sys-utils/nsenter.1
nsenter_SOURCES = sys-utils/nsenter.c
nsenter_LDADD = $(LDADD) libcommon.la $(SELINUX_LIBS)

if HAVE_STATIC_NSENTER
usrbin_exec_PROGRAMS += nsenter.static
nsenter_static_SOURCES = $(nsenter_SOURCES)
nsenter_static_LDFLAGS = -all-static
nsenter_static_LDADD = $(nsenter_LDADD)
endif
endif

if BUILD_HWCLOCK
sbin_PROGRAMS += hwclock
dist_man_MANS += sys-utils/hwclock.8
PATHFILES += sys-utils/hwclock.8
hwclock_SOURCES = \
	sys-utils/hwclock.c \
	sys-utils/hwclock.h \
	sys-utils/hwclock-cmos.c
if LINUX
hwclock_SOURCES += sys-utils/hwclock-rtc.c
endif
hwclock_LDADD = $(LDADD) libcommon.la -lm
if HAVE_AUDIT
hwclock_LDADD += -laudit
endif
endif # BUILD_HWCLOCK

if BUILD_SETPRIV
usrbin_exec_PROGRAMS += setpriv
dist_man_MANS += sys-utils/setpriv.1
setpriv_SOURCES = sys-utils/setpriv.c
setpriv_LDADD = $(LDADD) -lcap-ng libcommon.la
endif
