You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile.am 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. # Copyright (c) 2013-2016 The Starwels developers
  2. # Distributed under the MIT software license, see the accompanying
  3. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
  4. DIST_SUBDIRS = secp256k1 univalue
  5. AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(HARDENED_LDFLAGS)
  6. AM_CXXFLAGS = $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS)
  7. AM_CPPFLAGS = $(HARDENED_CPPFLAGS)
  8. EXTRA_LIBRARIES =
  9. if EMBEDDED_UNIVALUE
  10. LIBUNIVALUE = univalue/libunivalue.la
  11. $(LIBUNIVALUE): $(wildcard univalue/lib/*) $(wildcard univalue/include/*)
  12. $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
  13. else
  14. LIBUNIVALUE = $(UNIVALUE_LIBS)
  15. endif
  16. STARWELS_CONFIG_INCLUDES=-I$(builddir)/config
  17. STARWELS_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
  18. STARWELS_INCLUDES += -I$(srcdir)/secp256k1/include
  19. STARWELS_INCLUDES += $(UNIVALUE_CFLAGS)
  20. LIBSTARWELS_SERVER=libstarwels_server.a
  21. LIBSTARWELS_COMMON=libstarwels_common.a
  22. LIBSTARWELS_CONSENSUS=libstarwels_consensus.a
  23. LIBSTARWELS_CLI=libstarwels_cli.a
  24. LIBSTARWELS_UTIL=libstarwels_util.a
  25. LIBSTARWELS_CRYPTO=crypto/libstarwels_crypto.a
  26. LIBSTARWELSQT=qt/libstarwelsqt.a
  27. LIBSECP256K1=secp256k1/libsecp256k1.la
  28. if ENABLE_ZMQ
  29. LIBSTARWELS_ZMQ=libstarwels_zmq.a
  30. endif
  31. if BUILD_STARWELS_LIBS
  32. LIBSTARWELSCONSENSUS=libstarwelsconsensus.la
  33. endif
  34. if ENABLE_WALLET
  35. LIBSTARWELS_WALLET=libstarwels_wallet.a
  36. endif
  37. $(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
  38. $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
  39. # Make is not made aware of per-object dependencies to avoid limiting building parallelization
  40. # But to build the less dependent modules first, we manually select their order here:
  41. EXTRA_LIBRARIES += \
  42. $(LIBSTARWELS_CRYPTO) \
  43. $(LIBSTARWELS_UTIL) \
  44. $(LIBSTARWELS_COMMON) \
  45. $(LIBSTARWELS_CONSENSUS) \
  46. $(LIBSTARWELS_SERVER) \
  47. $(LIBSTARWELS_CLI) \
  48. $(LIBSTARWELS_WALLET) \
  49. $(LIBSTARWELS_ZMQ)
  50. lib_LTLIBRARIES = $(LIBSTARWELSCONSENSUS)
  51. bin_PROGRAMS =
  52. noinst_PROGRAMS =
  53. TESTS =
  54. BENCHMARKS =
  55. if BUILD_STARWELSD
  56. bin_PROGRAMS += starwelsd
  57. endif
  58. if BUILD_STARWELS_UTILS
  59. bin_PROGRAMS += starwels-cli starwels-tx
  60. endif
  61. .PHONY: FORCE check-symbols check-security
  62. # starwels #
  63. STARWELS_CORE_H = \
  64. addrdb.h \
  65. addrman.h \
  66. base58.h \
  67. bloom.h \
  68. blockencodings.h \
  69. chain.h \
  70. chainparams.h \
  71. chainparamsbase.h \
  72. chainparamsseeds.h \
  73. checkpoints.h \
  74. checkqueue.h \
  75. clientversion.h \
  76. coins.h \
  77. compat.h \
  78. compat/byteswap.h \
  79. compat/endian.h \
  80. compat/sanity.h \
  81. compressor.h \
  82. consensus/consensus.h \
  83. consensus/tx_verify.h \
  84. core_io.h \
  85. core_memusage.h \
  86. cuckoocache.h \
  87. fs.h \
  88. httprpc.h \
  89. httpserver.h \
  90. indirectmap.h \
  91. init.h \
  92. key.h \
  93. keystore.h \
  94. dbwrapper.h \
  95. limitedmap.h \
  96. memusage.h \
  97. merkleblock.h \
  98. miner.h \
  99. net.h \
  100. net_processing.h \
  101. netaddress.h \
  102. netbase.h \
  103. netmessagemaker.h \
  104. noui.h \
  105. policy/feerate.h \
  106. policy/fees.h \
  107. policy/policy.h \
  108. policy/rbf.h \
  109. pow.h \
  110. protocol.h \
  111. random.h \
  112. reverse_iterator.h \
  113. reverselock.h \
  114. rpc/blockchain.h \
  115. rpc/client.h \
  116. rpc/mining.h \
  117. rpc/protocol.h \
  118. rpc/server.h \
  119. rpc/register.h \
  120. scheduler.h \
  121. script/sigcache.h \
  122. script/sign.h \
  123. script/standard.h \
  124. script/ismine.h \
  125. streams.h \
  126. support/allocators/secure.h \
  127. support/allocators/zeroafterfree.h \
  128. support/cleanse.h \
  129. support/events.h \
  130. support/lockedpool.h \
  131. sync.h \
  132. threadsafety.h \
  133. threadinterrupt.h \
  134. timedata.h \
  135. torcontrol.h \
  136. txdb.h \
  137. txmempool.h \
  138. ui_interface.h \
  139. undo.h \
  140. util.h \
  141. utilmoneystr.h \
  142. utiltime.h \
  143. validation.h \
  144. validationinterface.h \
  145. versionbits.h \
  146. wallet/coincontrol.h \
  147. wallet/crypter.h \
  148. wallet/db.h \
  149. wallet/feebumper.h \
  150. wallet/rpcwallet.h \
  151. wallet/wallet.h \
  152. wallet/walletdb.h \
  153. warnings.h \
  154. zmq/zmqabstractnotifier.h \
  155. zmq/zmqconfig.h\
  156. zmq/zmqnotificationinterface.h \
  157. zmq/zmqpublishnotifier.h
  158. obj/build.h: FORCE
  159. @$(MKDIR_P) $(builddir)/obj
  160. @$(top_srcdir)/share/genbuild.sh "$(abs_top_builddir)/src/obj/build.h" \
  161. "$(abs_top_srcdir)"
  162. libstarwels_util_a-clientversion.$(OBJEXT): obj/build.h
  163. # server: shared between starwelsd and starwels-qt
  164. libstarwels_server_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES) $(MINIUPNPC_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS)
  165. libstarwels_server_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  166. libstarwels_server_a_SOURCES = \
  167. addrdb.cpp \
  168. addrman.cpp \
  169. bloom.cpp \
  170. blockencodings.cpp \
  171. chain.cpp \
  172. checkpoints.cpp \
  173. consensus/tx_verify.cpp \
  174. httprpc.cpp \
  175. httpserver.cpp \
  176. init.cpp \
  177. dbwrapper.cpp \
  178. merkleblock.cpp \
  179. miner.cpp \
  180. net.cpp \
  181. net_processing.cpp \
  182. noui.cpp \
  183. policy/fees.cpp \
  184. policy/policy.cpp \
  185. policy/rbf.cpp \
  186. pow.cpp \
  187. rest.cpp \
  188. rpc/blockchain.cpp \
  189. rpc/mining.cpp \
  190. rpc/misc.cpp \
  191. rpc/net.cpp \
  192. rpc/rawtransaction.cpp \
  193. rpc/server.cpp \
  194. script/sigcache.cpp \
  195. script/ismine.cpp \
  196. timedata.cpp \
  197. torcontrol.cpp \
  198. txdb.cpp \
  199. txmempool.cpp \
  200. ui_interface.cpp \
  201. validation.cpp \
  202. validationinterface.cpp \
  203. versionbits.cpp \
  204. $(STARWELS_CORE_H)
  205. if ENABLE_ZMQ
  206. libstarwels_zmq_a_CPPFLAGS = $(STARWELS_INCLUDES) $(ZMQ_CFLAGS)
  207. libstarwels_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  208. libstarwels_zmq_a_SOURCES = \
  209. zmq/zmqabstractnotifier.cpp \
  210. zmq/zmqnotificationinterface.cpp \
  211. zmq/zmqpublishnotifier.cpp
  212. endif
  213. # wallet: shared between starwelsd and starwels-qt, but only linked
  214. # when wallet enabled
  215. libstarwels_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  216. libstarwels_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  217. libstarwels_wallet_a_SOURCES = \
  218. wallet/crypter.cpp \
  219. wallet/db.cpp \
  220. wallet/feebumper.cpp \
  221. wallet/rpcdump.cpp \
  222. wallet/rpcwallet.cpp \
  223. wallet/wallet.cpp \
  224. wallet/walletdb.cpp \
  225. $(STARWELS_CORE_H)
  226. # crypto primitives library
  227. crypto_libstarwels_crypto_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_CONFIG_INCLUDES)
  228. crypto_libstarwels_crypto_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  229. crypto_libstarwels_crypto_a_SOURCES = \
  230. crypto/aes.cpp \
  231. crypto/aes.h \
  232. crypto/chacha20.h \
  233. crypto/chacha20.cpp \
  234. crypto/common.h \
  235. crypto/hmac_sha256.cpp \
  236. crypto/hmac_sha256.h \
  237. crypto/hmac_sha512.cpp \
  238. crypto/hmac_sha512.h \
  239. crypto/ripemd160.cpp \
  240. crypto/ripemd160.h \
  241. crypto/sha1.cpp \
  242. crypto/sha1.h \
  243. crypto/sha256.cpp \
  244. crypto/sha256.h \
  245. crypto/sha512.cpp \
  246. crypto/sha512.h
  247. if EXPERIMENTAL_ASM
  248. crypto_libstarwels_crypto_a_SOURCES += crypto/sha256_sse4.cpp
  249. endif
  250. # consensus: shared between all executables that validate any consensus rules.
  251. libstarwels_consensus_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  252. libstarwels_consensus_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  253. libstarwels_consensus_a_SOURCES = \
  254. amount.h \
  255. arith_uint256.cpp \
  256. arith_uint256.h \
  257. consensus/merkle.cpp \
  258. consensus/merkle.h \
  259. consensus/params.h \
  260. consensus/validation.h \
  261. hash.cpp \
  262. hash.h \
  263. prevector.h \
  264. primitives/block.cpp \
  265. primitives/block.h \
  266. primitives/transaction.cpp \
  267. primitives/transaction.h \
  268. pubkey.cpp \
  269. pubkey.h \
  270. script/starwelsconsensus.cpp \
  271. script/interpreter.cpp \
  272. script/interpreter.h \
  273. script/script.cpp \
  274. script/script.h \
  275. script/script_error.cpp \
  276. script/script_error.h \
  277. serialize.h \
  278. tinyformat.h \
  279. uint256.cpp \
  280. uint256.h \
  281. utilstrencodings.cpp \
  282. utilstrencodings.h \
  283. version.h
  284. # common: shared between starwelsd, and starwels-qt and non-server tools
  285. libstarwels_common_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  286. libstarwels_common_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  287. libstarwels_common_a_SOURCES = \
  288. base58.cpp \
  289. chainparams.cpp \
  290. coins.cpp \
  291. compressor.cpp \
  292. core_read.cpp \
  293. core_write.cpp \
  294. key.cpp \
  295. keystore.cpp \
  296. netaddress.cpp \
  297. netbase.cpp \
  298. policy/feerate.cpp \
  299. protocol.cpp \
  300. scheduler.cpp \
  301. script/sign.cpp \
  302. script/standard.cpp \
  303. warnings.cpp \
  304. $(STARWELS_CORE_H)
  305. # util: shared between all executables.
  306. # This library *must* be included to make sure that the glibc
  307. # backward-compatibility objects and their sanity checks are linked.
  308. libstarwels_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  309. libstarwels_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  310. libstarwels_util_a_SOURCES = \
  311. support/lockedpool.cpp \
  312. chainparamsbase.cpp \
  313. clientversion.cpp \
  314. compat/glibc_sanity.cpp \
  315. compat/glibcxx_sanity.cpp \
  316. compat/strnlen.cpp \
  317. fs.cpp \
  318. random.cpp \
  319. rpc/protocol.cpp \
  320. support/cleanse.cpp \
  321. sync.cpp \
  322. threadinterrupt.cpp \
  323. util.cpp \
  324. utilmoneystr.cpp \
  325. utilstrencodings.cpp \
  326. utiltime.cpp \
  327. $(STARWELS_CORE_H)
  328. if GLIBC_BACK_COMPAT
  329. libstarwels_util_a_SOURCES += compat/glibc_compat.cpp
  330. endif
  331. # cli: shared between starwels-cli and starwels-qt
  332. libstarwels_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  333. libstarwels_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  334. libstarwels_cli_a_SOURCES = \
  335. rpc/client.cpp \
  336. $(STARWELS_CORE_H)
  337. nodist_libstarwels_util_a_SOURCES = $(srcdir)/obj/build.h
  338. #
  339. # starwelsd binary #
  340. starwelsd_SOURCES = starwelsd.cpp
  341. starwelsd_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  342. starwelsd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  343. starwelsd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
  344. if TARGET_WINDOWS
  345. starwelsd_SOURCES += starwelsd-res.rc
  346. endif
  347. starwelsd_LDADD = \
  348. $(LIBSTARWELS_SERVER) \
  349. $(LIBSTARWELS_COMMON) \
  350. $(LIBUNIVALUE) \
  351. $(LIBSTARWELS_UTIL) \
  352. $(LIBSTARWELS_WALLET) \
  353. $(LIBSTARWELS_ZMQ) \
  354. $(LIBSTARWELS_CONSENSUS) \
  355. $(LIBSTARWELS_CRYPTO) \
  356. $(LIBLEVELDB) \
  357. $(LIBLEVELDB_SSE42) \
  358. $(LIBMEMENV) \
  359. $(LIBSECP256K1)
  360. starwelsd_LDADD += $(BOOST_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS) $(ZMQ_LIBS)
  361. # starwels-cli binary #
  362. starwels_cli_SOURCES = starwels-cli.cpp
  363. starwels_cli_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES) $(EVENT_CFLAGS)
  364. starwels_cli_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  365. starwels_cli_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
  366. if TARGET_WINDOWS
  367. starwels_cli_SOURCES += starwels-cli-res.rc
  368. endif
  369. starwels_cli_LDADD = \
  370. $(LIBSTARWELS_CLI) \
  371. $(LIBUNIVALUE) \
  372. $(LIBSTARWELS_UTIL) \
  373. $(LIBSTARWELS_CRYPTO)
  374. starwels_cli_LDADD += $(BOOST_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(EVENT_LIBS)
  375. #
  376. # starwels-tx binary #
  377. starwels_tx_SOURCES = starwels-tx.cpp
  378. starwels_tx_CPPFLAGS = $(AM_CPPFLAGS) $(STARWELS_INCLUDES)
  379. starwels_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  380. starwels_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
  381. if TARGET_WINDOWS
  382. starwels_tx_SOURCES += starwels-tx-res.rc
  383. endif
  384. starwels_tx_LDADD = \
  385. $(LIBUNIVALUE) \
  386. $(LIBSTARWELS_COMMON) \
  387. $(LIBSTARWELS_UTIL) \
  388. $(LIBSTARWELS_CONSENSUS) \
  389. $(LIBSTARWELS_CRYPTO) \
  390. $(LIBSECP256K1)
  391. starwels_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
  392. #
  393. # starwelsconsensus library #
  394. if BUILD_STARWELS_LIBS
  395. include_HEADERS = script/starwelsconsensus.h
  396. libstarwelsconsensus_la_SOURCES = $(crypto_libstarwels_crypto_a_SOURCES) $(libstarwels_consensus_a_SOURCES)
  397. if GLIBC_BACK_COMPAT
  398. libstarwelsconsensus_la_SOURCES += compat/glibc_compat.cpp
  399. endif
  400. libstarwelsconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
  401. libstarwelsconsensus_la_LIBADD = $(LIBSECP256K1)
  402. libstarwelsconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -DBUILD_STARWELS_INTERNAL
  403. libstarwelsconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
  404. endif
  405. #
  406. CTAES_DIST = crypto/ctaes/bench.c
  407. CTAES_DIST += crypto/ctaes/ctaes.c
  408. CTAES_DIST += crypto/ctaes/ctaes.h
  409. CTAES_DIST += crypto/ctaes/README.md
  410. CTAES_DIST += crypto/ctaes/test.c
  411. CLEANFILES = $(EXTRA_LIBRARIES)
  412. CLEANFILES += *.gcda *.gcno
  413. CLEANFILES += compat/*.gcda compat/*.gcno
  414. CLEANFILES += consensus/*.gcda consensus/*.gcno
  415. CLEANFILES += crypto/*.gcda crypto/*.gcno
  416. CLEANFILES += policy/*.gcda policy/*.gcno
  417. CLEANFILES += primitives/*.gcda primitives/*.gcno
  418. CLEANFILES += script/*.gcda script/*.gcno
  419. CLEANFILES += support/*.gcda support/*.gcno
  420. CLEANFILES += univalue/*.gcda univalue/*.gcno
  421. CLEANFILES += wallet/*.gcda wallet/*.gcno
  422. CLEANFILES += wallet/test/*.gcda wallet/test/*.gcno
  423. CLEANFILES += zmq/*.gcda zmq/*.gcno
  424. DISTCLEANFILES = obj/build.h
  425. EXTRA_DIST = $(CTAES_DIST)
  426. config/starwels-config.h: config/stamp-h1
  427. @$(MAKE) -C $(top_builddir) $(subdir)/$(@)
  428. config/stamp-h1: $(top_srcdir)/$(subdir)/config/starwels-config.h.in $(top_builddir)/config.status
  429. $(AM_V_at)$(MAKE) -C $(top_builddir) $(subdir)/$(@)
  430. $(top_srcdir)/$(subdir)/config/starwels-config.h.in: $(am__configure_deps)
  431. $(AM_V_at)$(MAKE) -C $(top_srcdir) $(subdir)/config/starwels-config.h.in
  432. clean-local:
  433. -$(MAKE) -C secp256k1 clean
  434. -$(MAKE) -C univalue clean
  435. -rm -f leveldb/*/*.gcda leveldb/*/*.gcno leveldb/helpers/memenv/*.gcda leveldb/helpers/memenv/*.gcno
  436. -rm -f config.h
  437. -rm -rf test/__pycache__
  438. .rc.o:
  439. @test -f $(WINDRES)
  440. ## FIXME: How to get the appropriate modulename_CPPFLAGS in here?
  441. $(AM_V_GEN) $(WINDRES) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) -DWINDRES_PREPROC -i $< -o $@
  442. .mm.o:
  443. $(AM_V_CXX) $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
  444. $(CPPFLAGS) $(AM_CXXFLAGS) $(QT_INCLUDES) $(AM_CXXFLAGS) $(PIE_FLAGS) $(CXXFLAGS) -c -o $@ $<
  445. check-symbols: $(bin_PROGRAMS)
  446. if GLIBC_BACK_COMPAT
  447. @echo "Checking glibc back compat..."
  448. $(AM_V_at) READELF=$(READELF) CPPFILT=$(CPPFILT) $(top_srcdir)/contrib/devtools/symbol-check.py < $(bin_PROGRAMS)
  449. endif
  450. check-security: $(bin_PROGRAMS)
  451. if HARDEN
  452. @echo "Checking binary security..."
  453. $(AM_V_at) READELF=$(READELF) OBJDUMP=$(OBJDUMP) $(top_srcdir)/contrib/devtools/security-check.py < $(bin_PROGRAMS)
  454. endif
  455. %.pb.cc %.pb.h: %.proto
  456. @test -f $(PROTOC)
  457. $(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(<D) $<
  458. if EMBEDDED_LEVELDB
  459. include Makefile.leveldb.include
  460. endif
  461. if ENABLE_TESTS
  462. include Makefile.test.include
  463. endif
  464. if ENABLE_BENCH
  465. include Makefile.bench.include
  466. endif
  467. if ENABLE_QT
  468. include Makefile.qt.include
  469. endif
  470. if ENABLE_QT_TESTS
  471. include Makefile.qttest.include
  472. endif