1# Copyright (c) 2013-2016 The Bitcoin Core developers
2# Distributed under the MIT software license, see the accompanying
3# file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5bin_PROGRAMS += qt/zetacoin-qt
6EXTRA_LIBRARIES += qt/libbitcoinqt.a
7
8# bitcoin qt core #
9QT_TS = \
10  qt/locale/bitcoin_af.ts \
11  qt/locale/bitcoin_af_ZA.ts \
12  qt/locale/bitcoin_ar.ts \
13  qt/locale/bitcoin_be_BY.ts \
14  qt/locale/bitcoin_bg_BG.ts \
15  qt/locale/bitcoin_bg.ts \
16  qt/locale/bitcoin_ca_ES.ts \
17  qt/locale/bitcoin_ca.ts \
18  qt/locale/bitcoin_ca@valencia.ts \
19  qt/locale/bitcoin_cs_CZ.ts \
20  qt/locale/bitcoin_cs.ts \
21  qt/locale/bitcoin_cy.ts \
22  qt/locale/bitcoin_da.ts \
23  qt/locale/bitcoin_de.ts \
24  qt/locale/bitcoin_el_GR.ts \
25  qt/locale/bitcoin_el.ts \
26  qt/locale/bitcoin_en_GB.ts \
27  qt/locale/bitcoin_en.ts \
28  qt/locale/bitcoin_eo.ts \
29  qt/locale/bitcoin_es_AR.ts \
30  qt/locale/bitcoin_es_CL.ts \
31  qt/locale/bitcoin_es_CO.ts \
32  qt/locale/bitcoin_es_DO.ts \
33  qt/locale/bitcoin_es_ES.ts \
34  qt/locale/bitcoin_es_MX.ts \
35  qt/locale/bitcoin_es.ts \
36  qt/locale/bitcoin_es_UY.ts \
37  qt/locale/bitcoin_es_VE.ts \
38  qt/locale/bitcoin_et.ts \
39  qt/locale/bitcoin_eu_ES.ts \
40  qt/locale/bitcoin_fa_IR.ts \
41  qt/locale/bitcoin_fa.ts \
42  qt/locale/bitcoin_fi.ts \
43  qt/locale/bitcoin_fr_CA.ts \
44  qt/locale/bitcoin_fr_FR.ts \
45  qt/locale/bitcoin_fr.ts \
46  qt/locale/bitcoin_gl.ts \
47  qt/locale/bitcoin_he.ts \
48  qt/locale/bitcoin_hi_IN.ts \
49  qt/locale/bitcoin_hr.ts \
50  qt/locale/bitcoin_hu.ts \
51  qt/locale/bitcoin_id_ID.ts \
52  qt/locale/bitcoin_it_IT.ts \
53  qt/locale/bitcoin_it.ts \
54  qt/locale/bitcoin_ja.ts \
55  qt/locale/bitcoin_ka.ts \
56  qt/locale/bitcoin_kk_KZ.ts \
57  qt/locale/bitcoin_ko_KR.ts \
58  qt/locale/bitcoin_ku_IQ.ts \
59  qt/locale/bitcoin_ky.ts \
60  qt/locale/bitcoin_la.ts \
61  qt/locale/bitcoin_lt.ts \
62  qt/locale/bitcoin_lv_LV.ts \
63  qt/locale/bitcoin_mk_MK.ts \
64  qt/locale/bitcoin_mn.ts \
65  qt/locale/bitcoin_ms_MY.ts \
66  qt/locale/bitcoin_nb.ts \
67  qt/locale/bitcoin_ne.ts \
68  qt/locale/bitcoin_nl.ts \
69  qt/locale/bitcoin_pam.ts \
70  qt/locale/bitcoin_pl.ts \
71  qt/locale/bitcoin_pt_BR.ts \
72  qt/locale/bitcoin_pt_PT.ts \
73  qt/locale/bitcoin_ro_RO.ts \
74  qt/locale/bitcoin_ro.ts \
75  qt/locale/bitcoin_ru_RU.ts \
76  qt/locale/bitcoin_ru.ts \
77  qt/locale/bitcoin_sk.ts \
78  qt/locale/bitcoin_sl_SI.ts \
79  qt/locale/bitcoin_sq.ts \
80  qt/locale/bitcoin_sr@latin.ts \
81  qt/locale/bitcoin_sr.ts \
82  qt/locale/bitcoin_sv.ts \
83  qt/locale/bitcoin_ta.ts \
84  qt/locale/bitcoin_th_TH.ts \
85  qt/locale/bitcoin_tr_TR.ts \
86  qt/locale/bitcoin_tr.ts \
87  qt/locale/bitcoin_uk.ts \
88  qt/locale/bitcoin_ur_PK.ts \
89  qt/locale/bitcoin_uz@Cyrl.ts \
90  qt/locale/bitcoin_uz@Latn.ts \
91  qt/locale/bitcoin_vi.ts \
92  qt/locale/bitcoin_vi_VN.ts \
93  qt/locale/bitcoin_zh_CN.ts \
94  qt/locale/bitcoin_zh_HK.ts \
95  qt/locale/bitcoin_zh.ts \
96  qt/locale/bitcoin_zh_TW.ts
97
98QT_FORMS_UI = \
99  qt/forms/addressbookpage.ui \
100  qt/forms/askpassphrasedialog.ui \
101  qt/forms/coincontroldialog.ui \
102  qt/forms/editaddressdialog.ui \
103  qt/forms/helpmessagedialog.ui \
104  qt/forms/intro.ui \
105  qt/forms/openuridialog.ui \
106  qt/forms/optionsdialog.ui \
107  qt/forms/overviewpage.ui \
108  qt/forms/receivecoinsdialog.ui \
109  qt/forms/receiverequestdialog.ui \
110  qt/forms/debugwindow.ui \
111  qt/forms/sendcoinsdialog.ui \
112  qt/forms/sendcoinsentry.ui \
113  qt/forms/signverifymessagedialog.ui \
114  qt/forms/transactiondescdialog.ui
115
116QT_MOC_CPP = \
117  qt/moc_addressbookpage.cpp \
118  qt/moc_addresstablemodel.cpp \
119  qt/moc_askpassphrasedialog.cpp \
120  qt/moc_bantablemodel.cpp \
121  qt/moc_bitcoinaddressvalidator.cpp \
122  qt/moc_bitcoinamountfield.cpp \
123  qt/moc_bitcoingui.cpp \
124  qt/moc_bitcoinunits.cpp \
125  qt/moc_clientmodel.cpp \
126  qt/moc_coincontroldialog.cpp \
127  qt/moc_coincontroltreewidget.cpp \
128  qt/moc_csvmodelwriter.cpp \
129  qt/moc_editaddressdialog.cpp \
130  qt/moc_guiutil.cpp \
131  qt/moc_intro.cpp \
132  qt/moc_macdockiconhandler.cpp \
133  qt/moc_macnotificationhandler.cpp \
134  qt/moc_notificator.cpp \
135  qt/moc_openuridialog.cpp \
136  qt/moc_optionsdialog.cpp \
137  qt/moc_optionsmodel.cpp \
138  qt/moc_overviewpage.cpp \
139  qt/moc_peertablemodel.cpp \
140  qt/moc_paymentserver.cpp \
141  qt/moc_qvalidatedlineedit.cpp \
142  qt/moc_qvaluecombobox.cpp \
143  qt/moc_receivecoinsdialog.cpp \
144  qt/moc_receiverequestdialog.cpp \
145  qt/moc_recentrequeststablemodel.cpp \
146  qt/moc_rpcconsole.cpp \
147  qt/moc_sendcoinsdialog.cpp \
148  qt/moc_sendcoinsentry.cpp \
149  qt/moc_signverifymessagedialog.cpp \
150  qt/moc_splashscreen.cpp \
151  qt/moc_trafficgraphwidget.cpp \
152  qt/moc_transactiondesc.cpp \
153  qt/moc_transactiondescdialog.cpp \
154  qt/moc_transactionfilterproxy.cpp \
155  qt/moc_transactiontablemodel.cpp \
156  qt/moc_transactionview.cpp \
157  qt/moc_utilitydialog.cpp \
158  qt/moc_walletframe.cpp \
159  qt/moc_walletmodel.cpp \
160  qt/moc_walletview.cpp
161
162BITCOIN_MM = \
163  qt/macdockiconhandler.mm \
164  qt/macnotificationhandler.mm
165
166QT_MOC = \
167  qt/bitcoin.moc \
168  qt/bitcoinamountfield.moc \
169  qt/intro.moc \
170  qt/overviewpage.moc \
171  qt/rpcconsole.moc
172
173QT_QRC_CPP = qt/qrc_bitcoin.cpp
174QT_QRC = qt/bitcoin.qrc
175QT_QRC_LOCALE_CPP = qt/qrc_bitcoin_locale.cpp
176QT_QRC_LOCALE = qt/bitcoin_locale.qrc
177
178PROTOBUF_CC = qt/paymentrequest.pb.cc
179PROTOBUF_H = qt/paymentrequest.pb.h
180PROTOBUF_PROTO = qt/paymentrequest.proto
181
182BITCOIN_QT_H = \
183  qt/addressbookpage.h \
184  qt/addresstablemodel.h \
185  qt/askpassphrasedialog.h \
186  qt/bantablemodel.h \
187  qt/bitcoinaddressvalidator.h \
188  qt/bitcoinamountfield.h \
189  qt/bitcoingui.h \
190  qt/bitcoinunits.h \
191  qt/clientmodel.h \
192  qt/coincontroldialog.h \
193  qt/coincontroltreewidget.h \
194  qt/csvmodelwriter.h \
195  qt/editaddressdialog.h \
196  qt/guiconstants.h \
197  qt/guiutil.h \
198  qt/intro.h \
199  qt/macdockiconhandler.h \
200  qt/macnotificationhandler.h \
201  qt/networkstyle.h \
202  qt/notificator.h \
203  qt/openuridialog.h \
204  qt/optionsdialog.h \
205  qt/optionsmodel.h \
206  qt/overviewpage.h \
207  qt/paymentrequestplus.h \
208  qt/paymentserver.h \
209  qt/peertablemodel.h \
210  qt/platformstyle.h \
211  qt/qvalidatedlineedit.h \
212  qt/qvaluecombobox.h \
213  qt/receivecoinsdialog.h \
214  qt/receiverequestdialog.h \
215  qt/recentrequeststablemodel.h \
216  qt/rpcconsole.h \
217  qt/sendcoinsdialog.h \
218  qt/sendcoinsentry.h \
219  qt/signverifymessagedialog.h \
220  qt/splashscreen.h \
221  qt/trafficgraphwidget.h \
222  qt/transactiondesc.h \
223  qt/transactiondescdialog.h \
224  qt/transactionfilterproxy.h \
225  qt/transactionrecord.h \
226  qt/transactiontablemodel.h \
227  qt/transactionview.h \
228  qt/utilitydialog.h \
229  qt/walletframe.h \
230  qt/walletmodel.h \
231  qt/walletmodeltransaction.h \
232  qt/walletview.h \
233  qt/winshutdownmonitor.h
234
235RES_ICONS = \
236  qt/res/icons/add.png \
237  qt/res/icons/address-book.png \
238  qt/res/icons/about.png \
239  qt/res/icons/about_qt.png \
240  qt/res/icons/bitcoin.ico \
241  qt/res/icons/bitcoin_testnet.ico \
242  qt/res/icons/bitcoin.png \
243  qt/res/icons/chevron.png \
244  qt/res/icons/clock1.png \
245  qt/res/icons/clock2.png \
246  qt/res/icons/clock3.png \
247  qt/res/icons/clock4.png \
248  qt/res/icons/clock5.png \
249  qt/res/icons/configure.png \
250  qt/res/icons/connect0.png \
251  qt/res/icons/connect1.png \
252  qt/res/icons/connect2.png \
253  qt/res/icons/connect3.png \
254  qt/res/icons/connect4.png \
255  qt/res/icons/debugwindow.png \
256  qt/res/icons/edit.png \
257  qt/res/icons/editcopy.png \
258  qt/res/icons/editpaste.png \
259  qt/res/icons/export.png \
260  qt/res/icons/eye.png \
261  qt/res/icons/eye_minus.png \
262  qt/res/icons/eye_plus.png \
263  qt/res/icons/filesave.png \
264  qt/res/icons/fontbigger.png \
265  qt/res/icons/fontsmaller.png \
266  qt/res/icons/history.png \
267  qt/res/icons/info.png \
268  qt/res/icons/key.png \
269  qt/res/icons/lock_closed.png \
270  qt/res/icons/lock_open.png \
271  qt/res/icons/open.png \
272  qt/res/icons/overview.png \
273  qt/res/icons/quit.png \
274  qt/res/icons/receive.png \
275  qt/res/icons/remove.png \
276  qt/res/icons/send.png \
277  qt/res/icons/synced.png \
278  qt/res/icons/transaction0.png \
279  qt/res/icons/transaction2.png \
280  qt/res/icons/transaction_conflicted.png \
281  qt/res/icons/tx_inout.png \
282  qt/res/icons/tx_input.png \
283  qt/res/icons/tx_output.png \
284  qt/res/icons/tx_mined.png \
285  qt/res/icons/warning.png \
286  qt/res/icons/verify.png \
287  qt/res/icons/transaction_abandoned.png
288
289BITCOIN_QT_BASE_CPP = \
290  qt/bantablemodel.cpp \
291  qt/bitcoinaddressvalidator.cpp \
292  qt/bitcoinamountfield.cpp \
293  qt/bitcoingui.cpp \
294  qt/bitcoinunits.cpp \
295  qt/clientmodel.cpp \
296  qt/csvmodelwriter.cpp \
297  qt/guiutil.cpp \
298  qt/intro.cpp \
299  qt/networkstyle.cpp \
300  qt/notificator.cpp \
301  qt/optionsdialog.cpp \
302  qt/optionsmodel.cpp \
303  qt/peertablemodel.cpp \
304  qt/platformstyle.cpp \
305  qt/qvalidatedlineedit.cpp \
306  qt/qvaluecombobox.cpp \
307  qt/rpcconsole.cpp \
308  qt/splashscreen.cpp \
309  qt/trafficgraphwidget.cpp \
310  qt/utilitydialog.cpp
311
312BITCOIN_QT_WINDOWS_CPP = qt/winshutdownmonitor.cpp
313
314BITCOIN_QT_WALLET_CPP = \
315  qt/addressbookpage.cpp \
316  qt/addresstablemodel.cpp \
317  qt/askpassphrasedialog.cpp \
318  qt/coincontroldialog.cpp \
319  qt/coincontroltreewidget.cpp \
320  qt/editaddressdialog.cpp \
321  qt/openuridialog.cpp \
322  qt/overviewpage.cpp \
323  qt/paymentrequestplus.cpp \
324  qt/paymentserver.cpp \
325  qt/receivecoinsdialog.cpp \
326  qt/receiverequestdialog.cpp \
327  qt/recentrequeststablemodel.cpp \
328  qt/sendcoinsdialog.cpp \
329  qt/sendcoinsentry.cpp \
330  qt/signverifymessagedialog.cpp \
331  qt/transactiondesc.cpp \
332  qt/transactiondescdialog.cpp \
333  qt/transactionfilterproxy.cpp \
334  qt/transactionrecord.cpp \
335  qt/transactiontablemodel.cpp \
336  qt/transactionview.cpp \
337  qt/walletframe.cpp \
338  qt/walletmodel.cpp \
339  qt/walletmodeltransaction.cpp \
340  qt/walletview.cpp
341
342BITCOIN_QT_CPP = $(BITCOIN_QT_BASE_CPP)
343if TARGET_WINDOWS
344BITCOIN_QT_CPP += $(BITCOIN_QT_WINDOWS_CPP)
345endif
346if ENABLE_WALLET
347BITCOIN_QT_CPP += $(BITCOIN_QT_WALLET_CPP)
348endif
349
350RES_IMAGES =
351
352RES_MOVIES = $(wildcard qt/res/movies/spinner-*.png)
353
354BITCOIN_RC = qt/res/bitcoin-qt-res.rc
355
356BITCOIN_QT_INCLUDES = -I$(builddir)/qt -I$(srcdir)/qt -I$(srcdir)/qt/forms \
357  -I$(builddir)/qt/forms -DQT_NO_KEYWORDS
358
359qt_libbitcoinqt_a_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
360  $(QT_INCLUDES) $(QT_DBUS_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS)
361qt_libbitcoinqt_a_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
362
363qt_libbitcoinqt_a_SOURCES = $(BITCOIN_QT_CPP) $(BITCOIN_QT_H) $(QT_FORMS_UI) \
364  $(QT_QRC) $(QT_QRC_LOCALE) $(QT_TS) $(PROTOBUF_PROTO) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES)
365
366nodist_qt_libbitcoinqt_a_SOURCES = $(QT_MOC_CPP) $(QT_MOC) $(PROTOBUF_CC) \
367  $(PROTOBUF_H) $(QT_QRC_CPP) $(QT_QRC_LOCALE_CPP)
368
369# forms/foo.h -> forms/ui_foo.h
370QT_FORMS_H=$(join $(dir $(QT_FORMS_UI)),$(addprefix ui_, $(notdir $(QT_FORMS_UI:.ui=.h))))
371
372# Most files will depend on the forms and moc files as includes. Generate them
373# before anything else.
374$(QT_MOC): $(QT_FORMS_H)
375$(qt_libbitcoinqt_a_OBJECTS) $(qt_zetacoin_qt_OBJECTS) : | $(QT_MOC)
376
377#Generating these with a half-written protobuf header leads to wacky results.
378#This makes sure it's done.
379$(QT_MOC): $(PROTOBUF_H)
380$(QT_MOC_CPP): $(PROTOBUF_H)
381
382# bitcoin-qt binary #
383qt_zetacoin_qt_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BITCOIN_QT_INCLUDES) \
384  $(QT_INCLUDES) $(PROTOBUF_CFLAGS) $(QR_CFLAGS)
385qt_zetacoin_qt_CXXFLAGS = $(AM_CXXFLAGS) $(QT_PIE_FLAGS)
386
387qt_zetacoin_qt_SOURCES = qt/bitcoin.cpp
388if TARGET_DARWIN
389  qt_zetacoin_qt_SOURCES += $(BITCOIN_MM)
390endif
391if TARGET_WINDOWS
392  qt_zetacoin_qt_SOURCES += $(BITCOIN_RC)
393endif
394qt_zetacoin_qt_LDADD = qt/libbitcoinqt.a $(LIBBITCOIN_SERVER)
395if ENABLE_WALLET
396qt_zetacoin_qt_LDADD += $(LIBBITCOIN_WALLET)
397endif
398if ENABLE_ZMQ
399qt_zetacoin_qt_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
400endif
401qt_zetacoin_qt_LDADD += $(LIBBITCOIN_CLI) $(LIBBITCOIN_COMMON) $(LIBBITCOIN_UTIL) $(LIBBITCOIN_CONSENSUS) $(LIBBITCOIN_CRYPTO) $(LIBUNIVALUE) $(LIBLEVELDB) $(LIBMEMENV) \
402  $(BOOST_LIBS) $(QT_LIBS) $(QT_DBUS_LIBS) $(QR_LIBS) $(PROTOBUF_LIBS) $(BDB_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) $(MINIUPNPC_LIBS) $(LIBSECP256K1) \
403  $(EVENT_PTHREADS_LIBS) $(EVENT_LIBS)
404qt_zetacoin_qt_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(QT_LDFLAGS) $(LIBTOOL_APP_LDFLAGS)
405qt_zetacoin_qt_LIBTOOLFLAGS = --tag CXX
406
407#locale/foo.ts -> locale/foo.qm
408QT_QM=$(QT_TS:.ts=.qm)
409
410SECONDARY: $(QT_QM)
411
412$(srcdir)/qt/bitcoinstrings.cpp: $(libbitcoin_server_a_SOURCES) $(libbitcoin_wallet_a_SOURCES)
413	@test -n $(XGETTEXT) || echo "xgettext is required for updating translations"
414	$(AM_V_GEN) cd $(srcdir); XGETTEXT=$(XGETTEXT) PACKAGE_NAME="$(PACKAGE_NAME)" COPYRIGHT_HOLDERS="$(COPYRIGHT_HOLDERS)" COPYRIGHT_HOLDERS_SUBSTITUTION="$(COPYRIGHT_HOLDERS_SUBSTITUTION)" $(PYTHON) ../share/qt/extract_strings_qt.py $^
415
416translate: $(srcdir)/qt/bitcoinstrings.cpp $(QT_FORMS_UI) $(QT_FORMS_UI) $(BITCOIN_QT_BASE_CPP) $(BITCOIN_QT_WINDOWS_CPP) $(BITCOIN_QT_WALLET_CPP) $(BITCOIN_QT_H) $(BITCOIN_MM)
417	@test -n $(LUPDATE) || echo "lupdate is required for updating translations"
418	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LUPDATE) $^ -locations relative -no-obsolete -ts $(srcdir)/qt/locale/bitcoin_en.ts
419
420$(QT_QRC_LOCALE_CPP): $(QT_QRC_LOCALE) $(QT_QM)
421	@test -f $(RCC)
422	@cp -f $< $(@D)/temp_$(<F)
423	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin_locale $(@D)/temp_$(<F) | \
424	  $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
425	@rm $(@D)/temp_$(<F)
426
427$(QT_QRC_CPP): $(QT_QRC) $(QT_FORMS_H) $(RES_ICONS) $(RES_IMAGES) $(RES_MOVIES) $(PROTOBUF_H)
428	@test -f $(RCC)
429	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(RCC) -name bitcoin $< | \
430	  $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
431
432CLEAN_QT = $(nodist_qt_libbitcoinqt_a_SOURCES) $(QT_QM) $(QT_FORMS_H) qt/*.gcda qt/*.gcno
433
434CLEANFILES += $(CLEAN_QT)
435
436zetacoin_qt_clean: FORCE
437	rm -f $(CLEAN_QT) $(qt_libbitcoinqt_a_OBJECTS) $(qt_zetacoin_qt_OBJECTS) qt/zetacoin-qt$(EXEEXT) $(LIBBITCOINQT)
438
439zetacoin_qt : qt/zetacoin-qt$(EXEEXT)
440
441ui_%.h: %.ui
442	@test -f $(UIC)
443	@$(MKDIR_P) $(@D)
444	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(UIC) -o $@ $< || (echo "Error creating $@"; false)
445
446%.moc: %.cpp
447	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(MOC) $(DEFAULT_INCLUDES) $(QT_INCLUDES) $(MOC_DEFS) $< | \
448	  $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
449
450moc_%.cpp: %.h
451	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(MOC) $(DEFAULT_INCLUDES) $(QT_INCLUDES) $(MOC_DEFS) $< | \
452	  $(SED) -e '/^\*\*.*Created:/d' -e '/^\*\*.*by:/d' > $@
453
454%.qm: %.ts
455	@test -f $(LRELEASE)
456	@$(MKDIR_P) $(@D)
457	$(AM_V_GEN) QT_SELECT=$(QT_SELECT) $(LRELEASE) -silent $< -qm $@
458