Merge branch 'master' of git+ssh://gnunet.org/gnunet
[oweals/gnunet.git] / src / util / Makefile.am
1 # This Makefile.am is in the public domain
2 AM_CPPFLAGS = -I$(top_srcdir)/src/include
3
4 plugindir = $(libdir)/gnunet
5
6 libexecdir= $(pkglibdir)/libexec/
7
8 pkgcfgdir= $(pkgdatadir)/config.d/
9
10 dist_pkgcfg_DATA = \
11   util.conf
12
13 pkgcfg_DATA = \
14   resolver.conf
15
16 if MINGW
17 noinst_LTLIBRARIES = \
18   libgnunetutilwin.la
19 libgnunetutilwin_la_SOURCES = \
20   win.c \
21   winproc.c
22 libgnunetutilwin_la_LDFLAGS = \
23   -no-undefined -Wl,--export-all-symbols
24 libgnunetutilwin_la_LIBADD = \
25   -lshell32 -liconv -lstdc++ \
26   -lcomdlg32 -lgdi32 -liphlpapi
27 WINLIB = libgnunetutilwin.la
28 W32CAT = w32cat
29 W32CONSOLEHELPER = gnunet-helper-w32-console
30 endif
31
32 if !MINGW
33  TEST_CLIENT_UNIX_NC = test_client_unix.nc
34 else
35  TEST_CLIENT_UNIX_NC =
36 endif
37
38 if USE_COVERAGE
39   AM_CFLAGS = --coverage -O0
40   XLIB = -lgcov
41 endif
42
43 if ENABLE_BENCHMARK
44   BENCHMARK = benchmark.c benchmark.h
45   PTHREAD = -lpthread
46 endif
47
48 w32cat_SOURCES = w32cat.c
49
50 gnunet_helper_w32_console_SOURCES = \
51   gnunet-helper-w32-console.c \
52   gnunet-helper-w32-console.h
53 gnunet_helper_w32_console_LDADD = \
54   libgnunetutil.la
55
56 gnunet_config_diff_SOURCES = \
57  gnunet-config-diff.c
58 gnunet_config_diff_LDADD = \
59  libgnunetutil.la
60
61 test_common_logging_dummy_SOURCES = \
62  test_common_logging_dummy.c
63 test_common_logging_dummy_LDADD = \
64  libgnunetutil.la
65
66 libgnunetutil_la_SOURCES = \
67   bandwidth.c \
68   $(BENCHMARK) \
69   bio.c \
70   client.c \
71   common_allocation.c \
72   common_endian.c \
73   common_logging.c \
74   configuration.c \
75   configuration_loader.c \
76   container_bloomfilter.c \
77   container_heap.c \
78   container_meta_data.c \
79   container_multihashmap.c \
80   container_multishortmap.c \
81   container_multipeermap.c \
82   container_multihashmap32.c \
83   crypto_symmetric.c \
84   crypto_crc.c \
85   crypto_ecc.c \
86   crypto_ecc_dlog.c \
87   crypto_ecc_setup.c \
88   crypto_hash.c \
89   crypto_hash_file.c \
90   crypto_hkdf.c \
91   crypto_kdf.c \
92   crypto_mpi.c \
93   crypto_paillier.c \
94   crypto_random.c \
95   crypto_rsa.c \
96   disk.c \
97   disk.h \
98   dnsparser.c \
99   dnsstub.c \
100   getopt.c \
101   getopt_helpers.c \
102   helper.c \
103   load.c \
104   mst.c \
105   mq.c \
106   nc.c \
107   network.c \
108   op.c \
109   os_installation.c \
110   os_network.c \
111   os_priority.c \
112   peer.c \
113   plugin.c \
114   program.c \
115   regex.c \
116   resolver_api.c resolver.h \
117   scheduler.c \
118   service.c \
119   signal.c \
120   strings.c \
121   time.c \
122   tun.c \
123   speedup.c speedup.h \
124         proc_compat.c
125
126 if HAVE_LIBATOMIC
127 if DARWIN
128         LIBATOMIC=
129 else
130   LIBATOMIC= -latomic
131 endif
132 else
133   LIBATOMIC=
134 endif
135
136 if HAVE_LIBIDN
137   LIBIDN= -lidn
138 else
139   LIBIDN=
140 endif
141
142 if HAVE_LIBIDN2
143   LIBIDN2= -lidn2
144 else
145   LIBIDN2=
146 endif
147
148 libgnunetutil_la_LIBADD = \
149   $(GCLIBADD) $(WINLIB) \
150   $(LIBATOMIC) \
151   $(LIBGCRYPT_LIBS) \
152   $(LTLIBICONV) \
153   $(LTLIBINTL) \
154   -lltdl \
155   $(LIBIDN) $(LIBIDN2) \
156   $(Z_LIBS) \
157   -lunistring \
158   $(XLIB) \
159   $(PTHREAD)
160
161 libgnunetutil_la_LDFLAGS = \
162   $(GN_LIB_LDFLAGS) \
163   -version-info 13:0:0
164
165 libgnunetutil_taler_wallet_la_SOURCES = \
166   common_allocation.c \
167   common_endian.c \
168   common_logging.c \
169   container_heap.c \
170   container_multihashmap.c \
171   container_multihashmap32.c \
172   crypto_symmetric.c \
173   crypto_crc.c \
174   crypto_ecc.c \
175   crypto_hash.c \
176   crypto_hkdf.c \
177   crypto_kdf.c \
178   crypto_mpi.c \
179   crypto_random.c \
180   crypto_rsa.c \
181   strings.c \
182   time.c
183
184 libgnunetutil_taler_wallet_la_LIBADD = \
185   $(LIBGCRYPT_LIBS) \
186   -lunistring
187
188 libgnunetutil_taler_wallet_la_LDFLAGS = \
189   $(GN_LIB_LDFLAGS) \
190   -version-info 0:0:0
191
192 if HAVE_TESTING
193   GNUNET_ECC = gnunet-ecc
194   GNUNET_SCRYPT = gnunet-scrypt
195 endif
196
197 if TALER_ONLY
198 lib_LTLIBRARIES = libgnunetutil_taler_wallet.la
199 else
200 lib_LTLIBRARIES = libgnunetutil.la
201
202 libexec_PROGRAMS = \
203  gnunet-service-resolver \
204  gnunet-timeout \
205  $(W32CONSOLEHELPER)
206
207 bin_SCRIPTS =\
208  gnunet-qr
209
210 bin_PROGRAMS = \
211  gnunet-resolver \
212  gnunet-config \
213  $(GNUNET_ECC) \
214  $(GNUNET_SCRYPT) \
215  gnunet-uri
216
217 noinst_PROGRAMS = \
218  gnunet-config-diff \
219  $(W32CAT) \
220  test_common_logging_dummy
221
222
223 if ENABLE_TEST_RUN
224 AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset XDG_CONFIG_HOME;
225 TESTS = $(check_PROGRAMS)
226 endif
227
228 endif
229
230
231 if !MINGW
232 gnunet_timeout_SOURCES = \
233  gnunet-timeout.c
234 else
235 gnunet_timeout_SOURCES = \
236  gnunet-timeout-w32.c
237 endif
238
239 # This is horrible, but compared to the alternatives and the solution
240 # which preceded this it is a good compromise and good enough for one
241 # file. Everyone else is invited to patch it locally.
242
243 xENV=$(shell which env)
244
245 do_subst = $(SED) -e 's,[@]ENV[@],${xENV},g'
246
247 gnunet-qr: gnunet-qr.py.in Makefile
248         $(do_subst) < $(top_srcdir)/src/util/gnunet-qr.py.in > gnunet-qr
249         chmod +x gnunet-qr
250
251 gnunet_service_resolver_SOURCES = \
252  gnunet-service-resolver.c
253 gnunet_service_resolver_LDADD = \
254   libgnunetutil.la \
255   $(GN_LIBINTL)
256 if HAVE_GETADDRINFO_A
257 gnunet_service_resolver_LDADD += -lanl
258 endif
259
260
261 gnunet_resolver_SOURCES = \
262  gnunet-resolver.c
263 gnunet_resolver_LDADD = \
264   libgnunetutil.la \
265   $(GN_LIBINTL)
266
267
268 gnunet_ecc_SOURCES = \
269  gnunet-ecc.c
270 gnunet_ecc_LDADD = \
271   libgnunetutil.la \
272   $(GN_LIBINTL) -lgcrypt
273
274 gnunet_scrypt_SOURCES = \
275  gnunet-scrypt.c
276 gnunet_scrypt_LDADD = \
277   libgnunetutil.la \
278   $(GN_LIBINTL) -lgcrypt
279
280
281 gnunet_config_SOURCES = \
282  gnunet-config.c
283 gnunet_config_LDADD = \
284   libgnunetutil.la \
285   $(GN_LIBINTL)
286
287
288 gnunet_uri_SOURCES = \
289  gnunet-uri.c
290 gnunet_uri_LDADD = \
291   libgnunetutil.la \
292   $(GN_LIBINTL)
293
294 plugin_LTLIBRARIES = \
295   libgnunet_plugin_test.la
296
297 libgnunet_plugin_test_la_SOURCES = \
298   test_plugin_plug.c
299 libgnunet_plugin_test_la_LDFLAGS = \
300  $(GN_PLUGIN_LDFLAGS)
301
302 if HAVE_BENCHMARKS
303  BENCHMARKS = \
304   perf_crypto_hash \
305   perf_crypto_ecc_dlog \
306   perf_crypto_rsa \
307   perf_crypto_paillier \
308   perf_crypto_symmetric \
309   perf_crypto_asymmetric \
310   perf_malloc
311 endif
312
313 if HAVE_SSH_KEY
314 # SSH_USING_TESTS = test_socks.nc
315 endif
316
317 check_PROGRAMS = \
318  test_bio \
319  test_client.nc \
320  $(TEST_CLIENT_UNIX_NC) \
321  test_common_allocation \
322  test_common_endian \
323  test_common_logging \
324  test_configuration \
325  test_container_bloomfilter \
326  test_container_dll \
327  test_container_meta_data \
328  test_container_multihashmap \
329  test_container_multihashmap32 \
330  test_container_multipeermap \
331  test_container_heap \
332  test_crypto_symmetric \
333  test_crypto_crc \
334  test_crypto_ecdsa \
335  test_crypto_eddsa \
336  test_crypto_ecdhe \
337  test_crypto_ecdh_eddsa \
338  test_crypto_ecc_dlog \
339  test_crypto_hash \
340  test_crypto_hash_context \
341  test_crypto_hkdf \
342  test_crypto_kdf \
343  test_crypto_paillier \
344  test_crypto_random \
345  test_crypto_rsa \
346  test_disk \
347  test_getopt \
348  test_hexcoder \
349  test_mq \
350  test_os_network \
351  test_peer \
352  test_plugin \
353  test_program \
354  test_regex \
355  test_resolver_api.nc \
356  test_scheduler \
357  test_scheduler_delay \
358  test_service \
359  test_strings \
360  test_strings_to_data \
361  test_speedup \
362  test_time \
363  test_tun \
364  $(BENCHMARKS) \
365  test_os_start_process \
366  test_common_logging_runtime_loglevels
367
368
369 # Declare .nc (NO-CONCURRENCY) as a test extension so that we can impart
370 # sequential execution order for them
371 TEST_EXTENSIONS = .nc
372 test_test_client_unix.log: test_client.log
373
374 test_bio_SOURCES = \
375  test_bio.c
376 test_bio_LDADD = \
377  libgnunetutil.la
378
379 test_hexcoder_SOURCES = \
380  test_hexcoder.c
381 test_hexcoder_LDADD = \
382  libgnunetutil.la
383
384 test_tun_SOURCES = \
385  test_tun.c
386 test_tun_LDADD = \
387  libgnunetutil.la
388
389 test_regex_SOURCES = \
390  test_regex.c
391 test_regex_LDADD = \
392  libgnunetutil.la
393
394 test_os_start_process_SOURCES = \
395  test_os_start_process.c
396 test_os_start_process_LDADD = \
397  libgnunetutil.la
398 test_os_start_process_DEPENDENCIES = \
399  libgnunetutil.la \
400  $(WINCAT)
401
402 test_client_nc_SOURCES = \
403  test_client.c
404 test_client_nc_LDADD = \
405  libgnunetutil.la
406
407 test_client_unix_nc_SOURCES = \
408  test_client.c
409 test_client_unix_nc_LDADD = \
410  libgnunetutil.la
411
412 #test_socks_nc_SOURCES = \
413 # test_socks.c
414 #test_socks_nc_LDADD = \
415 # libgnunetutil.la
416
417 test_common_allocation_SOURCES = \
418  test_common_allocation.c
419 test_common_allocation_LDADD = \
420  libgnunetutil.la
421
422 test_common_endian_SOURCES = \
423  test_common_endian.c
424 test_common_endian_LDADD = \
425  libgnunetutil.la
426
427 test_common_logging_SOURCES = \
428  test_common_logging.c
429 test_common_logging_LDADD = \
430  libgnunetutil.la
431
432 test_common_logging_runtime_loglevels_SOURCES = \
433  test_common_logging_runtime_loglevels.c
434 test_common_logging_runtime_loglevels_LDADD = \
435  libgnunetutil.la
436
437 test_configuration_SOURCES = \
438  test_configuration.c
439 test_configuration_LDADD = \
440  libgnunetutil.la
441
442 test_container_bloomfilter_SOURCES = \
443  test_container_bloomfilter.c
444 test_container_bloomfilter_LDADD = \
445  libgnunetutil.la
446
447 test_container_dll_SOURCES = \
448  test_container_dll.c
449 test_container_dll_LDADD = \
450  libgnunetutil.la
451
452 test_container_meta_data_SOURCES = \
453  test_container_meta_data.c
454 test_container_meta_data_LDADD = \
455  libgnunetutil.la
456
457 test_container_multihashmap_SOURCES = \
458  test_container_multihashmap.c
459 test_container_multihashmap_LDADD = \
460  libgnunetutil.la
461
462 test_container_multihashmap32_SOURCES = \
463  test_container_multihashmap32.c
464 test_container_multihashmap32_LDADD = \
465  libgnunetutil.la
466
467 test_container_multipeermap_SOURCES = \
468  test_container_multipeermap.c
469 test_container_multipeermap_LDADD = \
470  libgnunetutil.la
471
472 test_container_heap_SOURCES = \
473  test_container_heap.c
474 test_container_heap_LDADD = \
475  libgnunetutil.la
476
477 test_crypto_symmetric_SOURCES = \
478  test_crypto_symmetric.c
479 test_crypto_symmetric_LDADD = \
480  libgnunetutil.la
481
482 test_crypto_crc_SOURCES = \
483  test_crypto_crc.c
484 test_crypto_crc_LDADD = \
485  libgnunetutil.la
486
487 test_crypto_ecdsa_SOURCES = \
488  test_crypto_ecdsa.c
489 test_crypto_ecdsa_LDADD = \
490  libgnunetutil.la \
491  $(LIBGCRYPT_LIBS)
492
493 test_crypto_eddsa_SOURCES = \
494  test_crypto_eddsa.c
495 test_crypto_eddsa_LDADD = \
496  libgnunetutil.la \
497  $(LIBGCRYPT_LIBS)
498
499 test_crypto_ecc_dlog_SOURCES = \
500  test_crypto_ecc_dlog.c
501 test_crypto_ecc_dlog_LDADD = \
502  libgnunetutil.la \
503  $(LIBGCRYPT_LIBS)
504
505 test_crypto_ecdhe_SOURCES = \
506  test_crypto_ecdhe.c
507 test_crypto_ecdhe_LDADD = \
508  libgnunetutil.la \
509  $(LIBGCRYPT_LIBS)
510
511 test_crypto_ecdh_eddsa_SOURCES = \
512  test_crypto_ecdh_eddsa.c
513 test_crypto_ecdh_eddsa_LDADD = \
514  libgnunetutil.la \
515  $(LIBGCRYPT_LIBS)
516
517 test_crypto_hash_SOURCES = \
518  test_crypto_hash.c
519 test_crypto_hash_LDADD = \
520  libgnunetutil.la
521
522 test_crypto_hash_context_SOURCES = \
523  test_crypto_hash_context.c
524 test_crypto_hash_context_LDADD = \
525  libgnunetutil.la
526
527 test_crypto_hkdf_SOURCES = \
528  test_crypto_hkdf.c
529 test_crypto_hkdf_LDADD = \
530  libgnunetutil.la
531
532 test_crypto_kdf_SOURCES = \
533  test_crypto_kdf.c
534 test_crypto_kdf_LDADD = \
535  libgnunetutil.la -lgcrypt
536
537 test_crypto_paillier_SOURCES = \
538  test_crypto_paillier.c
539 test_crypto_paillier_LDADD = \
540  $(LIBGCRYPT_LIBS) \
541  libgnunetutil.la
542
543 test_crypto_random_SOURCES = \
544  test_crypto_random.c
545 test_crypto_random_LDADD = \
546  libgnunetutil.la
547
548 test_crypto_rsa_SOURCES = \
549  test_crypto_rsa.c
550 test_crypto_rsa_LDADD = \
551  libgnunetutil.la -lgcrypt
552
553 test_disk_SOURCES = \
554  test_disk.c
555 test_disk_LDADD = \
556  libgnunetutil.la
557
558 test_getopt_SOURCES = \
559  test_getopt.c
560 test_getopt_LDADD = \
561  libgnunetutil.la
562
563 test_mq_SOURCES = \
564  test_mq.c
565 test_mq_LDADD = \
566  libgnunetutil.la
567
568 test_os_network_SOURCES = \
569  test_os_network.c
570 test_os_network_LDADD = \
571  libgnunetutil.la
572
573 test_peer_SOURCES = \
574  test_peer.c
575 test_peer_LDADD = \
576  libgnunetutil.la -lgcrypt
577
578 test_plugin_SOURCES = \
579  test_plugin.c
580 test_plugin_LDADD = \
581  libgnunetutil.la
582
583 test_program_SOURCES = \
584  test_program.c
585 test_program_LDADD = \
586  libgnunetutil.la
587
588 test_resolver_api_nc_SOURCES = \
589  test_resolver_api.c
590 test_resolver_api_nc_LDADD = \
591  libgnunetutil.la
592
593 test_scheduler_SOURCES = \
594  test_scheduler.c
595 test_scheduler_LDADD = \
596  libgnunetutil.la
597
598 test_scheduler_delay_SOURCES = \
599  test_scheduler_delay.c
600 test_scheduler_delay_LDADD = \
601  libgnunetutil.la
602
603 test_service_SOURCES = \
604  test_service.c
605 test_service_LDADD = \
606  libgnunetutil.la
607
608 test_strings_SOURCES = \
609  test_strings.c
610 test_strings_LDADD = \
611  libgnunetutil.la
612
613 test_strings_to_data_SOURCES = \
614  test_strings_to_data.c
615 test_strings_to_data_LDADD = \
616  libgnunetutil.la
617
618
619 test_time_SOURCES = \
620  test_time.c
621 test_time_LDADD = \
622  libgnunetutil.la
623
624 test_speedup_SOURCES = \
625  test_speedup.c
626 test_speedup_LDADD = \
627  libgnunetutil.la
628
629 perf_crypto_hash_SOURCES = \
630  perf_crypto_hash.c
631 perf_crypto_hash_LDADD = \
632  libgnunetutil.la
633
634 perf_crypto_ecc_dlog_SOURCES = \
635  perf_crypto_ecc_dlog.c
636 perf_crypto_ecc_dlog_LDADD = \
637  libgnunetutil.la \
638  -lgcrypt
639
640 perf_crypto_rsa_SOURCES = \
641  perf_crypto_rsa.c
642 perf_crypto_rsa_LDADD = \
643  libgnunetutil.la
644
645 perf_crypto_symmetric_SOURCES = \
646  perf_crypto_symmetric.c
647 perf_crypto_symmetric_LDADD = \
648  libgnunetutil.la
649
650 perf_crypto_asymmetric_SOURCES = \
651  perf_crypto_asymmetric.c
652 perf_crypto_asymmetric_LDADD = \
653  libgnunetutil.la
654
655 perf_crypto_paillier_SOURCES = \
656  perf_crypto_paillier.c
657 perf_crypto_paillier_LDADD = \
658  libgnunetutil.la \
659  -lgcrypt
660
661 perf_malloc_SOURCES = \
662  perf_malloc.c
663 perf_malloc_LDADD = \
664  libgnunetutil.la
665
666
667 EXTRA_DIST = \
668   test_client_data.conf \
669   test_client_unix.conf \
670   test_configuration_data.conf \
671   test_program_data.conf \
672   test_resolver_api_data.conf \
673   test_service_data.conf \
674   test_speedup_data.conf \
675   gnunet-qr.py.in