Build fix
[VerusCoin.git] / src / Makefile.am
1 # Copyright (c) 2018-2019 The Verus developers
2 # Copyright (c) 2017-2019 The Komodo developers
3 # Copyright (c) 2016-2019 The Zcash developers
4 # Copyright (c) 2013-2019 The Bitcoin Core developers
5 # Copyright (c) 2013-2019 Bitcoin Developers
6 # Distributed under the MIT software license, see the accompanying
7 # file COPYING or https://www.opensource.org/licenses/mit-license.php .
8
9 DIST_SUBDIRS = secp256k1 univalue cryptoconditions
10
11 AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS) $(SAN_LDFLAGS) $(HARDENED_LDFLAGS)
12 AM_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) $(ERROR_CXXFLAGS)
13 AM_CPPFLAGS = $(HARDENED_CPPFLAGS)
14 EXTRA_LIBRARIES =
15
16 if ARCH_ARM
17 PLATFORM_VARIANT = armv8.1-a+crypto
18 else
19 PLATFORM_VARIANT = x86-64
20 endif
21
22
23 if EMBEDDED_LEVELDB
24 LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/include
25 LEVELDB_CPPFLAGS += -I$(srcdir)/leveldb/helpers/memenv
26 LIBLEVELDB += $(builddir)/leveldb/libleveldb.a
27 LIBMEMENV  += $(builddir)/leveldb/libmemenv.a
28
29 # NOTE: This dependency is not strictly necessary, but without it make may try to build both in parallel, which breaks the LevelDB build system in a race
30 $(LIBLEVELDB): $(LIBMEMENV)
31
32 $(LIBLEVELDB) $(LIBMEMENV):
33         @echo "Building LevelDB ..." && $(MAKE) -C $(@D) $(@F) CXX="$(CXX)" \
34           CC="$(CC)" PLATFORM=$(TARGET_OS) AR="$(AR)" $(LEVELDB_TARGET_FLAGS) \
35           OPT="$(AM_CXXFLAGS) $(PIE_FLAGS) $(CXXFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -D__STDC_LIMIT_MACROS"
36 endif
37
38 BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
39 BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BDB_CPPFLAGS) $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
40
41 BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
42 BITCOIN_INCLUDES += -I$(srcdir)/cryptoconditions/include
43 BITCOIN_INCLUDES += -I$(srcdir)/cryptoconditions/src/include/falcon
44 BITCOIN_INCLUDES += -I$(srcdir)/cryptoconditions/src
45 BITCOIN_INCLUDES += -I$(srcdir)/cryptoconditions/src/asn
46 BITCOIN_INCLUDES += -I$(srcdir)/snark
47 BITCOIN_INCLUDES += -I$(srcdir)/snark/libsnark
48 BITCOIN_INCLUDES += -I$(srcdir)/univalue/include
49
50 LIBBITCOIN_SERVER=libbitcoin_server.a -lcurl
51 LIBBITCOIN_WALLET=libbitcoin_wallet.a
52 LIBBITCOIN_COMMON=libbitcoin_common.a
53 LIBBITCOIN_CLI=libbitcoin_cli.a
54 LIBBITCOIN_UTIL=libbitcoin_util.a
55 LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
56 LIBVERUS_CRYPTO=crypto/libverus_crypto.a
57 LIBVERUS_PORTABLE_CRYPTO=crypto/libverus_portable_crypto.a
58 LIBSECP256K1=secp256k1/libsecp256k1.la
59 LIBCRYPTOCONDITIONS=cryptoconditions/libcryptoconditions_core.la
60 LIBSNARK=snark/libsnark.a
61 LIBUNIVALUE=univalue/libunivalue.la
62 LIBZCASH=libzcash.a
63
64 if ENABLE_ZMQ
65 LIBBITCOIN_ZMQ=libbitcoin_zmq.a
66 endif
67 if ENABLE_PROTON
68 LIBBITCOIN_PROTON=libbitcoin_proton.a
69 endif
70 if BUILD_BITCOIN_LIBS
71 LIBZCASH_CONSENSUS=libzcashconsensus.la
72 endif
73 if ENABLE_WALLET
74 LIBBITCOIN_WALLET=libbitcoin_wallet.a
75 endif
76
77 $(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
78         $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) OPTFLAGS="-O3 -march=$(PLATFORM_VARIANT) -g "
79
80 LIBSNARK_CXXFLAGS = $(AM_CXXFLAGS) $(PIC_FLAGS) -DBINARY_OUTPUT -DNO_PT_COMPRESSION=1 -fstack-protector-all
81 LIBSNARK_CONFIG_FLAGS = CURVE=ALT_BN128 NO_PROCPS=1 NO_DOCS=1 STATIC=1 NO_SUPERCOP=1 FEATUREFLAGS=-DMONTGOMERY_OUTPUT NO_COPY_DEPINST=1 NO_COMPILE_LIBGTEST=1
82 if HAVE_OPENMP
83 LIBSNARK_CONFIG_FLAGS += MULTICORE=1
84 endif
85 if TARGET_DARWIN
86 LIBSNARK_CONFIG_FLAGS += PLATFORM=darwin
87 endif
88
89 $(LIBSNARK): $(wildcard snark/src/*)
90         $(AM_V_at) CC="$(CC)" CXX="$(CXX)" AR="$(AR)" CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="$(LIBSNARK_OPTFLAGS)"
91
92 libsnark-tests: $(wildcard snark/src/*)
93         $(AM_V_at) CC="$(CC)" CXX="$(CXX)" AR="$(AR)" CXXFLAGS="$(LIBSNARK_CXXFLAGS)" $(MAKE) $(AM_MAKEFLAGS) -C snark/ check DEPINST="$(LIBSNARK_DEPINST)" $(LIBSNARK_CONFIG_FLAGS) OPTFLAGS="$(LIBSNARK_OPTFLAGS)"
94
95 $(LIBUNIVALUE): $(wildcard univalue/lib/*)
96         $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) OPTFLAGS="-O3 -march=$(PLATFORM_VARIANT) -g "
97
98 $(LIBCRYPTOCONDITIONS): $(wildcard cryptoconditions/src/*) $(wildcard cryptoconditions/include/*)
99         $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F) OPTFLAGS="-O3 -march=$(PLATFORM_VARIANT) -g "
100
101 # Make is not made aware of per-object dependencies to avoid limiting building parallelization
102 # But to build the less dependent modules first, we manually select their order here:
103 EXTRA_LIBRARIES += \
104   $(LIBBITCOIN_CRYPTO) \
105   $(LIBVERUS_CRYPTO) \
106   $(LIBVERUS_PORTABLE_CRYPTO) \
107   $(LIBBITCOIN_UTIL) \
108   $(LIBBITCOIN_COMMON) \
109   $(LIBBITCOIN_SERVER) \
110   $(LIBBITCOIN_CLI) \
111   libzcash.a
112 if ENABLE_WALLET
113 BITCOIN_INCLUDES += $(BDB_CPPFLAGS)
114 EXTRA_LIBRARIES += $(LIBBITCOIN_WALLET)
115 endif
116 if ENABLE_ZMQ
117 EXTRA_LIBRARIES += $(LIBBITCOIN_ZMQ)
118 endif
119 if ENABLE_PROTON
120 EXTRA_LIBRARIES += $(LIBBITCOIN_PROTON)
121 endif
122
123 lib_LTLIBRARIES = $(LIBZCASH_CONSENSUS)
124
125 bin_PROGRAMS =
126 noinst_PROGRAMS =
127 TESTS =
128
129 #if BUILD_BITCOIND
130   bin_PROGRAMS += verusd
131 #endif
132
133 if BUILD_BITCOIN_UTILS
134   bin_PROGRAMS += verus verus-tx
135 endif
136 if ENABLE_WALLET
137   bin_PROGRAMS += wallet-utility
138 endif
139
140
141 LIBZCASH_H = \
142   zcash/IncrementalMerkleTree.hpp \
143   zcash/NoteEncryption.hpp \
144   zcash/Address.hpp \
145   zcash/JoinSplit.hpp \
146   zcash/Note.hpp \
147   zcash/prf.h \
148   zcash/Proof.hpp \
149   zcash/util.h \
150   zcash/Zcash.h \
151   zcash/zip32.h
152
153 .PHONY: FORCE collate-libsnark check-symbols check-security
154 # bitcoin core #
155 BITCOIN_CORE_H = \
156   addressindex.h \
157   spentindex.h \
158   addrman.h \
159   alert.h \
160   amount.h \
161   amqp/amqpabstractnotifier.h \
162   amqp/amqpconfig.h \
163   amqp/amqpnotificationinterface.h \
164   amqp/amqppublishnotifier.h \
165   amqp/amqpsender.h \
166   arith_uint256.h \
167   asyncrpcoperation.h \
168   asyncrpcqueue.h \
169   base58.h \
170   bech32.h \
171   bloom.h \
172   cc/eval.h \
173   chain.h \
174   chainparams.h \
175   chainparamsbase.h \
176   chainparamsseeds.h \
177   checkpoints.h \
178   checkqueue.h \
179   clientversion.h \
180   coincontrol.h \
181   coins.h \
182   compat.h \
183   compat/byteswap.h \
184   compat/endian.h \
185   compat/sanity.h \
186   compressor.h \
187   consensus/consensus.h \
188   consensus/params.h \
189   consensus/upgrades.h \
190   consensus/validation.h \
191   core_io.h \
192   core_memusage.h \
193   crypto/haraka.h \
194   crypto/haraka_portable.h \
195   crypto/verus_clhash.h \
196   crypto/verus_hash.h \
197   deprecation.h \
198   hash.h \
199   httprpc.h \
200   httpserver.h \
201   init.h \
202   key.h \
203   key_io.h \
204   keystore.h \
205   dbwrapper.h \
206   limitedmap.h \
207   main.h \
208   memusage.h \
209   merkleblock.h \
210   metrics.h \
211   miner.h \
212   pbaasrpc.h \
213   mmr.h \
214   mruset.h \
215   net.h \
216   netbase.h \
217   noui.h \
218   pbaas/crosschainrpc.h \
219   pbaas/vdxf.h \
220   pbaas/identity.h \
221   pbaas/notarization.h \
222   pbaas/pbaas.h \
223   pbaas/reserves.h \
224   policy/fees.h \
225   pow.h \
226   prevector.h \
227   primitives/block.h \
228   primitives/transaction.h \
229   primitives/nonce.h \
230   primitives/solutiondata.h \
231   protocol.h \
232   pubkey.h \
233   random.h \
234   reverselock.h \
235   rpc/client.h \
236   rpc/protocol.h \
237   rpc/server.h \
238   rpc/register.h \
239   scheduler.h \
240   script/interpreter.h \
241   script/script.h \
242   script/script_error.h \
243   script/serverchecker.h \
244   script/sign.h \
245   script/standard.h \
246   serialize.h \
247   spentindex.h \
248   streams.h \
249   support/allocators/secure.h \
250   support/allocators/zeroafterfree.h \
251   support/cleanse.h \
252   support/events.h \
253   support/pagelocker.h \
254   sync.h \
255   threadsafety.h \
256   timedata.h \
257   timestampindex.h \
258   tinyformat.h \
259   torcontrol.h \
260   transaction_builder.h \
261   txdb.h \
262   txmempool.h \
263   ui_interface.h \
264   uint256.h \
265   uint252.h \
266   undo.h \
267   util.h \
268   utilmoneystr.h \
269   utilstrencodings.h \
270   utiltest.h \
271   utiltime.h \
272   validationinterface.h \
273   version.h \
274   wallet/asyncrpcoperation_common.h \
275   wallet/asyncrpcoperation_mergetoaddress.h \
276   wallet/asyncrpcoperation_saplingmigration.h \
277   wallet/asyncrpcoperation_sendmany.h \
278   wallet/asyncrpcoperation_shieldcoinbase.h \
279   wallet/crypter.h \
280   wallet/db.h \
281   wallet/paymentdisclosure.h \
282   wallet/paymentdisclosuredb.h \
283   wallet/rpcwallet.h \
284   wallet/wallet.h \
285   wallet/wallet_ismine.h \
286   wallet/walletdb.h \
287   veruslaunch.h \
288   zmq/zmqabstractnotifier.h \
289   zmq/zmqconfig.h\
290   zmq/zmqnotificationinterface.h \
291   zmq/zmqpublishnotifier.h
292
293
294 obj/build.h: FORCE
295         @$(MKDIR_P) $(builddir)/obj
296         @$(top_srcdir)/share/genbuild.sh $(abs_top_builddir)/src/obj/build.h \
297         $(abs_top_srcdir)
298 libbitcoin_util_a-clientversion.$(OBJEXT): obj/build.h
299
300 # server: zcashd
301 libbitcoin_server_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS)
302 libbitcoin_server_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
303 libbitcoin_server_a_SOURCES = \
304   sendalert.cpp \
305   addrman.cpp \
306   alert.cpp \
307   alertkeys.h \
308   asyncrpcoperation.cpp \
309   asyncrpcqueue.cpp \
310   bloom.cpp \
311   cc/eval.cpp \
312   cc/import.cpp \
313   cc/CCassetsCore.cpp \
314   cc/CCcustom.cpp \
315   cc/CCtx.cpp \
316   cc/CCutils.cpp \
317   cc/StakeGuard.cpp \
318   cc/StakeGuard.h \
319   cc/assets.cpp \
320   cc/faucet.cpp \
321   cc/rewards.cpp \
322   cc/dice.cpp \
323   cc/lotto.cpp \
324   cc/fsm.cpp \
325   cc/MofN.cpp \
326   cc/oracles.cpp \
327   cc/prices.cpp \
328   cc/pegs.cpp \
329   cc/triggers.cpp \
330   cc/payments.cpp \
331   cc/gateways.cpp \
332   cc/channels.cpp \
333   cc/auction.cpp \
334   cc/betprotocol.cpp \
335   chain.cpp \
336   cheatcatcher.h \
337   cheatcatcher.cpp \
338   checkpoints.cpp \
339   crosschain.cpp \
340   crypto/haraka.h \
341   crypto/haraka_portable.h \
342   crypto/verus_clhash.h \
343   crypto/verus_hash.h \
344   crypto/verus_hash.cpp \
345   deprecation.cpp \
346   httprpc.cpp \
347   httpserver.cpp \
348   init.cpp \
349   dbwrapper.cpp \
350   main.cpp \
351   merkleblock.cpp \
352   metrics.h \
353   miner.cpp \
354   net.cpp \
355   noui.cpp \
356   notarisationdb.cpp \
357   pbaas/identity.cpp \
358   pbaas/notarization.cpp \
359   pbaas/pbaas.cpp \
360   pbaas/reserves.cpp \
361   policy/fees.cpp \
362   pow.cpp \
363   primitives/solutiondata.cpp \
364   rest.cpp \
365   rpc/blockchain.cpp \
366   rpc/crosschain.cpp \
367   rpc/mining.cpp \
368   rpc/pbaasrpc.cpp \
369   rpc/misc.cpp \
370   rpc/net.cpp \
371   rpc/rawtransaction.cpp \
372   rpc/server.cpp \
373   script/serverchecker.cpp \
374   script/sigcache.cpp \
375   timedata.cpp \
376   torcontrol.cpp \
377   txdb.cpp \
378   txmempool.cpp \
379   validationinterface.cpp \
380   $(BITCOIN_CORE_H) \
381   $(LIBZCASH_H)
382
383 if ENABLE_ZMQ
384 libbitcoin_zmq_a_CPPFLAGS = $(BITCOIN_INCLUDES) $(ZMQ_CFLAGS)
385 libbitcoin_zmq_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
386 libbitcoin_zmq_a_SOURCES = \
387         zmq/zmqabstractnotifier.cpp \
388         zmq/zmqnotificationinterface.cpp \
389         zmq/zmqpublishnotifier.cpp
390 endif
391
392 if ENABLE_PROTON
393 libbitcoin_proton_a_CPPFLAGS = $(BITCOIN_INCLUDES)
394 libbitcoin_proton_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
395 libbitcoin_proton_a_SOURCES = \
396   amqp/amqpabstractnotifier.cpp \
397   amqp/amqpnotificationinterface.cpp \
398   amqp/amqppublishnotifier.cpp
399 endif
400
401 # wallet: zcashd, but only linked when wallet enabled
402 libbitcoin_wallet_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
403 libbitcoin_wallet_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
404 libbitcoin_wallet_a_SOURCES = \
405   transaction_builder.cpp \
406   utiltest.cpp \
407   utiltest.h \
408   zcbenchmarks.cpp \
409   zcbenchmarks.h \
410   wallet/asyncrpcoperation_common.cpp \
411   wallet/asyncrpcoperation_mergetoaddress.cpp \
412   wallet/asyncrpcoperation_saplingmigration.cpp \
413   wallet/asyncrpcoperation_sendmany.cpp \
414   wallet/asyncrpcoperation_shieldcoinbase.cpp \
415   wallet/crypter.cpp \
416   wallet/db.cpp \
417   wallet/paymentdisclosure.cpp \
418   wallet/paymentdisclosuredb.cpp \
419   wallet/rpcdisclosure.cpp \
420   wallet/rpcdump.cpp \
421   cc/CCassetstx.cpp \
422   cc/CCtx.cpp \
423   wallet/rpcwallet.cpp \
424   wallet/wallet.cpp \
425   wallet/wallet_ismine.cpp \
426   wallet/walletdb.cpp \
427   zcash/zip32.cpp \
428   $(BITCOIN_CORE_H) \
429   $(LIBZCASH_H)
430
431 # crypto primitives library
432 crypto_libbitcoin_crypto_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_CONFIG_INCLUDES)
433 crypto_libbitcoin_crypto_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
434 crypto_libbitcoin_crypto_a_SOURCES = \
435   crypto/common.h \
436   crypto/equihash.cpp \
437   crypto/equihash.h \
438   crypto/equihash.tcc \
439   crypto/hmac_sha256.cpp \
440   crypto/hmac_sha256.h \
441   crypto/hmac_sha512.cpp \
442   crypto/hmac_sha512.h \
443   crypto/ripemd160.cpp \
444   crypto/ripemd160.h \
445   crypto/sha1.cpp \
446   crypto/sha1.h \
447   crypto/sha256.cpp \
448   crypto/sha256.h \
449   crypto/sha512.cpp \
450   crypto/sha512.h \
451   crypto/haraka.h \
452   crypto/haraka_portable.h \
453   crypto/verus_hash.h \
454   crypto/verus_hash.cpp
455
456 if ENABLE_MINING
457 EQUIHASH_TROMP_SOURCES = \
458         pow/tromp/equi_miner.h \
459         pow/tromp/equi.h \
460         pow/tromp/osx_barrier.h
461
462 crypto_libbitcoin_crypto_a_CPPFLAGS += \
463         -DEQUIHASH_TROMP_ATOMIC
464 crypto_libbitcoin_crypto_a_SOURCES += \
465         ${EQUIHASH_TROMP_SOURCES}
466 endif
467
468 # Verus hash specific library - optimized
469 if ARCH_ARM
470 crypto_libverus_crypto_a_CPPFLAGS = -O3 -g -march=armv8.1-a+crypto -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
471 crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -g -march=armv8.1-a+crypto -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
472 else
473 crypto_libverus_crypto_a_CPPFLAGS = -O3 -mpclmul -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
474 crypto_libverus_crypto_a_CXXFLAGS = -O3 -Wint-conversion -mpclmul -msse4 -msse4.1 -msse4.2 -mssse3 -mavx -maes -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
475 endif
476
477 crypto_libverus_crypto_a_SOURCES = \
478   crypto/haraka.h \
479   crypto/haraka.c \
480   crypto/verus_clhash.h \
481   crypto/verus_clhash.cpp
482
483 # Verus hash specific library - portable
484 if ARCH_ARM
485 crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -g -march=$(PLATFORM_VARIANT) -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
486 crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -g -march=$(PLATFORM_VARIANT) -flax-vector-conversions -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
487 else
488 crypto_libverus_portable_crypto_a_CPPFLAGS = -O3 -march=$(PLATFORM_VARIANT) -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CPPFLAGS) -w $(BITCOIN_INCLUDES)
489 crypto_libverus_portable_crypto_a_CXXFLAGS = -O3 -Wint-conversion -march=$(PLATFORM_VARIANT) -g -funroll-loops -fomit-frame-pointer -fPIC $(AM_CXXFLAGS)
490 endif
491
492 crypto_libverus_portable_crypto_a_SOURCES = \
493   crypto/haraka_portable.h \
494   crypto/haraka_portable.c \
495   crypto/verus_clhash.h \
496   crypto/verus_clhash_portable.cpp
497
498 # common: shared between zcashd and non-server tools
499 libbitcoin_common_a_CPPFLAGS = -fPIC $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
500 libbitcoin_common_a_CXXFLAGS = -fPIC $(AM_CXXFLAGS) $(PIE_FLAGS)
501 libbitcoin_common_a_SOURCES = \
502   amount.cpp \
503   arith_uint256.cpp \
504   base58.cpp \
505   bech32.cpp \
506   chainparams.cpp \
507   coins.cpp \
508   compressor.cpp \
509   consensus/params.cpp \
510   consensus/upgrades.cpp \
511   core_read.cpp \
512   core_write.cpp \
513   crypto/haraka.h \
514   crypto/haraka_portable.h \
515   crypto/verus_clhash.h \
516   crypto/verus_hash.h \
517   crypto/verus_hash.cpp \
518   hash.cpp \
519   importcoin.cpp \
520   key.cpp \
521   key_io.cpp \
522   keystore.cpp \
523   netbase.cpp \
524   metrics.cpp \
525   mmr.cpp \
526   pbaas/crosschainrpc.cpp \
527   pbaas/vdxf.cpp \
528   primitives/block.cpp \
529   primitives/transaction.cpp \
530   primitives/nonce.cpp \
531   primitives/solutiondata.cpp \
532   protocol.cpp \
533   pubkey.cpp \
534   scheduler.cpp \
535   script/cc.cpp \
536   script/interpreter.cpp \
537   script/script.cpp \
538   script/script_ext.cpp \
539   script/script_error.cpp \
540   script/sign.cpp \
541   script/standard.cpp \
542   veruslaunch.cpp \
543   transaction_builder.cpp \
544   utiltest.cpp \
545   $(BITCOIN_CORE_H) \
546   $(LIBZCASH_H)
547
548 # util: shared between all executables.
549 # This library *must* be included to make sure that the glibc
550 # backward-compatibility objects and their sanity checks are linked.
551 libbitcoin_util_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
552 libbitcoin_util_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
553 libbitcoin_util_a_SOURCES = \
554   support/pagelocker.cpp \
555   chainparamsbase.cpp \
556   clientversion.cpp \
557   compat/glibc_sanity.cpp \
558   compat/glibcxx_sanity.cpp \
559   compat/strnlen.cpp \
560   random.cpp \
561   rpc/protocol.cpp \
562   support/cleanse.cpp \
563   sync.cpp \
564   uint256.cpp \
565   util.cpp \
566   utilmoneystr.cpp \
567   utilstrencodings.cpp \
568   utiltime.cpp \
569   $(BITCOIN_CORE_H) \
570   $(LIBZCASH_H)
571
572 if GLIBC_BACK_COMPAT
573 libbitcoin_util_a_SOURCES += compat/glibc_compat.cpp
574 endif
575
576 # cli: zcash-cli
577 libbitcoin_cli_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
578 libbitcoin_cli_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
579 libbitcoin_cli_a_SOURCES = \
580   rpc/client.cpp \
581   $(BITCOIN_CORE_H) \
582   $(LIBZCASH_H)
583
584 nodist_libbitcoin_util_a_SOURCES = $(srcdir)/obj/build.h
585 #
586
587 # bitcoind binary #
588 verusd_SOURCES = bitcoind.cpp
589 verusd_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
590 verusd_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
591 verusd_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
592
593 if TARGET_DARWIN
594 verusd_LDFLAGS += -static-libgcc
595 endif
596
597 if TARGET_WINDOWS
598 verusd_SOURCES += bitcoind-res.rc
599 endif
600
601 verusd_LDADD = \
602   $(LIBBITCOIN_SERVER) \
603   $(LIBBITCOIN_COMMON) \
604   $(LIBUNIVALUE) \
605   $(LIBBITCOIN_UTIL) \
606   $(LIBBITCOIN_ZMQ) \
607   $(LIBBITCOIN_PROTON) \
608   $(LIBBITCOIN_CRYPTO) \
609   $(LIBVERUS_CRYPTO) \
610   $(LIBVERUS_PORTABLE_CRYPTO) \
611   $(LIBZCASH) \
612   $(LIBSNARK) \
613   $(LIBLEVELDB) \
614   $(LIBMEMENV) \
615   $(LIBSECP256K1) \
616   $(LIBCRYPTOCONDITIONS)
617
618 if ENABLE_WALLET
619 verusd_LDADD += $(LIBBITCOIN_WALLET)
620 endif
621
622 verusd_LDADD += \
623   $(BOOST_LIBS) \
624   $(BDB_LIBS) \
625   $(SSL_LIBS) \
626   $(CRYPTO_LIBS) \
627   $(EVENT_PTHREADS_LIBS) \
628   $(EVENT_LIBS) \
629   $(ZMQ_LIBS) \
630   $(PROTON_LIBS) \
631   $(LIBBITCOIN_CRYPTO) \
632   $(LIBVERUS_CRYPTO) \
633   $(LIBVERUS_PORTABLE_CRYPTO) \
634   $(LIBZCASH_LIBS)
635
636 if ENABLE_PROTON
637 verusd_LDADD += $(LIBBITCOIN_PROTON) $(PROTON_LIBS)
638 endif
639
640 # bitcoin-cli binary #
641 verus_SOURCES = bitcoin-cli.cpp
642 verus_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(EVENT_CFLAGS)
643 verus_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
644 verus_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
645
646 if TARGET_DARWIN
647 verus_LDFLAGS += -static-libgcc
648 endif
649
650 # wallet-utility binary #
651 if ENABLE_WALLET
652 wallet_utility_SOURCES = wallet-utility.cpp
653 wallet_utility_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
654 wallet_utility_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
655 wallet_utility_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
656 endif
657
658 if TARGET_WINDOWS
659 verus_SOURCES += bitcoin-cli-res.rc
660 endif
661
662 verus_LDADD = \
663         $(LIBBITCOIN_CLI) \
664         $(LIBUNIVALUE) \
665         $(LIBBITCOIN_UTIL) \
666         $(BOOST_LIBS) \
667         $(SSL_LIBS) \
668         $(CRYPTO_LIBS) \
669         $(EVENT_LIBS) \
670         $(LIBZCASH) \
671         $(LIBBITCOIN_CRYPTO) \
672         $(LIBVERUS_CRYPTO) \
673         $(LIBVERUS_PORTABLE_CRYPTO) \
674         $(LIBZCASH_LIBS)
675
676 if ENABLE_WALLET
677 wallet_utility_LDADD = \
678         $(LIBBITCOIN_WALLET) \
679         $(LIBBITCOIN_COMMON) \
680   $(LIBUNIVALUE) \
681         $(LIBBITCOIN_CRYPTO) \
682         $(LIBVERUS_CRYPTO) \
683         $(LIBVERUS_PORTABLE_CRYPTO) \
684         $(LIBSECP256K1) \
685         $(LIBBITCOIN_UTIL) \
686         $(BOOST_LIBS) \
687         $(BDB_LIBS) \
688         $(CRYPTO_LIBS) \
689         $(EVENT_LIBS) \
690         $(LIBZCASH) \
691         $(LIBSNARK) \
692         $(LIBZCASH_LIBS)\
693         $(LIBCRYPTOCONDITIONS)
694 endif
695
696 # zcash-tx binary #
697 verus_tx_SOURCES = komodo-tx.cpp
698 verus_tx_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES)
699 verus_tx_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
700 verus_tx_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
701
702 if TARGET_WINDOWS
703 verus_tx_SOURCES += bitcoin-tx-res.rc
704 endif
705
706 verus_tx_LDADD = \
707   $(LIBUNIVALUE) \
708         $(BOOST_LIBS) \
709   $(LIBBITCOIN_COMMON) \
710   $(LIBBITCOIN_UTIL) \
711         $(EVENT_LIBS) \
712   $(LIBSECP256K1) \
713   $(LIBZCASH) \
714   $(LIBSNARK) \
715   $(LIBBITCOIN_CRYPTO) \
716   $(LIBVERUS_CRYPTO) \
717   $(LIBVERUS_PORTABLE_CRYPTO) \
718   $(LIBZCASH_LIBS) \
719   $(LIBCRYPTOCONDITIONS)
720
721 verus_tx_LDADD += $(BOOST_LIBS) $(CRYPTO_LIBS)
722 #
723
724 # zcash protocol primitives #
725 libzcash_a_SOURCES = \
726         zcash/IncrementalMerkleTree.cpp \
727         zcash/NoteEncryption.cpp \
728         zcash/Address.cpp \
729         zcash/JoinSplit.cpp \
730         zcash/Proof.cpp \
731         zcash/Note.cpp \
732         zcash/prf.cpp \
733         zcash/util.cpp \
734   zcash/zip32.cpp \
735         zcash/circuit/commitment.tcc \
736         zcash/circuit/gadget.tcc \
737         zcash/circuit/merkle.tcc \
738         zcash/circuit/note.tcc \
739         zcash/circuit/prfs.tcc \
740         zcash/circuit/utils.tcc
741
742 libzcash_a_CPPFLAGS = -DMULTICORE -fopenmp -fPIC -DBINARY_OUTPUT -DCURVE_ALT_BN128 -DBOOST_SPIRIT_THREADSAFE -DHAVE_BUILD_INFO -D__STDC_FORMAT_MACROS $(HARDENED_CPPFLAGS) $(HARDENED_CXXFLAGS) $(HARDENED_LDFLAGS) -pipe $(SAN_LDFLAGS) -O1 -g -Wstack-protector $(SAN_CXXFLAGS) -fstack-protector-all -fPIE -fvisibility=hidden -DSTATIC $(BITCOIN_INCLUDES)
743
744 #libzcash_a_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
745 #libzcash_a_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
746 #libzcash_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) -DMONTGOMERY_OUTPUT
747
748 libzcash_a_CXXFLAGS = $(SAN_CXXFLAGS) $(HARDENED_CXXFLAGS) -fwrapv -fno-strict-aliasing
749 libzcash_a_LDFLAGS = $(SAN_LDFLAGS) $(HARDENED_LDFLAGS)
750 libzcash_a_CPPFLAGS += -DMONTGOMERY_OUTPUT
751
752 # zcashconsensus library #
753 if BUILD_BITCOIN_LIBS
754 include_HEADERS = script/zcashconsensus.h
755 libzcashconsensus_la_SOURCES = \
756   crypto/equihash.cpp \
757   crypto/hmac_sha512.cpp \
758   crypto/ripemd160.cpp \
759   crypto/sha1.cpp \
760   crypto/sha256.cpp \
761   crypto/sha512.cpp \
762   hash.cpp \
763   primitives/transaction.cpp \
764   primitives/nonce.cpp \
765   pubkey.cpp \
766   script/zcashconsensus.cpp \
767   script/interpreter.cpp \
768   script/script.cpp \
769   uint256.cpp \
770   utilstrencodings.cpp
771
772 if GLIBC_BACK_COMPAT
773 libzcashconsensus_la_SOURCES += compat/glibc_compat.cpp
774 endif
775
776 libzcashconsensus_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(RELDFLAGS)
777 libzcashconsensus_la_LIBADD = $(LIBSECP256K1)
778 libzcashconsensus_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(builddir)/obj -I$(srcdir)/secp256k1/include -I$(srcdir)/cryptoconditions/include -DBUILD_BITCOIN_INTERNAL -w
779 libzcashconsensus_la_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
780
781 endif
782 #
783
784 CLEANFILES = leveldb/libleveldb.a leveldb/libmemenv.a *.gcda *.gcno */*.gcno wallet/*/*.gcno
785
786 DISTCLEANFILES = obj/build.h
787
788 EXTRA_DIST = leveldb snark
789
790 clean-local:
791         -$(MAKE) -C leveldb clean
792         -$(MAKE) -C secp256k1 clean
793         -$(MAKE) -C snark clean
794         -$(MAKE) -C univalue clean
795         rm -f leveldb/*/*.gcno leveldb/helpers/memenv/*.gcno
796         -rm -f config.h
797
798 .rc.o:
799         @test -f $(WINDRES)
800         $(AM_V_GEN) $(WINDRES) -DWINDRES_PREPROC -i $< -o $@
801
802 .mm.o:
803         $(AM_V_CXX) $(OBJCXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
804           $(CPPFLAGS) $(AM_CXXFLAGS) $(AM_CXXFLAGS) $(PIE_FLAGS) $(CXXFLAGS) -c -o $@ $<
805
806 check-symbols: $(bin_PROGRAMS)
807 if GLIBC_BACK_COMPAT
808         @echo "Checking glibc back compat of [$(bin_PROGRAMS)]..."
809         $(AM_V_at) READELF=$(READELF) CPPFILT=$(CPPFILT) $(top_srcdir)/contrib/devtools/symbol-check.py $(bin_PROGRAMS)
810 endif
811
812 check-security: $(bin_PROGRAMS)
813 if HARDEN
814         @echo "Checking binary security of [$(bin_PROGRAMS)]..."
815         $(AM_V_at) READELF=$(READELF) OBJDUMP=$(OBJDUMP) $(top_srcdir)/contrib/devtools/security-check.py $(bin_PROGRAMS)
816 endif
817
818 %.pb.cc %.pb.h: %.proto
819         @test -f $(PROTOC)
820         $(AM_V_GEN) $(PROTOC) --cpp_out=$(@D) --proto_path=$(abspath $(<D) $<)
821
822 if ENABLE_TESTS
823 include Makefile.ktest.include
824 #include Makefile.test.include
825 #include Makefile.gtest.include
826 endif
This page took 0.066731 seconds and 4 git commands to generate.