if BUILD_SCRIPT
usrbin_exec_PROGRAMS += script
dist_man_MANS += term-utils/script.1
script_SOURCES = term-utils/script.c lib/monotonic.c
script_CFLAGS = $(AM_CFLAGS) -Wno-format-y2k
script_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS)
if HAVE_UTIL
script_LDADD += -lutil
endif
if HAVE_UTEMPTER
script_LDADD += -lutempter
endif

check_PROGRAMS += test_script
test_script_SOURCES = $(script_SOURCES)
test_script_LDADD = $(script_LDADD)
test_script_CFLAGS = -DTEST_SCRIPT $(logger_CFLAGS)
endif # BUILD_SCRIPT

if BUILD_SCRIPTREPLAY
usrbin_exec_PROGRAMS += scriptreplay
dist_man_MANS += term-utils/scriptreplay.1
scriptreplay_SOURCES = term-utils/scriptreplay.c
scriptreplay_LDADD = $(LDADD) libcommon.la $(MATH_LIBS)
endif # BUILD_SCRIPTREPLAY


if BUILD_AGETTY
sbin_PROGRAMS += agetty
dist_man_MANS += term-utils/agetty.8
agetty_SOURCES = term-utils/agetty.c
agetty_LDADD = $(LDADD) libcommon.la
if BSD
agetty_LDADD += -lutil
endif
endif # BUILD_AGETTY


if BUILD_SETTERM
usrbin_exec_PROGRAMS += setterm
dist_man_MANS += term-utils/setterm.1
setterm_SOURCES = term-utils/setterm.c
setterm_CFLAGS = $(AM_CFLAGS)
setterm_LDADD = $(LDADD) libcommon.la
if HAVE_TINFO
setterm_LDADD += $(TINFO_LIBS)
setterm_CFLAGS += $(TINFO_CFLAGS)
else
setterm_LDADD += $(NCURSES_LIBS)
setterm_CFLAGS += $(NCURSES_CFLAGS)
endif
endif


if BUILD_MESG
usrbin_exec_PROGRAMS += mesg
dist_man_MANS += term-utils/mesg.1
mesg_SOURCES = term-utils/mesg.c
endif


if BUILD_WALL
usrbin_exec_PROGRAMS += wall
wall_SOURCES = \
	term-utils/wall.c \
	term-utils/ttymsg.c \
	term-utils/ttymsg.h
dist_man_MANS += term-utils/wall.1
wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
wall_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
wall_LDADD = $(LDADD) libcommon.la
if USE_TTY_GROUP
if MAKEINSTALL_DO_CHOWN
install-exec-hook-wall::
	chgrp tty $(DESTDIR)$(usrbin_execdir)/wall
	chmod g+s $(DESTDIR)$(usrbin_execdir)/wall

INSTALL_EXEC_HOOKS += install-exec-hook-wall
endif
endif
endif # BUILD_WALL


if BUILD_WRITE
usrbin_exec_PROGRAMS += write
dist_man_MANS += term-utils/write.1
write_SOURCES = term-utils/write.c
write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
write_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
write_LDADD = $(LDADD) libcommon.la

if USE_TTY_GROUP
if MAKEINSTALL_DO_CHOWN
install-exec-hook-write::
	chgrp tty $(DESTDIR)$(usrbin_execdir)/write
	chmod g+s $(DESTDIR)$(usrbin_execdir)/write

INSTALL_EXEC_HOOKS += install-exec-hook-write
endif
endif
endif # BUILD_WRITE
