Makefile.am 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. ## Process this file with automake to produce Makefile.in
  2. AUTOMAKE_OPTIONS= foreign subdir-objects
  3. #
  4. # What to build and install
  5. #
  6. noinst_LIBRARIES= \
  7. lib/libcperciva_aesni.a \
  8. lib/libcperciva_arm_aes.a \
  9. lib/libcperciva_arm_sha256.a \
  10. lib/libcperciva_cpusupport_detect.a \
  11. lib/libcperciva_crypto_aes.a \
  12. lib/libcperciva_rdrand.a \
  13. lib/libcperciva_shani.a \
  14. lib/libtarsnap.a \
  15. lib/libtarsnap_rsa.a \
  16. lib/libtarsnap_sse2.a \
  17. libarchive/libarchive.a
  18. bin_PROGRAMS= \
  19. tarsnap \
  20. tarsnap-keygen \
  21. tarsnap-keymgmt \
  22. tarsnap-keyregen \
  23. tarsnap-recrypt
  24. noinst_PROGRAMS= \
  25. tests/valgrind/potential-memleaks
  26. man_MANS= \
  27. $(tarsnap_keygen_man_MANS) \
  28. $(tarsnap_keymgmt_man_MANS) \
  29. $(tarsnap_keyregen_man_MANS) \
  30. $(tarsnap_man_MANS) \
  31. $(tarsnap_recrypt_man_MANS)
  32. CLEANFILES= $(man_MANS)
  33. #
  34. # Libarchive headers, source, etc.
  35. #
  36. #
  37. libarchive_libarchive_a_SOURCES= \
  38. libarchive/archive.h \
  39. libarchive/archive_check_magic.c \
  40. libarchive/archive_endian.h \
  41. libarchive/archive_entry.c \
  42. libarchive/archive_entry.h \
  43. libarchive/archive_entry_copy_stat.c \
  44. libarchive/archive_entry_link_resolver.c \
  45. libarchive/archive_entry_private.h \
  46. libarchive/archive_entry_stat.c \
  47. libarchive/archive_entry_strmode.c \
  48. libarchive/archive_platform.h \
  49. libarchive/archive_private.h \
  50. libarchive/archive_read.c \
  51. libarchive/archive_read_data_into_fd.c \
  52. libarchive/archive_read_disk.c \
  53. libarchive/archive_read_disk_entry_from_file.c \
  54. libarchive/archive_read_disk_private.h \
  55. libarchive/archive_read_disk_set_standard_lookup.c \
  56. libarchive/archive_read_extract.c \
  57. libarchive/archive_read_open_fd.c \
  58. libarchive/archive_read_open_file.c \
  59. libarchive/archive_read_open_filename.c \
  60. libarchive/archive_read_open_memory.c \
  61. libarchive/archive_read_private.h \
  62. libarchive/archive_read_support_compression_all.c \
  63. libarchive/archive_read_support_compression_bzip2.c \
  64. libarchive/archive_read_support_compression_compress.c \
  65. libarchive/archive_read_support_compression_gzip.c \
  66. libarchive/archive_read_support_compression_none.c \
  67. libarchive/archive_read_support_compression_program.c \
  68. libarchive/archive_read_support_compression_xz.c \
  69. libarchive/archive_read_support_format_all.c \
  70. libarchive/archive_read_support_format_ar.c \
  71. libarchive/archive_read_support_format_cpio.c \
  72. libarchive/archive_read_support_format_empty.c \
  73. libarchive/archive_read_support_format_iso9660.c \
  74. libarchive/archive_read_support_format_mtree.c \
  75. libarchive/archive_read_support_format_tar.c \
  76. libarchive/archive_read_support_format_zip.c \
  77. libarchive/archive_string.c \
  78. libarchive/archive_string.h \
  79. libarchive/archive_string_sprintf.c \
  80. libarchive/archive_util.c \
  81. libarchive/archive_virtual.c \
  82. libarchive/archive_write.c \
  83. libarchive/archive_write_disk.c \
  84. libarchive/archive_write_disk_private.h \
  85. libarchive/archive_write_disk_set_standard_lookup.c \
  86. libarchive/archive_write_open_fd.c \
  87. libarchive/archive_write_open_file.c \
  88. libarchive/archive_write_open_filename.c \
  89. libarchive/archive_write_open_memory.c \
  90. libarchive/archive_write_private.h \
  91. libarchive/archive_write_set_compression_none.c \
  92. libarchive/archive_write_set_format_pax.c \
  93. libarchive/archive_write_set_format_ustar.c \
  94. libarchive/config_freebsd.h \
  95. libarchive/config_windows.h \
  96. libarchive/filter_fork.c \
  97. libarchive/filter_fork.h
  98. if INC_WINDOWS_FILES
  99. libarchive_libarchive_a_SOURCES+= \
  100. libarchive/archive_windows.c \
  101. libarchive/archive_windows.h \
  102. libarchive/filter_fork_windows.c
  103. endif
  104. libarchive_libarchive_a_CPPFLAGS=-I$(top_builddir)/libarchive
  105. #
  106. # Tarsnap internal library code
  107. #
  108. #
  109. # Don't include crypto_aesctr_shared.c in this list, as it should be included
  110. # directly into other translation unit(s), and not compiled on its own.
  111. lib_libtarsnap_a_SOURCES= \
  112. lib-platform/crypto/crypto_scrypt.c \
  113. lib-platform/crypto/crypto_scrypt.h \
  114. lib-platform/network/tsnetwork_cork.c \
  115. lib-platform/network/tsnetwork_cork.h \
  116. lib-platform/platform.h \
  117. lib-platform/util/fileutil.c \
  118. lib-platform/util/fileutil.h \
  119. lib-platform/util/memlimit.c \
  120. lib-platform/util/memlimit.h \
  121. lib-platform/util/ts_getfstype.c \
  122. lib-platform/util/ts_getfstype.h \
  123. lib/crypto/crypto.h \
  124. lib/crypto/crypto_compat.h \
  125. lib/crypto/crypto_file.c \
  126. lib/crypto/crypto_hash.c \
  127. lib/crypto/crypto_internal.h \
  128. lib/crypto/crypto_keys_init.c \
  129. lib/crypto/crypto_keys_server.c \
  130. lib/crypto/crypto_passwd_to_dh.c \
  131. lib/crypto/crypto_scrypt_smix.c \
  132. lib/crypto/crypto_scrypt_smix.h \
  133. lib/crypto/crypto_scrypt_smix_sse2.h \
  134. lib/crypto/crypto_session.c \
  135. lib/datastruct/patricia.c \
  136. lib/datastruct/patricia.h \
  137. lib/datastruct/rwhashtab.c \
  138. lib/datastruct/rwhashtab.h \
  139. lib/keyfile/keyfile.c \
  140. lib/keyfile/keyfile.h \
  141. lib/netpacket/netpacket.h \
  142. lib/netpacket/netpacket_delete.c \
  143. lib/netpacket/netpacket_directory.c \
  144. lib/netpacket/netpacket_hmac.c \
  145. lib/netpacket/netpacket_internal.h \
  146. lib/netpacket/netpacket_op.c \
  147. lib/netpacket/netpacket_read.c \
  148. lib/netpacket/netpacket_register.c \
  149. lib/netpacket/netpacket_transaction.c \
  150. lib/netpacket/netpacket_write.c \
  151. lib/netproto/netproto.c \
  152. lib/netproto/netproto.h \
  153. lib/netproto/netproto_connect.c \
  154. lib/netproto/netproto_internal.h \
  155. lib/netproto/netproto_keyexchange.c \
  156. lib/netproto/netproto_packet.c \
  157. lib/network/tsnetwork.h \
  158. lib/network/tsnetwork_buf.c \
  159. lib/network/tsnetwork_bwlimit.c \
  160. lib/network/tsnetwork_connect.c \
  161. lib/network/tsnetwork_internal.h \
  162. lib/network/tsnetwork_register.c \
  163. lib/network/tsnetwork_select.c \
  164. lib/network/tsnetwork_sleep.c \
  165. lib/network/tsnetwork_writeq.c \
  166. lib/scryptenc/scryptenc.c \
  167. lib/scryptenc/scryptenc.h \
  168. lib/scryptenc/scryptenc_cpuperf.c \
  169. lib/scryptenc/scryptenc_cpuperf.h \
  170. lib/util/dirutil.c \
  171. lib/util/dirutil.h \
  172. lib/util/hexlink.c \
  173. lib/util/hexlink.h \
  174. lib/util/passphrase_entry.c \
  175. lib/util/passphrase_entry.h \
  176. lib/util/sigquit.c \
  177. lib/util/sigquit.h \
  178. lib/util/tvmath.c \
  179. lib/util/tvmath.h \
  180. libcperciva/alg/sha256.c \
  181. libcperciva/alg/sha256.h \
  182. libcperciva/alg/sha256_arm.h \
  183. libcperciva/alg/sha256_shani.h \
  184. libcperciva/alg/sha256_sse2.h \
  185. libcperciva/cpusupport/cpusupport.h \
  186. libcperciva/crypto/crypto_aes.h \
  187. libcperciva/crypto/crypto_aes_aesni.h \
  188. libcperciva/crypto/crypto_aes_aesni_m128i.h \
  189. libcperciva/crypto/crypto_aes_arm.h \
  190. libcperciva/crypto/crypto_aes_arm_u8.h \
  191. libcperciva/crypto/crypto_aesctr.c \
  192. libcperciva/crypto/crypto_aesctr.h \
  193. libcperciva/crypto/crypto_aesctr_aesni.h \
  194. libcperciva/crypto/crypto_aesctr_arm.h \
  195. libcperciva/crypto/crypto_dh.c \
  196. libcperciva/crypto/crypto_dh.h \
  197. libcperciva/crypto/crypto_dh_group14.c \
  198. libcperciva/crypto/crypto_dh_group14.h \
  199. libcperciva/crypto/crypto_entropy.c \
  200. libcperciva/crypto/crypto_entropy.h \
  201. libcperciva/crypto/crypto_entropy_rdrand.h \
  202. libcperciva/crypto/crypto_verify_bytes.c \
  203. libcperciva/crypto/crypto_verify_bytes.h \
  204. libcperciva/datastruct/elasticarray.c \
  205. libcperciva/datastruct/elasticarray.h \
  206. libcperciva/datastruct/mpool.h \
  207. libcperciva/datastruct/ptrheap.c \
  208. libcperciva/datastruct/ptrheap.h \
  209. libcperciva/datastruct/timerqueue.c \
  210. libcperciva/datastruct/timerqueue.h \
  211. libcperciva/events/events.c \
  212. libcperciva/events/events.h \
  213. libcperciva/events/events_immediate.c \
  214. libcperciva/events/events_internal.h \
  215. libcperciva/events/events_network.c \
  216. libcperciva/events/events_network_selectstats.c \
  217. libcperciva/events/events_timer.c \
  218. libcperciva/external/queue/queue.h \
  219. libcperciva/network/network.h \
  220. libcperciva/network/network_accept.c \
  221. libcperciva/network/network_connect.c \
  222. libcperciva/network/network_read.c \
  223. libcperciva/network/network_write.c \
  224. libcperciva/util/align_ptr.h \
  225. libcperciva/util/asprintf.c \
  226. libcperciva/util/asprintf.h \
  227. libcperciva/util/b64encode.c \
  228. libcperciva/util/b64encode.h \
  229. libcperciva/util/ctassert.h \
  230. libcperciva/util/entropy.c \
  231. libcperciva/util/entropy.h \
  232. libcperciva/util/getopt.c \
  233. libcperciva/util/getopt.h \
  234. libcperciva/util/hexify.c \
  235. libcperciva/util/hexify.h \
  236. libcperciva/util/humansize.c \
  237. libcperciva/util/humansize.h \
  238. libcperciva/util/imalloc.h \
  239. libcperciva/util/insecure_memzero.c \
  240. libcperciva/util/insecure_memzero.h \
  241. libcperciva/util/monoclock.c \
  242. libcperciva/util/monoclock.h \
  243. libcperciva/util/parsenum.h \
  244. libcperciva/util/readpass.c \
  245. libcperciva/util/readpass.h \
  246. libcperciva/util/readpass_file.c \
  247. libcperciva/util/sock.c \
  248. libcperciva/util/sock.h \
  249. libcperciva/util/sock_internal.h \
  250. libcperciva/util/sock_util.c \
  251. libcperciva/util/sock_util.h \
  252. libcperciva/util/sysendian.h \
  253. libcperciva/util/ttyfd.c \
  254. libcperciva/util/ttyfd.h \
  255. libcperciva/util/warnp.c \
  256. libcperciva/util/warnp.h
  257. nodist_lib_libtarsnap_a_SOURCES= \
  258. apisupport-config.h \
  259. cpusupport-config.h
  260. lib_libtarsnap_a_CPPFLAGS= \
  261. -I$(top_srcdir)/lib \
  262. -I$(top_srcdir)/lib-platform \
  263. -I$(top_srcdir)/lib-platform/crypto \
  264. -I$(top_srcdir)/lib-platform/network \
  265. -I$(top_srcdir)/lib-platform/util \
  266. -I$(top_srcdir)/lib/crypto \
  267. -I$(top_srcdir)/lib/datastruct \
  268. -I$(top_srcdir)/lib/keyfile \
  269. -I$(top_srcdir)/lib/netpacket \
  270. -I$(top_srcdir)/lib/netproto \
  271. -I$(top_srcdir)/lib/network \
  272. -I$(top_srcdir)/lib/scryptenc \
  273. -I$(top_srcdir)/lib/util \
  274. -I$(top_srcdir)/libarchive \
  275. -I$(top_srcdir)/libcperciva/alg \
  276. -I$(top_srcdir)/libcperciva/cpusupport \
  277. -I$(top_srcdir)/libcperciva/crypto \
  278. -I$(top_srcdir)/libcperciva/datastruct \
  279. -I$(top_srcdir)/libcperciva/events \
  280. -I$(top_srcdir)/libcperciva/external/queue \
  281. -I$(top_srcdir)/libcperciva/network \
  282. -I$(top_srcdir)/libcperciva/util \
  283. -I$(top_srcdir)/tar \
  284. -DAPISUPPORT_CONFIG_FILE=\"apisupport-config.h\" \
  285. -DCPUSUPPORT_CONFIG_FILE=\"cpusupport-config.h\" \
  286. -DTSSERVER=\"$(TSSERVER)\" \
  287. -D_POSIX_C_SOURCE=200809L \
  288. -D_XOPEN_SOURCE=700 \
  289. ${CFLAGS_POSIX}
  290. LIBTARSNAP_A= lib/libtarsnap.a
  291. # apisupport has extra CFLAGS (compared to cpusupport), because it needs to
  292. # access post-configure info: lib-platform/platform.h, config.h, and
  293. # -DHAVE_CONFIG_H.
  294. apisupport-config.h:
  295. ( export CC="${CC}"; export CFLAGS="-I${top_srcdir}/lib-platform -I${builddir} ${DEFS} ${CFLAGS}"; command -p sh $(srcdir)/libcperciva/apisupport/Build/apisupport.sh "$$PATH") > apisupport-config.h.tmp && command -p mv apisupport-config.h.tmp apisupport-config.h
  296. cpusupport-config.h:
  297. ( export CC="${CC}"; export CFLAGS="${CFLAGS}"; command -p sh $(srcdir)/libcperciva/cpusupport/Build/cpusupport.sh "$$PATH" ) > cpusupport-config.h.tmp && command -p mv cpusupport-config.h.tmp cpusupport-config.h
  298. # Add libcperciva files to dist
  299. #
  300. # crypto_aesctr_shared.c is in this list because it can't be included in the
  301. # _SOURCES because it should only be included as part of another translation
  302. # unit.
  303. EXTRA_DIST= \
  304. libcperciva/POSIX/README \
  305. libcperciva/POSIX/posix-abstract-declarator.c \
  306. libcperciva/POSIX/posix-cflags.sh \
  307. libcperciva/POSIX/posix-clock_gettime.c \
  308. libcperciva/POSIX/posix-clock_realtime.c \
  309. libcperciva/POSIX/posix-inet-addrstrlen.c \
  310. libcperciva/POSIX/posix-inet6-addrstrlen.c \
  311. libcperciva/POSIX/posix-l.sh \
  312. libcperciva/POSIX/posix-msg_nosignal.c \
  313. libcperciva/POSIX/posix-restrict.c \
  314. libcperciva/POSIX/posix-stat-st_mtim.c \
  315. libcperciva/POSIX/posix-trivial.c \
  316. libcperciva/cpusupport/Build/cpusupport-ARM-AES.c \
  317. libcperciva/cpusupport/Build/cpusupport-ARM-SHA256.c \
  318. libcperciva/cpusupport/Build/cpusupport-HWCAP-ELF_AUX_INFO.c \
  319. libcperciva/cpusupport/Build/cpusupport-HWCAP-GETAUXVAL.c \
  320. libcperciva/cpusupport/Build/cpusupport-X86-AESNI.c \
  321. libcperciva/cpusupport/Build/cpusupport-X86-CPUID.c \
  322. libcperciva/cpusupport/Build/cpusupport-X86-CPUID_COUNT.c \
  323. libcperciva/cpusupport/Build/cpusupport-X86-RDRAND.c \
  324. libcperciva/cpusupport/Build/cpusupport-X86-SHANI.c \
  325. libcperciva/cpusupport/Build/cpusupport-X86-SSE2.c \
  326. libcperciva/cpusupport/Build/cpusupport-X86-SSSE3.c \
  327. libcperciva/cpusupport/Build/cpusupport.sh \
  328. libcperciva/crypto/crypto_aesctr_shared.c
  329. BUILT_SOURCES= \
  330. apisupport-config.h \
  331. cpusupport-config.h
  332. CLEANFILES+= \
  333. apisupport-config.h \
  334. apisupport-config.h.tmp \
  335. cpusupport-config.h \
  336. cpusupport-config.h.tmp
  337. # libcperciva_crypto_aes depends on libcperciva_cpusupport_detect, so _crypto_aes
  338. # must come before _cpusupport_detect in LIBTARSNAP_A.
  339. lib_libcperciva_crypto_aes_a_SOURCES= \
  340. libcperciva/crypto/crypto_aes.c
  341. nodist_lib_libcperciva_crypto_aes_a_SOURCES= \
  342. apisupport-config.h \
  343. cpusupport-config.h
  344. lib_libcperciva_crypto_aes_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  345. lib_libcperciva_crypto_aes_a_CFLAGS=`. ./apisupport-config.h; echo $${CFLAGS_LIBCRYPTO_LOW_LEVEL_AES}`
  346. LIBTARSNAP_A+= lib/libcperciva_crypto_aes.a
  347. lib_libcperciva_aesni_a_SOURCES= \
  348. libcperciva/crypto/crypto_aes_aesni.c \
  349. libcperciva/crypto/crypto_aesctr_aesni.c
  350. nodist_lib_libcperciva_aesni_a_SOURCES= \
  351. cpusupport-config.h
  352. lib_libcperciva_aesni_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  353. lib_libcperciva_aesni_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_X86_AESNI}`
  354. LIBTARSNAP_A+= lib/libcperciva_aesni.a
  355. lib_libcperciva_arm_aes_a_SOURCES= \
  356. libcperciva/crypto/crypto_aes_arm.c \
  357. libcperciva/crypto/crypto_aesctr_arm.c
  358. nodist_lib_libcperciva_arm_aes_a_SOURCES= \
  359. cpusupport-config.h
  360. lib_libcperciva_arm_aes_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  361. lib_libcperciva_arm_aes_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_ARM_AES}`
  362. LIBTARSNAP_A+= lib/libcperciva_arm_aes.a
  363. lib_libcperciva_rdrand_a_SOURCES= \
  364. libcperciva/crypto/crypto_entropy_rdrand.c
  365. nodist_lib_libcperciva_rdrand_a_SOURCES= \
  366. cpusupport-config.h
  367. lib_libcperciva_rdrand_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  368. lib_libcperciva_rdrand_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_X86_RDRAND}`
  369. LIBTARSNAP_A+= lib/libcperciva_rdrand.a
  370. lib_libtarsnap_sse2_a_SOURCES= \
  371. lib/crypto/crypto_scrypt_smix_sse2.c \
  372. libcperciva/alg/sha256_sse2.c
  373. nodist_lib_libtarsnap_sse2_a_SOURCES= \
  374. cpusupport-config.h
  375. lib_libtarsnap_sse2_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  376. lib_libtarsnap_sse2_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_X86_SSE2}`
  377. LIBTARSNAP_A+= lib/libtarsnap_sse2.a
  378. lib_libcperciva_shani_a_SOURCES= \
  379. libcperciva/alg/sha256_shani.c
  380. nodist_lib_libcperciva_shani_a_SOURCES= \
  381. cpusupport-config.h
  382. lib_libcperciva_shani_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  383. lib_libcperciva_shani_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_X86_SHANI} $${CFLAGS_X86_SSSE3}`
  384. LIBTARSNAP_A+= lib/libcperciva_shani.a
  385. lib_libcperciva_arm_sha256_a_SOURCES= \
  386. libcperciva/alg/sha256_arm.c
  387. nodist_lib_libcperciva_arm_sha256_a_SOURCES= \
  388. cpusupport-config.h
  389. lib_libcperciva_arm_sha256_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  390. lib_libcperciva_arm_sha256_a_CFLAGS=`. ./cpusupport-config.h; echo $${CFLAGS_ARM_SHA256}`
  391. LIBTARSNAP_A+= lib/libcperciva_arm_sha256.a
  392. lib_libcperciva_cpusupport_detect_a_SOURCES= \
  393. libcperciva/cpusupport/cpusupport_arm_aes.c \
  394. libcperciva/cpusupport/cpusupport_arm_sha256.c \
  395. libcperciva/cpusupport/cpusupport_x86_aesni.c \
  396. libcperciva/cpusupport/cpusupport_x86_rdrand.c \
  397. libcperciva/cpusupport/cpusupport_x86_shani.c \
  398. libcperciva/cpusupport/cpusupport_x86_sse2.c \
  399. libcperciva/cpusupport/cpusupport_x86_ssse3.c
  400. nodist_lib_libcperciva_cpusupport_detect_a_SOURCES= \
  401. cpusupport-config.h
  402. lib_libcperciva_cpusupport_detect_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  403. LIBTARSNAP_A+= lib/libcperciva_cpusupport_detect.a
  404. lib_libtarsnap_rsa_a_SOURCES= \
  405. lib/crypto/crypto_compat.c \
  406. lib/crypto/crypto_keys.c \
  407. lib/crypto/crypto_keys_subr.c \
  408. lib/crypto/crypto_rsa.c
  409. lib_libtarsnap_rsa_a_CPPFLAGS=$(lib_libtarsnap_a_CPPFLAGS)
  410. lib_libtarsnap_rsa_a_CFLAGS=`. ./apisupport-config.h; echo $${CFLAGS_LIBCRYPTO_LOW_LEVEL_RSA}`
  411. LIBTARSNAP_A+= lib/libtarsnap_rsa.a
  412. #
  413. #
  414. # tarsnap source, docs, etc.
  415. #
  416. #
  417. tarsnap_SOURCES= \
  418. tar/bsdtar.c \
  419. tar/bsdtar.h \
  420. tar/bsdtar_platform.h \
  421. tar/ccache/ccache.h \
  422. tar/ccache/ccache_entry.c \
  423. tar/ccache/ccache_internal.h \
  424. tar/ccache/ccache_read.c \
  425. tar/ccache/ccache_write.c \
  426. tar/chunks/chunks.h \
  427. tar/chunks/chunks_delete.c \
  428. tar/chunks/chunks_directory.c \
  429. tar/chunks/chunks_internal.h \
  430. tar/chunks/chunks_read.c \
  431. tar/chunks/chunks_stats.c \
  432. tar/chunks/chunks_stats_internal.c \
  433. tar/chunks/chunks_transaction.c \
  434. tar/chunks/chunks_write.c \
  435. tar/cmdline.c \
  436. tar/getdate.c \
  437. tar/glue/archive_multitape.c \
  438. tar/glue/archive_multitape.h \
  439. tar/glue/tape.c \
  440. tar/matching.c \
  441. tar/multitape/chunkify.c \
  442. tar/multitape/chunkify.h \
  443. tar/multitape/multitape.h \
  444. tar/multitape/multitape_chunkiter.c \
  445. tar/multitape/multitape_delete.c \
  446. tar/multitape/multitape_fsck.c \
  447. tar/multitape/multitape_internal.h \
  448. tar/multitape/multitape_metadata.c \
  449. tar/multitape/multitape_metaindex.c \
  450. tar/multitape/multitape_nuke.c \
  451. tar/multitape/multitape_read.c \
  452. tar/multitape/multitape_recover.c \
  453. tar/multitape/multitape_stats.c \
  454. tar/multitape/multitape_transaction.c \
  455. tar/multitape/multitape_write.c \
  456. tar/read.c \
  457. tar/siginfo.c \
  458. tar/storage/storage.h \
  459. tar/storage/storage_delete.c \
  460. tar/storage/storage_directory.c \
  461. tar/storage/storage_internal.h \
  462. tar/storage/storage_read.c \
  463. tar/storage/storage_read_cache.c \
  464. tar/storage/storage_read_cache.h \
  465. tar/storage/storage_transaction.c \
  466. tar/storage/storage_write.c \
  467. tar/subst.c \
  468. tar/tarsnap_opt.h \
  469. tar/tree.c \
  470. tar/tree.h \
  471. tar/util.c \
  472. tar/write.c
  473. if INC_WINDOWS_FILES
  474. tarsnap_SOURCES+= \
  475. tar/bsdtar_windows.c \
  476. tar/bsdtar_windows.h
  477. endif
  478. if INC_CYGWIN_FILES
  479. tarsnap_SOURCES+= \
  480. tar/bsdtar_cygwin.c \
  481. tar/bsdtar_cygwin.h
  482. endif
  483. tarsnap_DEPENDENCIES = \
  484. $(LIBTARSNAP_A) \
  485. libarchive/archive.h \
  486. libarchive/archive_entry.h \
  487. libarchive/libarchive.a
  488. tarsnap_LDADD= libarchive/libarchive.a $(LIBTARSNAP_A)
  489. tarsnap_CPPFLAGS= \
  490. -I$(top_srcdir)/lib \
  491. -I$(top_srcdir)/lib-platform \
  492. -I$(top_srcdir)/lib-platform/util \
  493. -I$(top_srcdir)/lib/crypto \
  494. -I$(top_srcdir)/lib/datastruct \
  495. -I$(top_srcdir)/lib/keyfile \
  496. -I$(top_srcdir)/lib/netpacket \
  497. -I$(top_srcdir)/lib/netproto \
  498. -I$(top_srcdir)/lib/network \
  499. -I$(top_srcdir)/lib/util \
  500. -I$(top_srcdir)/libarchive \
  501. -I$(top_srcdir)/libcperciva/crypto \
  502. -I$(top_srcdir)/libcperciva/datastruct \
  503. -I$(top_srcdir)/libcperciva/util \
  504. -I$(top_srcdir)/tar \
  505. -I$(top_srcdir)/tar/ccache \
  506. -I$(top_srcdir)/tar/chunks \
  507. -I$(top_srcdir)/tar/glue \
  508. -I$(top_srcdir)/tar/multitape \
  509. -I$(top_srcdir)/tar/storage \
  510. "-DETC_TARSNAP_CONF=\"${sysconfdir}/tarsnap.conf\"" \
  511. -DLIBARCHIVE_STATIC \
  512. -DUSERAGENT=\"tarsnap-${VERSION}\"
  513. tarsnap_man_MANS= tar/tarsnap.1 tar/tarsnap.conf.5
  514. #
  515. # tarsnap-keygen source, docs, etc.
  516. #
  517. #
  518. tarsnap_keygen_SOURCES= \
  519. keygen/keygen.c \
  520. keygen/keygen.h \
  521. keygen/keygen_actual.c \
  522. keygen/keygen_network.c
  523. tarsnap_keygen_LDADD= $(LIBTARSNAP_A)
  524. tarsnap_keygen_CPPFLAGS= \
  525. -I$(top_srcdir)/keygen \
  526. -I$(top_srcdir)/lib \
  527. -I$(top_srcdir)/lib-platform \
  528. -I$(top_srcdir)/lib/crypto \
  529. -I$(top_srcdir)/lib/datastruct \
  530. -I$(top_srcdir)/lib/keyfile \
  531. -I$(top_srcdir)/lib/netpacket \
  532. -I$(top_srcdir)/lib/netproto \
  533. -I$(top_srcdir)/lib/network \
  534. -I$(top_srcdir)/lib/util \
  535. -I$(top_srcdir)/libarchive \
  536. -I$(top_srcdir)/libcperciva/crypto \
  537. -I$(top_srcdir)/libcperciva/util \
  538. -I$(top_srcdir)/tar \
  539. -DUSERAGENT=\"tarsnap-keygen-${VERSION}\"
  540. tarsnap_keygen_man_MANS= keygen/tarsnap-keygen.1
  541. #
  542. # tarsnap-keyregen source, docs, etc.
  543. #
  544. #
  545. tarsnap_keyregen_SOURCES= \
  546. keygen/keygen.h \
  547. keygen/keygen_actual.c \
  548. keygen/keygen_network.c \
  549. keyregen/keyregen.c
  550. tarsnap_keyregen_LDADD= $(LIBTARSNAP_A)
  551. tarsnap_keyregen_CPPFLAGS= \
  552. -I$(top_srcdir)/keygen \
  553. -I$(top_srcdir)/lib \
  554. -I$(top_srcdir)/lib-platform \
  555. -I$(top_srcdir)/lib/crypto \
  556. -I$(top_srcdir)/lib/datastruct \
  557. -I$(top_srcdir)/lib/keyfile \
  558. -I$(top_srcdir)/lib/netpacket \
  559. -I$(top_srcdir)/lib/netproto \
  560. -I$(top_srcdir)/lib/network \
  561. -I$(top_srcdir)/lib/util \
  562. -I$(top_srcdir)/libarchive \
  563. -I$(top_srcdir)/libcperciva/crypto \
  564. -I$(top_srcdir)/libcperciva/util \
  565. -I$(top_srcdir)/tar \
  566. -DUSERAGENT=\"tarsnap-keyregen-${VERSION}\"
  567. tarsnap_keyregen_man_MANS= keyregen/tarsnap-keyregen.1
  568. #
  569. #
  570. # tarsnap-recrypt source, docs, etc.
  571. #
  572. #
  573. tarsnap_recrypt_SOURCES= \
  574. recrypt/recrypt.c \
  575. tar/chunks/chunks_delete.c \
  576. tar/chunks/chunks_directory.c \
  577. tar/chunks/chunks_stats.c \
  578. tar/chunks/chunks_stats_internal.c \
  579. tar/chunks/chunks_transaction.c \
  580. tar/chunks/chunks_write.c \
  581. tar/multitape/multitape_metadata.c \
  582. tar/multitape/multitape_transaction.c \
  583. tar/storage/storage_delete.c \
  584. tar/storage/storage_directory.c \
  585. tar/storage/storage_read.c \
  586. tar/storage/storage_read_cache.c \
  587. tar/storage/storage_read_cache.h \
  588. tar/storage/storage_transaction.c \
  589. tar/storage/storage_write.c
  590. tarsnap_recrypt_LDADD= $(LIBTARSNAP_A)
  591. tarsnap_recrypt_CPPFLAGS= \
  592. -I$(top_srcdir)/lib \
  593. -I$(top_srcdir)/lib-platform \
  594. -I$(top_srcdir)/lib/crypto \
  595. -I$(top_srcdir)/lib/datastruct \
  596. -I$(top_srcdir)/lib/keyfile \
  597. -I$(top_srcdir)/lib/netpacket \
  598. -I$(top_srcdir)/lib/netproto \
  599. -I$(top_srcdir)/lib/network \
  600. -I$(top_srcdir)/lib/util \
  601. -I$(top_srcdir)/libarchive \
  602. -I$(top_srcdir)/libcperciva/crypto \
  603. -I$(top_srcdir)/libcperciva/util \
  604. -I$(top_srcdir)/tar \
  605. -I$(top_srcdir)/tar/chunks \
  606. -I$(top_srcdir)/tar/multitape \
  607. -I$(top_srcdir)/tar/storage \
  608. -DUSERAGENT=\"tarsnap-recrypt-${VERSION}\"
  609. tarsnap_recrypt_man_MANS= recrypt/tarsnap-recrypt.1
  610. #
  611. #
  612. # tarsnap-keymgmt source, docs, etc.
  613. #
  614. #
  615. tarsnap_keymgmt_SOURCES= keymgmt/keymgmt.c
  616. tarsnap_keymgmt_LDADD= $(LIBTARSNAP_A)
  617. tarsnap_keymgmt_CPPFLAGS= \
  618. -I$(top_srcdir)/lib \
  619. -I$(top_srcdir)/lib-platform \
  620. -I$(top_srcdir)/lib/crypto \
  621. -I$(top_srcdir)/lib/datastruct \
  622. -I$(top_srcdir)/lib/keyfile \
  623. -I$(top_srcdir)/lib/util \
  624. -I$(top_srcdir)/libarchive \
  625. -I$(top_srcdir)/libcperciva/crypto \
  626. -I$(top_srcdir)/libcperciva/util \
  627. -I$(top_srcdir)/tar
  628. tarsnap_keymgmt_man_MANS= keymgmt/tarsnap-keymgmt.1
  629. #
  630. # Test framework and support programs
  631. #
  632. #
  633. .PHONY: test
  634. test: all
  635. $(top_srcdir)/tests/test_tarsnap.sh .
  636. # Detect potential memory leaks from libraries.
  637. tests_valgrind_potential_memleaks_SOURCES = tests/valgrind/potential-memleaks.c
  638. tests_valgrind_potential_memleaks_CPPFLAGS = \
  639. -D_POSIX_C_SOURCE=200809L \
  640. -D_XOPEN_SOURCE=700 \
  641. ${CFLAGS_POSIX}
  642. # Add test files to dist
  643. EXTRA_DIST+= \
  644. tests/01-trivial.sh \
  645. tests/01-trivial.sh \
  646. tests/02-c-dry-run-no-keyfile.sh \
  647. tests/03-c-dry-run-fake-keyfile.sh \
  648. tests/04-c-d-real-keyfile.sh \
  649. tests/05-passphrase.sh \
  650. tests/06-progress-output-pb.good \
  651. tests/06-progress-output-v.good \
  652. tests/06-progress-output-vpb-1k.good \
  653. tests/06-progress-output-vpb-20k.good \
  654. tests/06-progress-output.sh \
  655. tests/fake-passphrased.keys \
  656. tests/fake.keys \
  657. tests/shared_test_functions.sh \
  658. tests/shared_valgrind_functions.sh \
  659. tests/test_tarsnap.sh
  660. # Tarsnap configuration file
  661. if INSTALL_CONF_NO_SAMPLE
  662. tar/tarsnap.conf: tar/tarsnap.conf.sample
  663. cp $< $@
  664. sysconf_DATA = tar/tarsnap.conf
  665. CLEANFILES += tar/tarsnap.conf
  666. else
  667. sysconf_DATA = tar/tarsnap.conf.sample
  668. endif
  669. # Use the right version of the man pages depending on whether we have mdoc
  670. # macros available on this system.
  671. tar/tarsnap.1-man tar/tarsnap.1-mdoc \
  672. tar/tarsnap.conf.5-man tar/tarsnap.conf.5-mdoc: tar/tarsnap.1-man.in \
  673. tar/tarsnap.1-mdoc.in tar/tarsnap.conf.5-man.in \
  674. tar/tarsnap.conf.5-mdoc.in
  675. sed -e 's|@sysconfdir[@]|${sysconfdir}|g' ${srcdir}/$@.in > $@.tmp
  676. mv $@.tmp $@
  677. tar/tarsnap.1: tar/tarsnap.1-@MANVER@
  678. cat tar/tarsnap.1-@MANVER@ > tar/tarsnap.1.tmp
  679. mv $@.tmp $@
  680. tar/tarsnap.conf.5: tar/tarsnap.conf.5-@MANVER@
  681. cat tar/tarsnap.conf.5-@MANVER@ > tar/tarsnap.conf.5.tmp
  682. mv $@.tmp $@
  683. keygen/tarsnap-keygen.1: keygen/tarsnap-keygen.1-@MANVER@
  684. cat $(top_srcdir)/keygen/tarsnap-keygen.1-@MANVER@ > keygen/tarsnap-keygen.1.tmp
  685. mv $@.tmp $@
  686. keyregen/tarsnap-keyregen.1: keyregen/tarsnap-keyregen.1-@MANVER@
  687. cat $(top_srcdir)/keyregen/tarsnap-keyregen.1-@MANVER@ > keyregen/tarsnap-keyregen.1.tmp
  688. mv $@.tmp $@
  689. recrypt/tarsnap-recrypt.1: recrypt/tarsnap-recrypt.1-@MANVER@
  690. cat $(top_srcdir)/recrypt/tarsnap-recrypt.1-@MANVER@ > recrypt/tarsnap-recrypt.1.tmp
  691. mv $@.tmp $@
  692. keymgmt/tarsnap-keymgmt.1: keymgmt/tarsnap-keymgmt.1-@MANVER@
  693. cat $(top_srcdir)/keymgmt/tarsnap-keymgmt.1-@MANVER@ > keymgmt/tarsnap-keymgmt.1.tmp
  694. mv $@.tmp $@
  695. # Add man files to dist
  696. EXTRA_DIST+= \
  697. keygen/tarsnap-keygen.1-man \
  698. keygen/tarsnap-keygen.1-mdoc \
  699. keymgmt/tarsnap-keymgmt.1-man \
  700. keymgmt/tarsnap-keymgmt.1-mdoc \
  701. keyregen/tarsnap-keyregen.1-man \
  702. keyregen/tarsnap-keyregen.1-mdoc \
  703. recrypt/tarsnap-recrypt.1-man \
  704. recrypt/tarsnap-recrypt.1-mdoc \
  705. tar/tarsnap.1-man.in \
  706. tar/tarsnap.1-mdoc.in \
  707. tar/tarsnap.conf.5-man.in \
  708. tar/tarsnap.conf.5-mdoc.in \
  709. tar/tarsnap.conf.sample
  710. CLEANFILES+= tar/tarsnap.1-mdoc tar/tarsnap.conf.5-mdoc
  711. # Add misc files to dist
  712. EXTRA_DIST+= \
  713. BUILDING \
  714. lib/netpacket/packets.txt \
  715. libcperciva/COPYRIGHT \
  716. misc/describe-options.txt \
  717. pkg/
  718. #
  719. # Misc helper scripts
  720. #
  721. #
  722. if INSTALL_BASH_COMPLETION
  723. bashcompdir = $(BASH_COMPLETION_DIR)
  724. dist_bashcomp_DATA = \
  725. misc/bash_completion.d/tarsnap \
  726. misc/bash_completion.d/tarsnap-keygen \
  727. misc/bash_completion.d/tarsnap-keymgmt \
  728. misc/bash_completion.d/tarsnap-keyregen \
  729. misc/bash_completion.d/tarsnap-recrypt
  730. endif
  731. if INSTALL_ZSH_COMPLETION
  732. zshcompdir = $(ZSH_COMPLETION_DIR)
  733. dist_zshcomp_DATA = misc/zsh_completion/_tarsnap
  734. endif