1# $NetBSD: Makefile,v 1.36 2024/06/23 06:27:38 wiz Exp $ 2 3.include <bsd.own.mk> 4 5SRCDIR= ${NETBSDSRCDIR}/external/bsd/tmux/dist 6.PATH: ${SRCDIR} 7.PATH: ${SRCDIR}/compat 8 9BINDIR= /usr/bin 10PROG= tmux 11MAN= tmux.1 12 13WARNS?= 4 14 15SRCS+= \ 16alerts.c \ 17arguments.c \ 18attributes.c \ 19cfg.c \ 20client.c \ 21cmd-attach-session.c \ 22cmd-bind-key.c \ 23cmd-break-pane.c \ 24cmd-capture-pane.c \ 25cmd-choose-tree.c \ 26cmd-command-prompt.c \ 27cmd-confirm-before.c \ 28cmd-copy-mode.c \ 29cmd-detach-client.c \ 30cmd-display-menu.c \ 31cmd-display-message.c \ 32cmd-display-panes.c \ 33cmd-find-window.c \ 34cmd-find.c \ 35cmd-if-shell.c \ 36cmd-join-pane.c \ 37cmd-kill-pane.c \ 38cmd-kill-server.c \ 39cmd-kill-session.c \ 40cmd-kill-window.c \ 41cmd-list-buffers.c \ 42cmd-list-clients.c \ 43cmd-list-keys.c \ 44cmd-list-panes.c \ 45cmd-list-sessions.c \ 46cmd-list-windows.c \ 47cmd-load-buffer.c \ 48cmd-lock-server.c \ 49cmd-move-window.c \ 50cmd-new-session.c \ 51cmd-new-window.c \ 52cmd-parse.y \ 53cmd-paste-buffer.c \ 54cmd-pipe-pane.c \ 55cmd-queue.c \ 56cmd-refresh-client.c \ 57cmd-rename-session.c \ 58cmd-rename-window.c \ 59cmd-resize-pane.c \ 60cmd-resize-window.c \ 61cmd-respawn-pane.c \ 62cmd-respawn-window.c \ 63cmd-rotate-window.c \ 64cmd-run-shell.c \ 65cmd-save-buffer.c \ 66cmd-select-layout.c \ 67cmd-select-pane.c \ 68cmd-select-window.c \ 69cmd-send-keys.c \ 70cmd-server-access.c \ 71cmd-set-buffer.c \ 72cmd-set-environment.c \ 73cmd-set-option.c \ 74cmd-show-environment.c \ 75cmd-show-messages.c \ 76cmd-show-options.c \ 77cmd-show-prompt-history.c \ 78cmd-source-file.c \ 79cmd-split-window.c \ 80cmd-swap-pane.c \ 81cmd-swap-window.c \ 82cmd-switch-client.c \ 83cmd-unbind-key.c \ 84cmd-wait-for.c \ 85cmd.c \ 86colour.c \ 87control-notify.c \ 88control.c \ 89environ.c \ 90file.c \ 91format-draw.c \ 92format.c \ 93grid-reader.c \ 94grid-view.c \ 95grid.c \ 96hyperlinks.c \ 97image.c \ 98image-sixel.c \ 99input-keys.c \ 100input.c \ 101job.c \ 102key-bindings.c \ 103key-string.c \ 104layout-custom.c \ 105layout-set.c \ 106layout.c \ 107log.c \ 108menu.c \ 109mode-tree.c \ 110names.c \ 111notify.c \ 112options-table.c \ 113options.c \ 114osdep-netbsd.c \ 115paste.c \ 116popup.c \ 117proc.c \ 118regsub.c \ 119resize.c \ 120screen-redraw.c \ 121screen-write.c \ 122screen.c \ 123server-acl.c \ 124server-client.c \ 125server-fn.c \ 126server.c \ 127session.c \ 128spawn.c \ 129status.c \ 130style.c \ 131tmux.c \ 132tty-acs.c \ 133tty-features.c \ 134tty-keys.c \ 135tty-term.c \ 136tty.c \ 137utf8.c \ 138utf8-combined.c \ 139window-buffer.c \ 140window-client.c \ 141window-clock.c \ 142window-copy.c \ 143window-customize.c \ 144window-tree.c \ 145window.c \ 146xmalloc.c 147 148SRCS+= utempter.c 149CPPFLAGS+=-DSUPPORT_UTMP -DSUPPORT_UTMPX 150 151# Files in compat/ 152SRCS+= imsg-buffer.c 153SRCS+= imsg.c 154SRCS+= fdforkpty.c 155SRCS+= freezero.c 156SRCS+= explicit_bzero.c 157SRCS+= htonll.c 158SRCS+= ntohll.c 159SRCS+= recallocarray.c 160SRCS+= getdtablecount.c 161#SRCS+= strtonum.c 162#SRCS+= unvis.c 163#SRCS+= vis.c 164 165CPPFLAGS+= -I${SRCDIR} -I${.CURDIR} 166 167# The following flags have been extracted from the compiler command-line 168# generated by Automake and Autoconf when building tmux under NetBSD. 169# Would be nicer to stick this in a config.h file, but the upstream code 170# does not use one at this moment. 171 172# HAVE_REALLOCARRAY, HAVE_TREE_H, HAVE_VIS added manually 173# 174# HAVE_BSD_GETOPT: 175# Use the NetBSD libc getopt functions instead of the compat functions 176# provided by tmux (done using a local patch). 177# 178# HAVE_VIS: 179# tmux assumes the OpenBSD variant of strnvis which has arguments 180# swapped compared to FreeBSD & NetBSD, see 181# https://github.com/tmux/tmux/pull/4015 182# We have a local patch that adapts the call to the NetBSD version, 183# so we don't need to use the compat code provided by tmux. 184CPPFLAGS+= \ 185-DHAVE_ASPRINTF=1 \ 186-DHAVE_B64_NTOP=1 \ 187-DHAVE_BITSTRING_H=1 \ 188-DHAVE_BSD_GETOPT=1 \ 189-DHAVE_CFMAKERAW=1 \ 190-DHAVE_CLOCK_GETTIME=1 \ 191-DHAVE_CLOSEFROM=1 \ 192-DHAVE_CURSES_H=1 \ 193-DHAVE_DAEMON=1 \ 194-DHAVE_DIRENT_H=1 \ 195-DENABLE_SIXEL=1 \ 196-DHAVE_EVENT2_EVENT_H=1 \ 197-DHAVE_FCNTL_CLOSEM=1 \ 198-DHAVE_FCNTL_H=1 \ 199-DHAVE_FGETLN=1 \ 200-DHAVE_FLOCK=1 \ 201-DHAVE_FORKPTY=1 \ 202-DHAVE_GETDTABLESIZE=1 \ 203-DHAVE_GETLINE=1 \ 204-DHAVE_GETPEEREID=1 \ 205-DHAVE_GETPROGNAME=1 \ 206-DHAVE_INTTYPES_H=1 \ 207-DHAVE_LIBM=1 \ 208-DHAVE_LIBPROC_H=1 \ 209-DHAVE_MEMMEM=1 \ 210-DHAVE_MEMORY_H=1 \ 211-DHAVE_PATHS_H=1 \ 212-DHAVE_PROC_PID=1 \ 213-DHAVE_QUEUE_H=1 \ 214-DHAVE_REALLOCARRAY=1 \ 215-DHAVE_SETENV=1 \ 216-DHAVE_SETPROCTITLE=1 \ 217-DHAVE_STDINT_H=1 \ 218-DHAVE_STDLIB_H=1 \ 219-DHAVE_STRCASESTR=1 \ 220-DHAVE_STRINGS_H=1 \ 221-DHAVE_STRING_H=1 \ 222-DHAVE_STRLCAT=1 \ 223-DHAVE_STRLCPY=1 \ 224-DHAVE_STRNDUP=1 \ 225-DHAVE_STRSEP=1 \ 226-DHAVE_STRTONUM=1 \ 227-DHAVE_SYSCONF=1 \ 228-DHAVE_SYS_DIR_H=1 \ 229-DHAVE_SYS_SIGNAME=1 \ 230-DHAVE_SYS_STAT_H=1 \ 231-DHAVE_SYS_TREE_H=1 \ 232-DHAVE_SYS_TYPES_H=1 \ 233-DHAVE_TIPARM=1 \ 234-DHAVE_TREE_H=1 \ 235-DHAVE_UNISTD_H=1 \ 236-DHAVE_UTIL_H=1 \ 237-DHAVE_VIS=1 \ 238-DHAVE___PROGNAME=1 \ 239-DPACKAGE=\"tmux\" \ 240-DPACKAGE_BUGREPORT=\"\" \ 241-DPACKAGE_NAME=\"tmux\" \ 242-DPACKAGE_STRING=\"tmux\ 3.4\" \ 243-DPACKAGE_TARNAME=\"tmux\" \ 244-DPACKAGE_URL=\"\" \ 245-DPACKAGE_VERSION=\"3.4\" \ 246-DSTDC_HEADERS=1 \ 247-DTMUX_CONF='"/etc/tmux.conf:~/.tmux.conf:$XDG_CONFIG_HOME/tmux/tmux.conf:~/.config/tmux/tmux.conf"' \ 248-DTMUX_LOCK_CMD='"lock -np"' \ 249-DTMUX_TERM='"tmux-256color"' \ 250-DTMUX_VERSION='"3.4"' \ 251-DVERSION=\"3.4\" \ 252-D_ALL_SOURCE=1 \ 253-D_GNU_SOURCE=1 \ 254-D_OPENBSD_SOURCE \ 255-D_POSIX_PTHREAD_SEMANTICS=1 \ 256-D_TANDEM_SOURCE=1 \ 257-D__EXTENSIONS__=1 258 259LDADD+= -levent -lterminfo -lutil -lm 260DPADD+= ${LIBEVENT} ${LIBTERMINFO} ${LIBUTIL} 261 262COPTS.format.c += -Wno-format-nonliteral 263COPTS.input.c += -Wno-sign-compare -Wno-pointer-sign 264COPTS.tty.c += -Wno-pointer-sign 265COPTS.utempter.c+= ${CC_WNO_STRINGOP_TRUNCATION} 266COPTS.window-copy.c+= ${CC_WNO_MAYBE_UNINITIALIZED} -Wno-pointer-sign 267 268# The man page needs substitutions, but the dist file usurps the 269# output file suffix. 270.NOPATH: tmux.1 271tmux.1: $(SRCDIR)/tmux.1 272 sed -e 's|@SYSCONFDIR@|/etc|g' $> > $@ 273 274CLEANDIRFILES+= tmux.1 275 276.include <bsd.prog.mk> 277