Makefile.am 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. # Makefile.am
  2. # Obvious program stuff.
  3. bin_PROGRAMS = tmate
  4. CLEANFILES = tmate.1.mdoc tmate.1.man
  5. # Distribution tarball options.
  6. EXTRA_DIST = \
  7. CHANGES FAQ README TODO COPYING example_tmux.conf compat/*.[ch] \
  8. array.h compat.h tmux.h osdep-*.c xmalloc.h mdoc2man.awk tmate.1
  9. dist-hook:
  10. make clean
  11. grep "^#found_debug=" configure
  12. # Preprocessor flags.
  13. CPPFLAGS += @XOPEN_DEFINES@ -DTMUX_CONF="\"$(sysconfdir)/tmux.conf\""
  14. # glibc as usual does things ass-backwards and hides useful things by default,
  15. # so everyone has to add this.
  16. if IS_GLIBC
  17. CFLAGS += -D_GNU_SOURCE
  18. endif
  19. if IS_LINUX
  20. CFLAGS += -rdynamic # for stack traces
  21. endif
  22. # Set flags for gcc.
  23. if IS_GCC
  24. CFLAGS += -std=gnu99 -O2
  25. if IS_DEBUG
  26. CFLAGS += -g
  27. CFLAGS += -Wno-long-long -Wall -W -Wnested-externs -Wformat=2
  28. CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations
  29. CFLAGS += -Wwrite-strings -Wshadow -Wpointer-arith -Wsign-compare
  30. CFLAGS += -Wundef -Wbad-function-cast -Winline -Wcast-align
  31. CFLAGS += -Wdeclaration-after-statement -Wno-pointer-sign -Wno-attributes
  32. CPPFLAGS += -DDEBUG
  33. endif
  34. if IS_COVERAGE
  35. CFLAGS += -g -O0 --coverage
  36. LDFLAGS += --coverage
  37. endif
  38. CPPFLAGS += -iquote.
  39. endif
  40. # Set flags for Solaris.
  41. if IS_SUNOS
  42. if IS_GCC
  43. CPPFLAGS += -D_XPG6 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
  44. else
  45. CPPFLAGS += -D_XPG4_2 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS
  46. endif
  47. endif
  48. # Set flags for Sun CC.
  49. if IS_SUNCC
  50. CFLAGS += -erroff=E_EMPTY_DECLARATION
  51. endif
  52. # Set _LINUX_SOURCE_COMPAT for AIX for malloc(0).
  53. if IS_AIX
  54. DEFS += -D_LINUX_SOURCE_COMPAT=1
  55. endif
  56. # List of sources.
  57. dist_tmate_SOURCES = \
  58. alerts.c \
  59. arguments.c \
  60. attributes.c \
  61. cfg.c \
  62. client.c \
  63. cmd-attach-session.c \
  64. cmd-bind-key.c \
  65. cmd-break-pane.c \
  66. cmd-capture-pane.c \
  67. cmd-choose-buffer.c \
  68. cmd-choose-client.c \
  69. cmd-choose-tree.c \
  70. cmd-clear-history.c \
  71. cmd-command-prompt.c \
  72. cmd-confirm-before.c \
  73. cmd-copy-mode.c \
  74. cmd-detach-client.c \
  75. cmd-display-message.c \
  76. cmd-display-panes.c \
  77. cmd-find.c \
  78. cmd-find-window.c \
  79. cmd-if-shell.c \
  80. cmd-join-pane.c \
  81. cmd-kill-pane.c \
  82. cmd-kill-server.c \
  83. cmd-kill-session.c \
  84. cmd-kill-window.c \
  85. cmd-list-buffers.c \
  86. cmd-list-clients.c \
  87. cmd-list-keys.c \
  88. cmd-list-panes.c \
  89. cmd-list-sessions.c \
  90. cmd-list-windows.c \
  91. cmd-list.c \
  92. cmd-load-buffer.c \
  93. cmd-lock-server.c \
  94. cmd-move-window.c \
  95. cmd-new-session.c \
  96. cmd-new-window.c \
  97. cmd-paste-buffer.c \
  98. cmd-pipe-pane.c \
  99. cmd-queue.c \
  100. cmd-refresh-client.c \
  101. cmd-rename-session.c \
  102. cmd-rename-window.c \
  103. cmd-resize-pane.c \
  104. cmd-respawn-pane.c \
  105. cmd-respawn-window.c \
  106. cmd-rotate-window.c \
  107. cmd-run-shell.c \
  108. cmd-save-buffer.c \
  109. cmd-select-layout.c \
  110. cmd-select-pane.c \
  111. cmd-select-window.c \
  112. cmd-send-keys.c \
  113. cmd-set-buffer.c \
  114. cmd-set-environment.c \
  115. cmd-set-hook.c \
  116. cmd-set-option.c \
  117. cmd-show-environment.c \
  118. cmd-show-messages.c \
  119. cmd-show-options.c \
  120. cmd-source-file.c \
  121. cmd-split-window.c \
  122. cmd-string.c \
  123. cmd-swap-pane.c \
  124. cmd-swap-window.c \
  125. cmd-switch-client.c \
  126. cmd-unbind-key.c \
  127. cmd-wait-for.c \
  128. cmd.c \
  129. colour.c \
  130. control.c \
  131. control-notify.c \
  132. environ.c \
  133. format.c \
  134. grid-view.c \
  135. grid.c \
  136. hooks.c \
  137. input-keys.c \
  138. input.c \
  139. job.c \
  140. key-bindings.c \
  141. key-string.c \
  142. layout-custom.c \
  143. layout-set.c \
  144. layout.c \
  145. log.c \
  146. mode-key.c \
  147. names.c \
  148. notify.c \
  149. options-table.c \
  150. options.c \
  151. paste.c \
  152. proc.c \
  153. resize.c \
  154. screen-redraw.c \
  155. screen-write.c \
  156. screen.c \
  157. server-client.c \
  158. server-fn.c \
  159. server.c \
  160. session.c \
  161. signal.c \
  162. status.c \
  163. style.c \
  164. tmate-debug.c \
  165. tmate-ssh-client.c \
  166. tmate-encoder.c \
  167. tmate-decoder.c \
  168. tmate-env.c \
  169. tmate-msg.c \
  170. tmate-msgpack.c \
  171. tmate-session.c \
  172. tmux.c \
  173. tty-acs.c \
  174. tty-keys.c \
  175. tty-term.c \
  176. tty.c \
  177. utf8.c \
  178. window-choose.c \
  179. window-clock.c \
  180. window-copy.c \
  181. window.c \
  182. xmalloc.c \
  183. xterm-keys.c
  184. nodist_tmate_SOURCES = osdep-@PLATFORM@.c
  185. # Pile in all the compat/ stuff that is needed.
  186. if NO_FORKPTY
  187. nodist_tmate_SOURCES += compat/forkpty-@PLATFORM@.c
  188. endif
  189. if NO_IMSG
  190. nodist_tmate_SOURCES += compat/imsg.c compat/imsg-buffer.c
  191. endif
  192. if NO_CLOSEFROM
  193. nodist_tmate_SOURCES += compat/closefrom.c
  194. endif
  195. if NO_DAEMON
  196. nodist_tmate_SOURCES += compat/daemon.c
  197. endif
  198. if NO_SETENV
  199. nodist_tmate_SOURCES += compat/setenv.c
  200. endif
  201. if NO_STRLCAT
  202. nodist_tmate_SOURCES += compat/strlcat.c
  203. endif
  204. if NO_STRLCPY
  205. nodist_tmate_SOURCES += compat/strlcpy.c
  206. endif
  207. if NO_ASPRINTF
  208. nodist_tmate_SOURCES += compat/asprintf.c
  209. endif
  210. if NO_FGETLN
  211. nodist_tmate_SOURCES += compat/fgetln.c
  212. endif
  213. if NO_FPARSELN
  214. nodist_tmate_SOURCES += compat/fparseln.c
  215. endif
  216. if NO_GETOPT
  217. nodist_tmate_SOURCES += compat/getopt.c
  218. endif
  219. if NO_STRCASESTR
  220. nodist_tmate_SOURCES += compat/strcasestr.c
  221. endif
  222. if NO_STRSEP
  223. nodist_tmate_SOURCES += compat/strsep.c
  224. endif
  225. if NO_VIS
  226. nodist_tmate_SOURCES += compat/vis.c compat/unvis.c
  227. endif
  228. if NO_STRTONUM
  229. nodist_tmate_SOURCES += compat/strtonum.c
  230. endif
  231. if NO_B64_NTOP
  232. nodist_tmate_SOURCES += compat/b64_ntop.c
  233. endif
  234. if NO_CFMAKERAW
  235. nodist_tmate_SOURCES += compat/cfmakeraw.c
  236. endif
  237. if NO_OPENAT
  238. nodist_tmate_SOURCES += compat/openat.c
  239. endif
  240. if NO_REALLOCARRAY
  241. nodist_tmate_SOURCES += compat/reallocarray.c
  242. endif
  243. # Install tmate.1 in the right format.
  244. install-exec-hook:
  245. if test x@MANFORMAT@ = xmdoc; then \
  246. sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmate.1 \
  247. >$(srcdir)/tmate.1.mdoc; \
  248. else \
  249. sed -e "s|@SYSCONFDIR@|$(sysconfdir)|g" $(srcdir)/tmate.1| \
  250. $(AWK) -f$(srcdir)/mdoc2man.awk >$(srcdir)/tmate.1.man; \
  251. fi
  252. $(mkdir_p) $(DESTDIR)$(mandir)/man1
  253. $(INSTALL_DATA) $(srcdir)/tmate.1.@MANFORMAT@ \
  254. $(DESTDIR)$(mandir)/man1/tmate.1