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