# $NetBSD: Makefile,v 1.28 2022/01/23 16:47:46 christos Exp $

.include <bsd.own.mk>

SRCDIR=		${NETBSDSRCDIR}/external/bsd/tmux/dist
.PATH:		${SRCDIR}
.PATH:		${SRCDIR}/compat

BINDIR=		/usr/bin
PROG=		tmux
MAN=		tmux.1

WARNS?=	4

SRCS+= \
alerts.c \
arguments.c \
attributes.c \
cfg.c \
client.c \
cmd-attach-session.c \
cmd-bind-key.c \
cmd-break-pane.c \
cmd-capture-pane.c \
cmd-choose-tree.c \
cmd-command-prompt.c \
cmd-confirm-before.c \
cmd-copy-mode.c \
cmd-detach-client.c \
cmd-display-menu.c \
cmd-display-message.c \
cmd-display-panes.c \
cmd-find-window.c \
cmd-find.c \
cmd-if-shell.c \
cmd-join-pane.c \
cmd-kill-pane.c \
cmd-kill-server.c \
cmd-kill-session.c \
cmd-kill-window.c \
cmd-list-buffers.c \
cmd-list-clients.c \
cmd-list-keys.c \
cmd-list-panes.c \
cmd-list-sessions.c \
cmd-list-windows.c \
cmd-load-buffer.c \
cmd-lock-server.c \
cmd-move-window.c \
cmd-new-session.c \
cmd-new-window.c \
cmd-parse.y \
cmd-paste-buffer.c \
cmd-pipe-pane.c \
cmd-queue.c \
cmd-refresh-client.c \
cmd-rename-session.c \
cmd-rename-window.c \
cmd-resize-pane.c \
cmd-resize-window.c \
cmd-respawn-pane.c \
cmd-respawn-window.c \
cmd-rotate-window.c \
cmd-run-shell.c \
cmd-save-buffer.c \
cmd-select-layout.c \
cmd-select-pane.c \
cmd-select-window.c \
cmd-send-keys.c \
cmd-set-buffer.c \
cmd-set-environment.c \
cmd-set-option.c \
cmd-show-environment.c \
cmd-show-messages.c \
cmd-show-options.c \
cmd-source-file.c \
cmd-split-window.c \
cmd-swap-pane.c \
cmd-swap-window.c \
cmd-switch-client.c \
cmd-unbind-key.c \
cmd-wait-for.c \
cmd.c \
colour.c \
control-notify.c \
control.c \
environ.c \
file.c \
format-draw.c \
format.c \
grid-reader.c \
grid-view.c \
grid.c \
input-keys.c \
input.c \
job.c \
key-bindings.c \
key-string.c \
layout-custom.c \
layout-set.c \
layout.c \
log.c \
menu.c \
mode-tree.c \
names.c \
notify.c \
options-table.c \
options.c \
osdep-netbsd.c \
paste.c \
popup.c \
proc.c \
regsub.c \
resize.c \
screen-redraw.c \
screen-write.c \
screen.c \
server-client.c \
server-fn.c \
server.c \
session.c \
spawn.c \
status.c \
style.c \
tmux.c \
tty-acs.c \
tty-features.c \
tty-keys.c \
tty-term.c \
tty.c \
utf8.c \
window-buffer.c \
window-client.c \
window-clock.c \
window-copy.c \
window-customize.c \
window-tree.c \
window.c \
xmalloc.c

SRCS+=	utempter.c
CPPFLAGS+=-DSUPPORT_UTMP -DSUPPORT_UTMPX

# Files in compat/
SRCS+=		imsg-buffer.c
SRCS+=		imsg.c
SRCS+=		fdforkpty.c
SRCS+=		freezero.c
SRCS+=		explicit_bzero.c
SRCS+=		recallocarray.c
SRCS+=		getdtablecount.c
#SRCS+=		strtonum.c
#SRCS+=		unvis.c
#SRCS+=		vis.c

CPPFLAGS+=	-I${SRCDIR} -I${.CURDIR}

# The following flags have been extracted from the compiler command-line
# generated by Automake and Autoconf when building tmux under NetBSD.
# Would be nicer to stick this in a config.h file, but the upstream code
# does not use one at this moment.

CPPFLAGS+=	\
-DHAVE_ASPRINTF=1 \
-DHAVE_B64_NTOP=1 \
-DHAVE_BITSTRING_H=1 \
-DHAVE_BSD_GETOPT=1 \
-DHAVE_CFMAKERAW=1 \
-DHAVE_CFMAKERAWEP=1 \
-DHAVE_CLOCK_GETTIME=1 \
-DHAVE_CLOSEFROM=1 \
-DHAVE_CURSES_H=1 \
-DHAVE_DAEMON=1 \
-DHAVE_DIRENT_H=1 \
-DHAVE_EVENT2_EVENT_H=1 \
-DHAVE_FCNTL_CLOSEM=1 \
-DHAVE_FCNTL_H=1 \
-DHAVE_FGETLN=1 \
-DHAVE_FLOCK=1 \
-DHAVE_FORKPTY=1 \
-DHAVE_FPARSELN=1 \
-DHAVE_GETDTABLESIZE=1 \
-DHAVE_GETLINE=1 \
-DHAVE_GETOPT=1 \
-DHAVE_GETPROGNAME=1 \
-DHAVE_INTTYPES_H=1 \
-DHAVE_LIBM=1 \
-DHAVE_LIBPROC_H=1 \
-DHAVE_MEMMEM=1 \
-DHAVE_MEMORY_H=1 \
-DHAVE_PATHS_H=1 \
-DHAVE_PROC_PID=1 \
-DHAVE_QUEUE_H=1 \
-DHAVE_REALLOCARRAY=1 \
-DHAVE_SETENV=1 \
-DHAVE_SETPROCTITLE=1 \
-DHAVE_STDINT_H=1 \
-DHAVE_STDLIB_H=1 \
-DHAVE_STRCASESTR=1 \
-DHAVE_STRINGS_H=1 \
-DHAVE_STRING_H=1 \
-DHAVE_STRLCAT=1 \
-DHAVE_STRLCPY=1 \
-DHAVE_STRNDUP=1 \
-DHAVE_STRSEP=1 \
-DHAVE_STRTONUM=1 \
-DHAVE_SYSCONF=1 \
-DHAVE_SYS_DIR_H=1 \
-DHAVE_SYS_SIGNAME=1 \
-DHAVE_SYS_STAT_H=1 \
-DHAVE_SYS_TREE_H=1 \
-DHAVE_SYS_TYPES_H=1 \
-DHAVE_TREE_H=1 \
-DHAVE_UNISTD_H=1 \
-DHAVE_UTEMPTER=1 \
-DHAVE_UTIL_H=1 \
-DHAVE_VIS=1 \
-DHAVE___PROGNAME=1 \
-DPACKAGE=\"tmux\" \
-DPACKAGE_BUGREPORT=\"\" \
-DPACKAGE_NAME=\"tmux\" \
-DPACKAGE_STRING=\"tmux\ 3.2a\" \
-DPACKAGE_TARNAME=\"tmux\" \
-DPACKAGE_URL=\"\" \
-DPACKAGE_VERSION=\"3.2a\" \
-DSTDC_HEADERS=1 \
-DTMUX_CONF="\"/etc/tmux.conf:~/.tmux.conf:~/.config/tmux/tmux.conf\"" \
-DTMUX_VERSION='"3.2a"' \
-DVERSION=\"3.2a\" \
-D_ALL_SOURCE=1 \
-D_GNU_SOURCE=1 \
-D_NETBSD_SOURCE \
-D_OPENBSD_SOURCE \
-D_POSIX_PTHREAD_SEMANTICS=1 \
-D_TANDEM_SOURCE=1 \
-D_XOPEN_SOURCE=500 \
-D__EXTENSIONS__=1

LDADD+=		-levent -lterminfo -lutil -lm
DPADD+=		${LIBEVENT} ${LIBTERMINFO} ${LIBUTIL}

COPTS.format.c += -Wno-format-nonliteral
COPTS.utempter.c+=	${GCC_NO_STRINGOP_TRUNCATION}
COPTS.window-copy.c+=	${GCC_NO_MAYBE_UNINITIALIZED}

.include <bsd.prog.mk>
