Home | History | Annotate | Line # | Download | only in tmux
      1 # $NetBSD: Makefile,v 1.46 2026/05/29 15:11:48 christos Exp $
      2 
      3 .include <bsd.own.mk>
      4 
      5 SRCDIR=		${NETBSDSRCDIR}/external/bsd/tmux/dist
      6 .PATH:		${SRCDIR}
      7 .PATH:		${SRCDIR}/compat
      8 
      9 BINDIR=		/usr/bin
     10 PROG=		tmux
     11 MAN=		tmux.1
     12 
     13 WARNS?=	4
     14 
     15 SRCS+= \
     16 alerts.c \
     17 arguments.c \
     18 attributes.c \
     19 cfg.c \
     20 client.c \
     21 cmd-attach-session.c \
     22 cmd-bind-key.c \
     23 cmd-break-pane.c \
     24 cmd-capture-pane.c \
     25 cmd-choose-tree.c \
     26 cmd-command-prompt.c \
     27 cmd-confirm-before.c \
     28 cmd-copy-mode.c \
     29 cmd-detach-client.c \
     30 cmd-display-menu.c \
     31 cmd-display-message.c \
     32 cmd-display-panes.c \
     33 cmd-find-window.c \
     34 cmd-find.c \
     35 cmd-if-shell.c \
     36 cmd-join-pane.c \
     37 cmd-kill-pane.c \
     38 cmd-kill-server.c \
     39 cmd-kill-session.c \
     40 cmd-kill-window.c \
     41 cmd-list-buffers.c \
     42 cmd-list-clients.c \
     43 cmd-list-keys.c \
     44 cmd-list-panes.c \
     45 cmd-list-sessions.c \
     46 cmd-list-windows.c \
     47 cmd-load-buffer.c \
     48 cmd-lock-server.c \
     49 cmd-move-window.c \
     50 cmd-new-session.c \
     51 cmd-new-window.c \
     52 cmd-parse.y \
     53 cmd-paste-buffer.c \
     54 cmd-pipe-pane.c \
     55 cmd-queue.c \
     56 cmd-refresh-client.c \
     57 cmd-rename-session.c \
     58 cmd-rename-window.c \
     59 cmd-resize-pane.c \
     60 cmd-resize-window.c \
     61 cmd-respawn-pane.c \
     62 cmd-respawn-window.c \
     63 cmd-rotate-window.c \
     64 cmd-run-shell.c \
     65 cmd-save-buffer.c \
     66 cmd-select-layout.c \
     67 cmd-select-pane.c \
     68 cmd-select-window.c \
     69 cmd-send-keys.c \
     70 cmd-server-access.c \
     71 cmd-set-buffer.c \
     72 cmd-set-environment.c \
     73 cmd-set-option.c \
     74 cmd-show-environment.c \
     75 cmd-show-messages.c \
     76 cmd-show-options.c \
     77 cmd-show-prompt-history.c \
     78 cmd-source-file.c \
     79 cmd-split-window.c \
     80 cmd-swap-pane.c \
     81 cmd-swap-window.c \
     82 cmd-switch-client.c \
     83 cmd-unbind-key.c \
     84 cmd-wait-for.c \
     85 cmd.c \
     86 colour.c \
     87 control-notify.c \
     88 control.c \
     89 environ.c \
     90 file.c \
     91 format-draw.c \
     92 format.c \
     93 grid-reader.c \
     94 grid-view.c \
     95 grid.c \
     96 hyperlinks.c \
     97 image.c \
     98 image-sixel.c \
     99 input-keys.c \
    100 input.c \
    101 job.c \
    102 key-bindings.c \
    103 key-string.c \
    104 layout-custom.c \
    105 layout-set.c \
    106 layout.c \
    107 log.c \
    108 menu.c \
    109 mode-tree.c \
    110 names.c \
    111 notify.c \
    112 options-table.c \
    113 options.c \
    114 osdep-netbsd.c \
    115 paste.c \
    116 popup.c \
    117 proc.c \
    118 regsub.c \
    119 resize.c \
    120 screen-redraw.c \
    121 screen-write.c \
    122 screen.c \
    123 server-acl.c \
    124 server-client.c \
    125 server-fn.c \
    126 server.c \
    127 session.c \
    128 spawn.c \
    129 status.c \
    130 style.c \
    131 tmux.c \
    132 tty-acs.c \
    133 tty-features.c \
    134 tty-keys.c \
    135 tty-term.c \
    136 tty.c \
    137 utf8.c \
    138 utf8-combined.c \
    139 window-buffer.c \
    140 window-client.c \
    141 window-clock.c \
    142 window-copy.c \
    143 window-customize.c \
    144 window-tree.c \
    145 window.c \
    146 xmalloc.c
    147 
    148 SRCS+=	utempter.c
    149 CPPFLAGS+=-DSUPPORT_UTMP -DSUPPORT_UTMPX
    150 
    151 # Files in compat/
    152 SRCS+=		imsg-buffer.c
    153 SRCS+=		imsg.c
    154 SRCS+=		fdforkpty.c
    155 SRCS+=		freezero.c
    156 SRCS+=		explicit_bzero.c
    157 SRCS+=		htonll.c
    158 SRCS+=		ntohll.c
    159 SRCS+=		recallocarray.c
    160 SRCS+=		getdtablecount.c
    161 #SRCS+=		strtonum.c
    162 #SRCS+=		unvis.c
    163 #SRCS+=		vis.c
    164 
    165 CPPFLAGS+=	-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 # ENABLE_SIXEL, HAVE_REALLOCARRAY, HAVE_TREE_H, HAVE_UTEMPTER, 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.
    184 CPPFLAGS+=	\
    185 -DENABLE_SIXEL=1 \
    186 -DHAVE_ASPRINTF=1 \
    187 -DHAVE_B64_NTOP=1 \
    188 -DHAVE_BITSTRING_H=1 \
    189 -DHAVE_BSD_GETOPT=1 \
    190 -DHAVE_CFMAKERAW=1 \
    191 -DHAVE_CLOCK_GETTIME=1 \
    192 -DHAVE_CLOSEFROM=1 \
    193 -DHAVE_CURSES_H=1 \
    194 -DHAVE_DAEMON=1 \
    195 -DHAVE_DIRENT_H=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_MEMMEM=1 \
    209 -DHAVE_MEMORY_H=1 \
    210 -DHAVE_PATHS_H=1 \
    211 -DHAVE_PROC_PID=1 \
    212 -DHAVE_QUEUE_H=1 \
    213 -DHAVE_REALLOCARRAY=1 \
    214 -DHAVE_SETENV=1 \
    215 -DHAVE_SETPROCTITLE=1 \
    216 -DHAVE_STDINT_H=1 \
    217 -DHAVE_STDLIB_H=1 \
    218 -DHAVE_STRCASESTR=1 \
    219 -DHAVE_STRINGS_H=1 \
    220 -DHAVE_STRING_H=1 \
    221 -DHAVE_STRLCAT=1 \
    222 -DHAVE_STRLCPY=1 \
    223 -DHAVE_STRNDUP=1 \
    224 -DHAVE_STRSEP=1 \
    225 -DHAVE_STRTONUM=1 \
    226 -DHAVE_SYSCONF=1 \
    227 -DHAVE_SYS_DIR_H=1 \
    228 -DHAVE_SYS_SIGNAME=1 \
    229 -DHAVE_SYS_STAT_H=1 \
    230 -DHAVE_SYS_TREE_H=1 \
    231 -DHAVE_SYS_TYPES_H=1 \
    232 -DHAVE_TIPARM=1 \
    233 -DHAVE_TREE_H=1 \
    234 -DHAVE_UNISTD_H=1 \
    235 -DHAVE_UTEMPTER=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.6b\" \
    243 -DPACKAGE_TARNAME=\"tmux\" \
    244 -DPACKAGE_URL=\"\" \
    245 -DPACKAGE_VERSION=\"3.6b\" \
    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.6b"' \
    251 -DVERSION=\"3.6b\" \
    252 -D_ALL_SOURCE=1 \
    253 -D_GNU_SOURCE=1 \
    254 -D_NETBSD_SOURCE \
    255 -D_OPENBSD_SOURCE \
    256 -D_POSIX_PTHREAD_SEMANTICS=1 \
    257 -D_TANDEM_SOURCE=1 \
    258 -D__EXTENSIONS__=1
    259 
    260 LDADD+=		-levent -lterminfo -lutil -lm
    261 DPADD+=		${LIBEVENT} ${LIBTERMINFO} ${LIBUTIL}
    262 
    263 COPTS.format.c+=	-Wno-format-nonliteral
    264 COPTS.input.c+=		-Wno-sign-compare -Wno-pointer-sign
    265 COPTS.mode-tree.c+=	-Wno-error=stack-protector
    266 COPTS.tty.c+=		-Wno-pointer-sign
    267 COPTS.utempter.c+=	${CC_WNO_STRINGOP_TRUNCATION}
    268 COPTS.window-copy.c+=	${CC_WNO_MAYBE_UNINITIALIZED} -Wno-pointer-sign
    269 COPTS.cmd-run-shell.c += ${CC_WNO_MAYBE_UNINITIALIZED}
    270 
    271 # The man page needs substitutions, but the dist file usurps the
    272 # output file suffix.
    273 .NOPATH: tmux.1
    274 tmux.1: $(SRCDIR)/tmux.1
    275 	sed -e 's|@SYSCONFDIR@|/etc|g' $> > $@
    276 
    277 CLEANDIRFILES+=	tmux.1
    278 
    279 .include <bsd.prog.mk>
    280