1# Obvious program stuff. 2bin_PROGRAMS = tmux 3CLEANFILES = tmux.1.mdoc tmux.1.man cmd-parse.c 4 5# Distribution tarball options. 6EXTRA_DIST = \ 7 CHANGES README README.ja COPYING example_tmux.conf \ 8 osdep-*.c mdoc2man.awk tmux.1 9dist_EXTRA_tmux_SOURCES = compat/*.[ch] 10 11# Preprocessor flags. 12AM_CPPFLAGS += @XOPEN_DEFINES@ \ 13 -DTMUX_VERSION='"@VERSION@"' \ 14 -DTMUX_CONF='"$(sysconfdir)/tmux.conf:~/.tmux.conf:$$XDG_CONFIG_HOME/tmux/tmux.conf:~/.config/tmux/tmux.conf"' \ 15 -DTMUX_LOCK_CMD='"@DEFAULT_LOCK_CMD@"' \ 16 -DTMUX_TERM='"@DEFAULT_TERM@"' 17 18# Additional object files. 19LDADD = $(LIBOBJS) 20 21# Set flags for gcc. 22if IS_GCC 23AM_CFLAGS += -std=gnu99 -O2 24if IS_DEBUG 25AM_CFLAGS += -g 26AM_CFLAGS += -Wno-long-long -Wall -W -Wformat=2 27AM_CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations 28AM_CFLAGS += -Wwrite-strings -Wshadow -Wpointer-arith -Wsign-compare 29AM_CFLAGS += -Wundef -Wbad-function-cast -Winline -Wcast-align 30AM_CFLAGS += -Wdeclaration-after-statement -Wno-pointer-sign -Wno-attributes 31AM_CFLAGS += -Wno-unused-result -Wno-format-y2k 32if IS_DARWIN 33AM_CFLAGS += -Wno-deprecated-declarations -Wno-cast-align 34endif 35AM_CPPFLAGS += -DDEBUG 36endif 37AM_CPPFLAGS += -iquote. 38endif 39 40# Set flags for Solaris. 41if IS_SUNOS 42if IS_GCC 43AM_CPPFLAGS += -D_XPG6 44else 45AM_CPPFLAGS += -D_XPG4_2 46endif 47endif 48 49# Set flags for Sun CC. 50if IS_SUNCC 51AM_CFLAGS += -erroff=E_EMPTY_DECLARATION 52endif 53 54# Set _LINUX_SOURCE_COMPAT for AIX for malloc(0). 55if IS_AIX 56AM_CPPFLAGS += -D_LINUX_SOURCE_COMPAT=1 57endif 58 59# Set flags for NetBSD. 60if IS_NETBSD 61AM_CPPFLAGS += -D_OPENBSD_SOURCE 62endif 63 64# Set flags for Haiku. 65if IS_HAIKU 66AM_CPPFLAGS += -D_BSD_SOURCE 67endif 68 69# List of sources. 70dist_tmux_SOURCES = \ 71 alerts.c \ 72 arguments.c \ 73 attributes.c \ 74 cfg.c \ 75 client.c \ 76 cmd-attach-session.c \ 77 cmd-bind-key.c \ 78 cmd-break-pane.c \ 79 cmd-capture-pane.c \ 80 cmd-choose-tree.c \ 81 cmd-command-prompt.c \ 82 cmd-confirm-before.c \ 83 cmd-copy-mode.c \ 84 cmd-detach-client.c \ 85 cmd-display-menu.c \ 86 cmd-display-message.c \ 87 cmd-display-panes.c \ 88 cmd-find-window.c \ 89 cmd-find.c \ 90 cmd-if-shell.c \ 91 cmd-join-pane.c \ 92 cmd-kill-pane.c \ 93 cmd-kill-server.c \ 94 cmd-kill-session.c \ 95 cmd-kill-window.c \ 96 cmd-list-buffers.c \ 97 cmd-list-clients.c \ 98 cmd-list-keys.c \ 99 cmd-list-panes.c \ 100 cmd-list-sessions.c \ 101 cmd-list-windows.c \ 102 cmd-load-buffer.c \ 103 cmd-lock-server.c \ 104 cmd-move-window.c \ 105 cmd-new-session.c \ 106 cmd-new-window.c \ 107 cmd-parse.y \ 108 cmd-paste-buffer.c \ 109 cmd-pipe-pane.c \ 110 cmd-queue.c \ 111 cmd-refresh-client.c \ 112 cmd-rename-session.c \ 113 cmd-rename-window.c \ 114 cmd-resize-pane.c \ 115 cmd-resize-window.c \ 116 cmd-respawn-pane.c \ 117 cmd-respawn-window.c \ 118 cmd-rotate-window.c \ 119 cmd-run-shell.c \ 120 cmd-save-buffer.c \ 121 cmd-select-layout.c \ 122 cmd-select-pane.c \ 123 cmd-select-window.c \ 124 cmd-send-keys.c \ 125 cmd-server-access.c \ 126 cmd-set-buffer.c \ 127 cmd-set-environment.c \ 128 cmd-set-option.c \ 129 cmd-show-environment.c \ 130 cmd-show-messages.c \ 131 cmd-show-options.c \ 132 cmd-show-prompt-history.c \ 133 cmd-source-file.c \ 134 cmd-split-window.c \ 135 cmd-swap-pane.c \ 136 cmd-swap-window.c \ 137 cmd-switch-client.c \ 138 cmd-unbind-key.c \ 139 cmd-wait-for.c \ 140 cmd.c \ 141 colour.c \ 142 compat.h \ 143 control-notify.c \ 144 control.c \ 145 environ.c \ 146 file.c \ 147 format.c \ 148 format-draw.c \ 149 grid-reader.c \ 150 grid-view.c \ 151 grid.c \ 152 hyperlinks.c \ 153 input-keys.c \ 154 input.c \ 155 job.c \ 156 key-bindings.c \ 157 key-string.c \ 158 layout-custom.c \ 159 layout-set.c \ 160 layout.c \ 161 log.c \ 162 menu.c \ 163 mode-tree.c \ 164 names.c \ 165 notify.c \ 166 options-table.c \ 167 options.c \ 168 paste.c \ 169 popup.c \ 170 proc.c \ 171 regsub.c \ 172 resize.c \ 173 screen-redraw.c \ 174 screen-write.c \ 175 screen.c \ 176 server-acl.c \ 177 server-client.c \ 178 server-fn.c \ 179 server.c \ 180 session.c \ 181 spawn.c \ 182 status.c \ 183 style.c \ 184 tmux.c \ 185 tmux.h \ 186 tmux-protocol.h \ 187 tty-acs.c \ 188 tty-features.c \ 189 tty-keys.c \ 190 tty-term.c \ 191 tty.c \ 192 utf8-combined.c \ 193 utf8.c \ 194 window-buffer.c \ 195 window-client.c \ 196 window-clock.c \ 197 window-copy.c \ 198 window-customize.c \ 199 window-tree.c \ 200 window.c \ 201 xmalloc.c \ 202 xmalloc.h 203nodist_tmux_SOURCES = osdep-@PLATFORM@.c 204 205# Add compat file for forkpty. 206if NEED_FORKPTY 207nodist_tmux_SOURCES += compat/forkpty-@PLATFORM@.c 208endif 209 210# Add compat file for systemd. 211if HAVE_SYSTEMD 212nodist_tmux_SOURCES += compat/systemd.c 213endif 214 215# Add compat file for utf8proc. 216if HAVE_UTF8PROC 217nodist_tmux_SOURCES += compat/utf8proc.c 218endif 219 220# Enable sixel support. 221if ENABLE_SIXEL 222dist_tmux_SOURCES += image.c image-sixel.c 223endif 224 225if NEED_FUZZING 226check_PROGRAMS = fuzz/input-fuzzer 227fuzz_input_fuzzer_LDFLAGS = $(FUZZING_LIBS) 228fuzz_input_fuzzer_LDADD = $(LDADD) $(tmux_OBJECTS) 229endif 230 231# Install tmux.1 in the right format. 232install-exec-hook: 233 if test x@MANFORMAT@ = xmdoc; then \ 234 sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmux.1 \ 235 >$(srcdir)/tmux.1.mdoc; \ 236 else \ 237 sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmux.1| \ 238 $(AWK) -f $(srcdir)/mdoc2man.awk >$(srcdir)/tmux.1.man; \ 239 fi 240 $(mkdir_p) $(DESTDIR)$(mandir)/man1 241 $(INSTALL_DATA) $(srcdir)/tmux.1.@MANFORMAT@ \ 242 $(DESTDIR)$(mandir)/man1/tmux.1 243