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_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_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 sys-utils/lp.h
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_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
lsns_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_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

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

INSTALL_EXEC_HOOKS += install-exec-hook-mount
endif
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-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
