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