exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

Makefile.am (17953B)


      1 # This Makefile.am is in the public domain
      2 AM_CPPFLAGS = -I$(top_srcdir)/src/include -I$(top_srcdir)/src/pq/ $(POSTGRESQL_CPPFLAGS)
      3 
      4 if USE_COVERAGE
      5   AM_CFLAGS = --coverage -O0
      6   XLIB = -lgcov
      7 endif
      8 
      9 pkgcfgadir = $(prefix)/share/taler-auditor/config.d/
     10 pkgcfgedir = $(prefix)/share/taler-exchange/config.d/
     11 
     12 # Auditor also needs to access the exchange DB, so we install
     13 # the exchange configuration for it here as well!
     14 pkgcfga_DATA = \
     15   exchangedb.conf \
     16   exchangedb-postgres.conf
     17 
     18 pkgcfge_DATA = \
     19   exchangedb.conf \
     20   exchangedb-postgres.conf
     21 
     22 sqldir = $(prefix)/share/taler-exchange/sql/
     23 
     24 sqlinputs = \
     25   exchange_do_*.sql \
     26   exchange_statistics_*.sql \
     27   exchange_trigger_*.sql \
     28   procedures.sql.in \
     29   0002-*.sql \
     30   exchange-0002.sql.in \
     31   0003-*.sql \
     32   exchange-0003.sql.in
     33 
     34 sql_DATA = \
     35   benchmark-0001.sql \
     36   versioning.sql \
     37   auditor-triggers-0001.sql \
     38   exchange-0001.sql \
     39   exchange-0002.sql \
     40   exchange-0003.sql \
     41   exchange-0004.sql \
     42   exchange-0005.sql \
     43   exchange-0006.sql \
     44   drop.sql \
     45   procedures.sql \
     46   tops-0001.sql
     47 
     48 BUILT_SOURCES = \
     49   benchmark-0001.sql \
     50   drop.sql \
     51   exchange-0001.sql \
     52   procedures.sql
     53 
     54 CLEANFILES = \
     55   exchange-0002.sql \
     56   exchange-0003.sql \
     57   exchange-0004.sql \
     58   procedures.sql
     59 
     60 procedures.sql: procedures.sql.in exchange_do_*.sql exchange_statistics_*.sql exchange_trigger_*.sql
     61 	chmod +w $@ 2> /dev/null || true
     62 	gcc -E -P -undef - < procedures.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
     63 	chmod ugo-w $@
     64 
     65 exchange-0002.sql: exchange-0002.sql.in 0002-*.sql
     66 	chmod +w $@ 2> /dev/null || true
     67 	gcc -E -P -undef - < exchange-0002.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
     68 	chmod ugo-w $@
     69 
     70 exchange-0003.sql: exchange-0003.sql.in 0003-*.sql
     71 	chmod +w $@ 2> /dev/null || true
     72 	gcc -E -P -undef - < exchange-0003.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
     73 	chmod ugo-w $@
     74 
     75 exchange-0004.sql: exchange-0004.sql.in 0004-*.sql
     76 	chmod +w $@ 2> /dev/null || true
     77 	gcc -E -P -undef - < exchange-0004.sql.in 2>/dev/null | sed -e "s/--.*//" | awk 'NF' - >$@
     78 	chmod ugo-w $@
     79 
     80 check_SCRIPTS = \
     81   test_idempotency.sh
     82 
     83 EXTRA_DIST = \
     84   exchangedb.conf \
     85   exchangedb-postgres.conf \
     86   bench-db-postgres.conf \
     87   test-exchange-db-postgres.conf \
     88   $(sqlinputs) \
     89   $(sql_DATA) \
     90   $(check_SCRIPTS) \
     91   pg_template.h pg_template.c \
     92   pg_template.sh
     93 
     94 plugindir = $(libdir)/taler-exchange
     95 
     96 if HAVE_POSTGRESQL
     97 plugin_LTLIBRARIES = \
     98   libtaler_plugin_exchangedb_postgres.la
     99 endif
    100 
    101 libtaler_plugin_exchangedb_postgres_la_SOURCES = \
    102   pg_abort_shard.h pg_abort_shard.c \
    103   pg_activate_signing_key.h pg_activate_signing_key.c \
    104   pg_add_denomination_key.h pg_add_denomination_key.c \
    105   pg_add_policy_fulfillment_proof.h pg_add_policy_fulfillment_proof.c \
    106   pg_aggregate.h pg_aggregate.c \
    107   pg_batch_ensure_coin_known.h pg_batch_ensure_coin_known.c \
    108   pg_begin_revolving_shard.h pg_begin_revolving_shard.c \
    109   pg_begin_shard.h pg_begin_shard.c \
    110   pg_clear_aml_lock.h pg_clear_aml_lock.c \
    111   pg_commit.h pg_commit.c \
    112   pg_complete_shard.h pg_complete_shard.c \
    113   pg_compute_shard.h pg_compute_shard.c \
    114   pg_count_known_coins.h pg_count_known_coins.c \
    115   pg_create_aggregation_transient.h pg_create_aggregation_transient.c \
    116   pg_create_tables.h pg_create_tables.c \
    117   pg_delete_aggregation_transient.h pg_delete_aggregation_transient.c \
    118   pg_delete_shard_locks.h pg_delete_shard_locks.c \
    119   pg_disable_rules.h pg_disable_rules.c \
    120   pg_do_withdraw.h pg_do_withdraw.c \
    121   pg_do_check_deposit_idempotent.h pg_do_check_deposit_idempotent.c \
    122   pg_do_deposit.h pg_do_deposit.c \
    123   pg_do_melt.h pg_do_melt.c \
    124   pg_do_refresh.h pg_do_refresh.c \
    125   pg_do_purse_delete.c pg_do_purse_delete.h \
    126   pg_do_purse_deposit.h pg_do_purse_deposit.c \
    127   pg_do_purse_merge.h pg_do_purse_merge.c \
    128   pg_do_recoup.h pg_do_recoup.c \
    129   pg_do_recoup_refresh.h pg_do_recoup_refresh.c \
    130   pg_do_refund.h pg_do_refund.c \
    131   pg_do_reserve_open.c pg_do_reserve_open.h \
    132   pg_do_reserve_purse.h pg_do_reserve_purse.c \
    133   pg_drain_kyc_alert.h pg_drain_kyc_alert.c \
    134   pg_drop_tables.h pg_drop_tables.c \
    135   pg_enable_rules.h pg_enable_rules.c \
    136   pg_ensure_coin_known.h pg_ensure_coin_known.c \
    137   pg_event_listen.h pg_event_listen.c \
    138   pg_event_listen_cancel.h pg_event_listen_cancel.c \
    139   pg_event_notify.h pg_event_notify.c \
    140   pg_expire_purse.h pg_expire_purse.c \
    141   pg_find_aggregation_transient.h pg_find_aggregation_transient.c \
    142   pg_gc.h pg_gc.c \
    143   pg_get_coin_denomination.h pg_get_coin_denomination.c \
    144   pg_get_coin_transactions.c pg_get_coin_transactions.h \
    145   pg_get_denomination_info.h pg_get_denomination_info.c \
    146   pg_get_denomination_by_serial.h pg_get_denomination_by_serial.c \
    147   pg_get_denomination_revocation.h pg_get_denomination_revocation.c \
    148   pg_get_drain_profit.h pg_get_drain_profit.c \
    149   pg_get_expired_reserves.c pg_get_expired_reserves.h \
    150   pg_get_extension_manifest.h pg_get_extension_manifest.c \
    151   pg_get_global_fee.h pg_get_global_fee.c \
    152   pg_get_global_fees.h pg_get_global_fees.c \
    153   pg_get_known_coin.h pg_get_known_coin.c \
    154   pg_get_kyc_rules.h pg_get_kyc_rules.c \
    155   pg_get_refresh.h pg_get_refresh.c \
    156   pg_get_old_coin_by_h_blind.h pg_get_old_coin_by_h_blind.c \
    157   pg_get_pending_kyc_requirement_process.h pg_get_pending_kyc_requirement_process.c \
    158   pg_get_policy_details.h pg_get_policy_details.c \
    159   pg_get_purse_deposit.h pg_get_purse_deposit.c \
    160   pg_get_purse_request.c pg_get_purse_request.h \
    161   pg_get_ready_deposit.h pg_get_ready_deposit.c \
    162   pg_get_refresh_reveal.h pg_get_refresh_reveal.c \
    163   pg_get_reserve_balance.h pg_get_reserve_balance.c \
    164   pg_get_reserve_by_h_planchets.h pg_get_reserve_by_h_planchets.c \
    165   pg_get_reserve_history.c pg_get_reserve_history.h \
    166   pg_get_signature_for_known_coin.h pg_get_signature_for_known_coin.c \
    167   pg_get_unfinished_close_requests.c pg_get_unfinished_close_requests.h \
    168   pg_get_wire_accounts.h pg_get_wire_accounts.c \
    169   pg_get_wire_fee.h pg_get_wire_fee.c \
    170   pg_get_wire_fees.h pg_get_wire_fees.c \
    171   pg_get_wire_hash_for_contract.h pg_get_wire_hash_for_contract.c \
    172   pg_get_withdraw.h pg_get_withdraw.c \
    173   pg_have_deposit2.h pg_have_deposit2.c \
    174   pg_helper.h \
    175   pg_inject_auditor_triggers.h pg_inject_auditor_triggers.c \
    176   pg_insert_active_legitimization_measure.h pg_insert_active_legitimization_measure.c \
    177   pg_insert_aml_decision.h pg_insert_aml_decision.c \
    178   pg_insert_aml_officer.h pg_insert_aml_officer.c \
    179   pg_insert_aml_program_failure.h pg_insert_aml_program_failure.c \
    180   pg_insert_auditor.h pg_insert_auditor.c \
    181   pg_insert_auditor_denom_sig.h pg_insert_auditor_denom_sig.c \
    182   pg_insert_close_request.c pg_insert_close_request.h \
    183   pg_insert_contract.h pg_insert_contract.c \
    184   pg_insert_denomination_info.h pg_insert_denomination_info.c \
    185   pg_insert_denomination_revocation.h pg_insert_denomination_revocation.c \
    186   pg_insert_drain_profit.h pg_insert_drain_profit.c \
    187   pg_insert_global_fee.h pg_insert_global_fee.c \
    188   pg_insert_kyc_failure.h pg_insert_kyc_failure.c \
    189   pg_insert_kyc_requirement_process.h pg_insert_kyc_requirement_process.c \
    190   pg_insert_partner.h pg_insert_partner.c \
    191   pg_insert_purse_request.h pg_insert_purse_request.c \
    192   pg_insert_records_by_table.c pg_insert_records_by_table.h \
    193   pg_insert_refund.h pg_insert_refund.c \
    194   pg_insert_reserve_closed.h pg_insert_reserve_closed.c \
    195   pg_insert_reserve_open_deposit.c pg_insert_reserve_open_deposit.h \
    196   pg_insert_sanction_list_hit.h pg_insert_sanction_list_hit.c \
    197   pg_insert_signkey_revocation.h pg_insert_signkey_revocation.c \
    198   pg_insert_successor_measure.h pg_insert_successor_measure.c \
    199   pg_insert_wire.h pg_insert_wire.c \
    200   pg_insert_wire_fee.h pg_insert_wire_fee.c \
    201   pg_iterate_active_auditors.h pg_iterate_active_auditors.c \
    202   pg_iterate_active_signkeys.h pg_iterate_active_signkeys.c \
    203   pg_iterate_auditor_denominations.h pg_iterate_auditor_denominations.c \
    204   pg_iterate_denomination_info.h pg_iterate_denomination_info.c \
    205   pg_iterate_denominations.h pg_iterate_denominations.c \
    206   pg_iterate_kyc_reference.c pg_iterate_kyc_reference.h \
    207   pg_iterate_reserve_close_info.c pg_iterate_reserve_close_info.h \
    208   pg_kyc_provider_account_lookup.h pg_kyc_provider_account_lookup.c \
    209   pg_kycauth_in_insert.h pg_kycauth_in_insert.c \
    210   pg_lookup_active_legitimization.h pg_lookup_active_legitimization.c \
    211   pg_lookup_aml_file_number.h pg_lookup_aml_file_number.c \
    212   pg_lookup_aml_history.h pg_lookup_aml_history.c \
    213   pg_lookup_aml_officer.h pg_lookup_aml_officer.c \
    214   pg_lookup_auditor_status.h pg_lookup_auditor_status.c \
    215   pg_lookup_auditor_timestamp.h pg_lookup_auditor_timestamp.c \
    216   pg_lookup_completed_legitimization.h pg_lookup_completed_legitimization.c \
    217   pg_lookup_denomination_key.h pg_lookup_denomination_key.c \
    218   pg_lookup_global_fee_by_time.h pg_lookup_global_fee_by_time.c \
    219   pg_lookup_h_payto_by_access_token.h pg_lookup_h_payto_by_access_token.c \
    220   pg_lookup_kyc_history.h pg_lookup_kyc_history.c \
    221   pg_lookup_kyc_process_by_account.h pg_lookup_kyc_process_by_account.c \
    222   pg_lookup_kyc_requirement_by_row.h pg_lookup_kyc_requirement_by_row.c \
    223   pg_lookup_kyc_status_by_token.h pg_lookup_kyc_status_by_token.c \
    224   pg_lookup_pending_legitimization.h pg_lookup_pending_legitimization.c \
    225   pg_lookup_records_by_table.c pg_lookup_records_by_table.h \
    226   pg_lookup_rules_by_access_token.h pg_lookup_rules_by_access_token.c \
    227   pg_lookup_serial_by_table.c pg_lookup_serial_by_table.h \
    228   pg_lookup_signing_key.h pg_lookup_signing_key.c \
    229   pg_lookup_signkey_revocation.h pg_lookup_signkey_revocation.c \
    230   pg_lookup_transfer_by_deposit.h pg_lookup_transfer_by_deposit.c \
    231   pg_lookup_wire_fee_by_time.h pg_lookup_wire_fee_by_time.c \
    232   pg_lookup_wire_timestamp.h pg_lookup_wire_timestamp.c \
    233   pg_lookup_wire_transfer.h pg_lookup_wire_transfer.c \
    234   pg_persist_kyc_attributes.h pg_persist_kyc_attributes.c \
    235   pg_persist_policy_details.h pg_persist_policy_details.c \
    236   pg_preflight.h pg_preflight.c \
    237   pg_profit_drains_get_pending.h pg_profit_drains_get_pending.c \
    238   pg_profit_drains_set_finished.h pg_profit_drains_set_finished.c \
    239   pg_release_revolving_shard.h pg_release_revolving_shard.c \
    240   pg_reserves_get.h pg_reserves_get.c \
    241   pg_reserves_get_origin.h pg_reserves_get_origin.c \
    242   pg_reserves_in_insert.h pg_reserves_in_insert.c \
    243   pg_reserves_update.h pg_reserves_update.c \
    244   pg_rollback.h pg_rollback.c \
    245   pg_select_account_merges_above_serial_id.h pg_select_account_merges_above_serial_id.c \
    246   pg_select_aggregation_amounts_for_kyc_check.h pg_select_aggregation_amounts_for_kyc_check.c \
    247   pg_select_aggregation_transient.h pg_select_aggregation_transient.c \
    248   pg_select_aggregations_above_serial.h pg_select_aggregations_above_serial.c \
    249   pg_select_all_kyc_attributes.h pg_select_all_kyc_attributes.c \
    250   pg_select_all_purse_decisions_above_serial_id.h pg_select_all_purse_decisions_above_serial_id.c \
    251   pg_select_all_purse_deletions_above_serial_id.h pg_select_all_purse_deletions_above_serial_id.c \
    252   pg_select_aml_attributes.h pg_select_aml_attributes.c \
    253   pg_select_aml_decisions.h pg_select_aml_decisions.c \
    254   pg_select_aml_measures.h pg_select_aml_measures.c \
    255   pg_select_aml_statistics.h pg_select_aml_statistics.c \
    256   pg_select_auditor_denom_sig.h pg_select_auditor_denom_sig.c \
    257   pg_select_batch_deposits_missing_wire.h pg_select_batch_deposits_missing_wire.c \
    258   pg_select_coin_deposits_above_serial_id.h pg_select_coin_deposits_above_serial_id.c \
    259   pg_select_contract.h pg_select_contract.c \
    260   pg_select_contract_by_purse.h pg_select_contract_by_purse.c \
    261   pg_select_deposit_amounts_for_kyc_check.h pg_select_deposit_amounts_for_kyc_check.c \
    262   pg_select_exchange_credit_transfers.h pg_select_exchange_credit_transfers.c \
    263   pg_select_exchange_kycauth_transfers.h pg_select_exchange_kycauth_transfers.c \
    264   pg_select_exchange_debit_transfers.h pg_select_exchange_debit_transfers.c \
    265   pg_select_kyc_accounts.h pg_select_kyc_accounts.c \
    266   pg_select_kyc_attributes.h pg_select_kyc_attributes.c \
    267   pg_select_merge_amounts_for_kyc_check.h pg_select_merge_amounts_for_kyc_check.c \
    268   pg_select_purse.h pg_select_purse.c \
    269   pg_select_purse_by_merge_pub.h pg_select_purse_by_merge_pub.c \
    270   pg_select_purse_decisions_above_serial_id.h pg_select_purse_decisions_above_serial_id.c \
    271   pg_select_purse_deposits_above_serial_id.h pg_select_purse_deposits_above_serial_id.c \
    272   pg_select_purse_deposits_by_purse.h pg_select_purse_deposits_by_purse.c \
    273   pg_select_purse_merge.h pg_select_purse_merge.c \
    274   pg_select_purse_merges_above_serial_id.h pg_select_purse_merges_above_serial_id.c \
    275   pg_select_purse_requests_above_serial_id.h pg_select_purse_requests_above_serial_id.c \
    276   pg_select_recoup_above_serial_id.h pg_select_recoup_above_serial_id.c \
    277   pg_select_recoup_refresh_above_serial_id.h pg_select_recoup_refresh_above_serial_id.c \
    278   pg_select_refreshes_above_serial_id.h pg_select_refreshes_above_serial_id.c \
    279   pg_select_refunds_above_serial_id.h pg_select_refunds_above_serial_id.c \
    280   pg_select_refunds_by_coin.h pg_select_refunds_by_coin.c \
    281   pg_select_reserve_close_info.c pg_select_reserve_close_info.h \
    282   pg_select_reserve_closed_above_serial_id.c pg_select_reserve_closed_above_serial_id.h \
    283   pg_select_reserve_open_above_serial_id.c pg_select_reserve_open_above_serial_id.h \
    284   pg_select_reserves_in_above_serial_id.h pg_select_reserves_in_above_serial_id.c \
    285   pg_select_reserves_in_above_serial_id_by_account.h pg_select_reserves_in_above_serial_id_by_account.c \
    286   pg_select_wire_out_above_serial_id.h pg_select_wire_out_above_serial_id.c \
    287   pg_select_wire_out_above_serial_id_by_account.h pg_select_wire_out_above_serial_id_by_account.c \
    288   pg_select_withdraw_amounts_for_kyc_check.h pg_select_withdraw_amounts_for_kyc_check.c \
    289   pg_select_withdrawals_above_serial_id.h pg_select_withdrawals_above_serial_id.c \
    290   pg_set_aml_lock.h pg_set_aml_lock.c \
    291   pg_set_extension_manifest.h pg_set_extension_manifest.c \
    292   pg_set_purse_balance.h pg_set_purse_balance.c \
    293   pg_start.h pg_start.c \
    294   pg_start_deferred_wire_out.h pg_start_deferred_wire_out.c \
    295   pg_start_read_committed.h pg_start_read_committed.c \
    296   pg_start_read_only.h pg_start_read_only.c \
    297   pg_store_wire_transfer_out.h pg_store_wire_transfer_out.c \
    298   pg_test_aml_officer.h pg_test_aml_officer.c \
    299   pg_trigger_kyc_rule_for_account.h pg_trigger_kyc_rule_for_account.c \
    300   pg_update_aggregation_transient.h pg_update_aggregation_transient.c \
    301   pg_update_auditor.h pg_update_auditor.c \
    302   pg_update_kyc_process_by_row.h pg_update_kyc_process_by_row.c \
    303   pg_update_wire.h pg_update_wire.c \
    304   pg_wad_in_insert.h pg_wad_in_insert.c \
    305   pg_wire_prepare_data_get.h pg_wire_prepare_data_get.c \
    306   pg_wire_prepare_data_insert.h pg_wire_prepare_data_insert.c \
    307   pg_wire_prepare_data_mark_failed.h pg_wire_prepare_data_mark_failed.c \
    308   pg_wire_prepare_data_mark_finished.h pg_wire_prepare_data_mark_finished.c \
    309   plugin_exchangedb_common.c plugin_exchangedb_common.h \
    310   plugin_exchangedb_postgres.c plugin_exchangedb_postgres.h
    311 
    312 
    313 libtaler_plugin_exchangedb_postgres_la_LDFLAGS = \
    314   $(TALER_PLUGIN_LDFLAGS)
    315 libtaler_plugin_exchangedb_postgres_la_LIBADD = \
    316   $(LTLIBINTL) \
    317   $(top_builddir)/src/pq/libtalerpq.la \
    318   $(top_builddir)/src/util/libtalerutil.la \
    319   -lgnunetpq \
    320   -lgnunetutil \
    321   -ljansson \
    322   -lpq \
    323   $(XLIB)
    324 
    325 lib_LTLIBRARIES = \
    326   libtalerexchangedb.la
    327 
    328 libtalerexchangedb_la_SOURCES = \
    329   exchangedb_accounts.c \
    330   exchangedb_aml.c \
    331   exchangedb_history.c \
    332   exchangedb_plugin.c \
    333   exchangedb_transactions.c
    334 libtalerexchangedb_la_LIBADD = \
    335   $(top_builddir)/src/bank-lib/libtalerbank.la \
    336   $(top_builddir)/src/kyclogic/libtalerkyclogic.la \
    337   $(top_builddir)/src/json/libtalerjson.la \
    338   $(top_builddir)/src/util/libtalerutil.la \
    339   -lgnunetjson \
    340   -lgnunetutil \
    341   -ljansson \
    342   -lcurl \
    343   $(XLIB)
    344 libtalerexchangedb_la_LDFLAGS = \
    345   $(POSTGRESQL_LDFLAGS) \
    346   -version-info 1:1:0 \
    347   -no-undefined
    348 
    349 # [oec 20250430] disable test for now
    350 # check_PROGRAMS = \
    351 #  test-exchangedb-postgres
    352 
    353 noinst_PROGRAMS = \
    354   bench-db-postgres\
    355   perf_select_refunds_by_coin-postgres\
    356   perf_reserves_in_insert-postgres \
    357   perf_deposits_get_ready-postgres
    358 
    359 AM_TESTS_ENVIRONMENT=export TALER_EXCHANGE_PREFIX=$${TALER_EXCHANGE_PREFIX:-@libdir@};export PATH=$${TALER_EXCHANGE_PREFIX:-@prefix@}/bin:$$PATH;
    360 TESTS = \
    361   $(check_SCRIPTS) \
    362   $(check_PROGRAMS)
    363 
    364 test_exchangedb_postgres_SOURCES = \
    365   test_exchangedb.c
    366 test_exchangedb_postgres_LDADD = \
    367   libtalerexchangedb.la \
    368   $(top_builddir)/src/json/libtalerjson.la \
    369   $(top_builddir)/src/util/libtalerutil.la \
    370   $(top_builddir)/src/pq/libtalerpq.la \
    371   -ljansson \
    372   -lgnunetjson \
    373   -lgnunetutil \
    374   $(XLIB)
    375 
    376 bench_db_postgres_SOURCES = \
    377   bench_db.c
    378 bench_db_postgres_LDADD = \
    379   libtalerexchangedb.la \
    380   $(top_builddir)/src/util/libtalerutil.la \
    381   $(top_builddir)/src/pq/libtalerpq.la \
    382   -lgnunetpq \
    383   -lgnunetutil \
    384   $(XLIB)
    385 
    386 perf_reserves_in_insert_postgres_SOURCES = \
    387   perf_reserves_in_insert.c
    388 perf_reserves_in_insert_postgres_LDADD = \
    389   libtalerexchangedb.la \
    390   $(top_builddir)/src/json/libtalerjson.la \
    391   $(top_builddir)/src/util/libtalerutil.la \
    392   $(top_builddir)/src/pq/libtalerpq.la \
    393   -ljansson \
    394   -lgnunetjson \
    395   -lgnunetutil \
    396   -lm \
    397   $(XLIB)
    398 
    399 perf_select_refunds_by_coin_postgres_SOURCES = \
    400   perf_select_refunds_by_coin.c
    401 perf_select_refunds_by_coin_postgres_LDADD = \
    402   libtalerexchangedb.la \
    403   $(top_builddir)/src/json/libtalerjson.la \
    404   $(top_builddir)/src/util/libtalerutil.la \
    405   $(top_builddir)/src/pq/libtalerpq.la \
    406   -ljansson \
    407   -lgnunetjson \
    408   -lgnunetutil \
    409   -lm \
    410   $(XLIB)
    411 
    412 perf_deposits_get_ready_postgres_SOURCES = \
    413   perf_deposits_get_ready.c
    414 perf_deposits_get_ready_postgres_LDADD = \
    415   libtalerexchangedb.la \
    416   $(top_builddir)/src/json/libtalerjson.la \
    417   $(top_builddir)/src/util/libtalerutil.la \
    418   $(top_builddir)/src/pq/libtalerpq.la \
    419   -ljansson \
    420   -lgnunetjson \
    421   -lgnunetutil \
    422   -lm \
    423   $(XLIB)
    424 
    425 
    426 EXTRA_test_exchangedb_postgres_DEPENDENCIES = \
    427   libtaler_plugin_exchangedb_postgres.la