diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-08-30 13:45:14 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-08-30 13:45:14 +0000 |
commit | 18750698424125b71e5c46e9c4b54fbe0ccce51c (patch) | |
tree | 8980c1b1d4291bc03a0f471c1f1f9ae2cadd595b /src/multicast | |
parent | 3df2832fdf4bd38c1c766fe1b3f2a97c9fe1fe4d (diff) | |
download | gnunet-18750698424125b71e5c46e9c4b54fbe0ccce51c.tar.gz gnunet-18750698424125b71e5c46e9c4b54fbe0ccce51c.zip |
-harness for multicast
Diffstat (limited to 'src/multicast')
-rw-r--r-- | src/multicast/Makefile | 923 | ||||
-rw-r--r-- | src/multicast/Makefile.am | 61 | ||||
-rw-r--r-- | src/multicast/Makefile.in | 923 | ||||
-rw-r--r-- | src/multicast/gnunet-multicast.c | 76 | ||||
-rw-r--r-- | src/multicast/gnunet-service-multicast.c | 80 | ||||
-rw-r--r-- | src/multicast/multicast.conf.in | 20 | ||||
-rw-r--r-- | src/multicast/multicast_api.c | 554 | ||||
-rw-r--r-- | src/multicast/test_multicast_api.c | 44 |
8 files changed, 2681 insertions, 0 deletions
diff --git a/src/multicast/Makefile b/src/multicast/Makefile new file mode 100644 index 000000000..2949b37c4 --- /dev/null +++ b/src/multicast/Makefile | |||
@@ -0,0 +1,923 @@ | |||
1 | # Makefile.in generated by automake 1.11.6 from Makefile.am. | ||
2 | # src/template/Makefile. Generated from Makefile.in by configure. | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software | ||
6 | # Foundation, Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | am__make_dryrun = \ | ||
21 | { \ | ||
22 | am__dry=no; \ | ||
23 | case $$MAKEFLAGS in \ | ||
24 | *\\[\ \ ]*) \ | ||
25 | echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | ||
26 | | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ | ||
27 | *) \ | ||
28 | for am__flg in $$MAKEFLAGS; do \ | ||
29 | case $$am__flg in \ | ||
30 | *=*|--*) ;; \ | ||
31 | *n*) am__dry=yes; break;; \ | ||
32 | esac; \ | ||
33 | done;; \ | ||
34 | esac; \ | ||
35 | test $$am__dry = yes; \ | ||
36 | } | ||
37 | pkgdatadir = $(datadir)/gnunet | ||
38 | pkgincludedir = $(includedir)/gnunet | ||
39 | pkglibdir = $(libdir)/gnunet | ||
40 | pkglibexecdir = $(libexecdir)/gnunet | ||
41 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
42 | install_sh_DATA = $(install_sh) -c -m 644 | ||
43 | install_sh_PROGRAM = $(install_sh) -c | ||
44 | install_sh_SCRIPT = $(install_sh) -c | ||
45 | INSTALL_HEADER = $(INSTALL_DATA) | ||
46 | transform = $(program_transform_name) | ||
47 | NORMAL_INSTALL = : | ||
48 | PRE_INSTALL = : | ||
49 | POST_INSTALL = : | ||
50 | NORMAL_UNINSTALL = : | ||
51 | PRE_UNINSTALL = : | ||
52 | POST_UNINSTALL = : | ||
53 | build_triplet = x86_64-unknown-linux-gnu | ||
54 | host_triplet = x86_64-unknown-linux-gnu | ||
55 | target_triplet = x86_64-unknown-linux-gnu | ||
56 | bin_PROGRAMS = gnunet-template$(EXEEXT) | ||
57 | libexec_PROGRAMS = gnunet-service-template$(EXEEXT) | ||
58 | check_PROGRAMS = test_template_api$(EXEEXT) | ||
59 | subdir = src/template | ||
60 | DIST_COMMON = $(dist_pkgcfg_DATA) $(srcdir)/Makefile.am \ | ||
61 | $(srcdir)/Makefile.in | ||
62 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
63 | am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \ | ||
64 | $(top_srcdir)/m4/align.m4 $(top_srcdir)/m4/argz.m4 \ | ||
65 | $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ | ||
66 | $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ | ||
67 | $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libcurl.m4 \ | ||
68 | $(top_srcdir)/m4/libgcrypt.m4 $(top_srcdir)/m4/libtool.m4 \ | ||
69 | $(top_srcdir)/m4/libunistring.m4 $(top_srcdir)/m4/ltdl.m4 \ | ||
70 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | ||
71 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | ||
72 | $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ | ||
73 | $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ | ||
74 | $(top_srcdir)/configure.ac | ||
75 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
76 | $(ACLOCAL_M4) | ||
77 | mkinstalldirs = $(install_sh) -d | ||
78 | CONFIG_HEADER = $(top_builddir)/gnunet_config.h | ||
79 | CONFIG_CLEAN_FILES = | ||
80 | CONFIG_CLEAN_VPATH_FILES = | ||
81 | am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \ | ||
82 | "$(DESTDIR)$(pkgcfgdir)" | ||
83 | PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) | ||
84 | am_gnunet_service_template_OBJECTS = \ | ||
85 | gnunet-service-template.$(OBJEXT) | ||
86 | gnunet_service_template_OBJECTS = \ | ||
87 | $(am_gnunet_service_template_OBJECTS) | ||
88 | am__DEPENDENCIES_1 = | ||
89 | gnunet_service_template_DEPENDENCIES = \ | ||
90 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
91 | $(am__DEPENDENCIES_1) | ||
92 | AM_V_lt = $(am__v_lt_$(V)) | ||
93 | am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) | ||
94 | am__v_lt_0 = --silent | ||
95 | am_gnunet_template_OBJECTS = gnunet-template.$(OBJEXT) | ||
96 | gnunet_template_OBJECTS = $(am_gnunet_template_OBJECTS) | ||
97 | gnunet_template_DEPENDENCIES = \ | ||
98 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
99 | $(am__DEPENDENCIES_1) | ||
100 | am_test_template_api_OBJECTS = test_template_api.$(OBJEXT) | ||
101 | test_template_api_OBJECTS = $(am_test_template_api_OBJECTS) | ||
102 | test_template_api_DEPENDENCIES = \ | ||
103 | $(top_builddir)/src/util/libgnunetutil.la | ||
104 | DEFAULT_INCLUDES = -I. -I$(top_builddir) | ||
105 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
106 | am__depfiles_maybe = depfiles | ||
107 | am__mv = mv -f | ||
108 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
109 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
110 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
111 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
112 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
113 | $(AM_CFLAGS) $(CFLAGS) | ||
114 | AM_V_CC = $(am__v_CC_$(V)) | ||
115 | am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) | ||
116 | am__v_CC_0 = @echo " CC " $@; | ||
117 | AM_V_at = $(am__v_at_$(V)) | ||
118 | am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) | ||
119 | am__v_at_0 = @ | ||
120 | CCLD = $(CC) | ||
121 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
122 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
123 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
124 | AM_V_CCLD = $(am__v_CCLD_$(V)) | ||
125 | am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) | ||
126 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
127 | AM_V_GEN = $(am__v_GEN_$(V)) | ||
128 | am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) | ||
129 | am__v_GEN_0 = @echo " GEN " $@; | ||
130 | SOURCES = $(gnunet_service_template_SOURCES) \ | ||
131 | $(gnunet_template_SOURCES) $(test_template_api_SOURCES) | ||
132 | DIST_SOURCES = $(gnunet_service_template_SOURCES) \ | ||
133 | $(gnunet_template_SOURCES) $(test_template_api_SOURCES) | ||
134 | am__can_run_installinfo = \ | ||
135 | case $$AM_UPDATE_INFO_DIR in \ | ||
136 | n|no|NO) false;; \ | ||
137 | *) (install-info --version) >/dev/null 2>&1;; \ | ||
138 | esac | ||
139 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||
140 | am__vpath_adj = case $$p in \ | ||
141 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||
142 | *) f=$$p;; \ | ||
143 | esac; | ||
144 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||
145 | am__install_max = 40 | ||
146 | am__nobase_strip_setup = \ | ||
147 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||
148 | am__nobase_strip = \ | ||
149 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||
150 | am__nobase_list = $(am__nobase_strip_setup); \ | ||
151 | for p in $$list; do echo "$$p $$p"; done | \ | ||
152 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||
153 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||
154 | if (++n[$$2] == $(am__install_max)) \ | ||
155 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||
156 | END { for (dir in files) print dir, files[dir] }' | ||
157 | am__base_list = \ | ||
158 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||
159 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||
160 | am__uninstall_files_from_dir = { \ | ||
161 | test -z "$$files" \ | ||
162 | || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ | ||
163 | || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ | ||
164 | $(am__cd) "$$dir" && rm -f $$files; }; \ | ||
165 | } | ||
166 | DATA = $(dist_pkgcfg_DATA) | ||
167 | ETAGS = etags | ||
168 | CTAGS = ctags | ||
169 | am__tty_colors = \ | ||
170 | red=; grn=; lgn=; blu=; std= | ||
171 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
172 | ACLOCAL = ${SHELL} /home/grothoff/svn/gnunet/missing --run aclocal-1.11 | ||
173 | AMTAR = $${TAR-tar} | ||
174 | AM_DEFAULT_VERBOSITY = 0 | ||
175 | AR = ar | ||
176 | ARGZ_H = | ||
177 | AS = as | ||
178 | AUTOCONF = ${SHELL} /home/grothoff/svn/gnunet/missing --run autoconf | ||
179 | AUTOHEADER = ${SHELL} /home/grothoff/svn/gnunet/missing --run autoheader | ||
180 | AUTOMAKE = ${SHELL} /home/grothoff/svn/gnunet/missing --run automake-1.11 | ||
181 | AWK = gawk | ||
182 | CC = gcc | ||
183 | CCDEPMODE = depmode=gcc3 | ||
184 | CFLAGS = -fno-strict-aliasing -Wall -g -O0 -Wall -I/home/grothoff/include | ||
185 | CPP = gcc -E | ||
186 | CPPFLAGS = -I/home/grothoff//include -I/home/grothoff//include | ||
187 | CXX = g++ | ||
188 | CXXCPP = g++ -E | ||
189 | CXXDEPMODE = depmode=gcc3 | ||
190 | CXXFLAGS = -g -O0 -Wall | ||
191 | CYGPATH_W = echo | ||
192 | DEFAULT_INTERFACE = "eth0" | ||
193 | DEFS = -DHAVE_CONFIG_H | ||
194 | DEPDIR = .deps | ||
195 | DLLDIR = lib | ||
196 | DLLTOOL = false | ||
197 | DSYMUTIL = | ||
198 | DUMPBIN = | ||
199 | ECHO_C = | ||
200 | ECHO_N = -n | ||
201 | ECHO_T = | ||
202 | EGREP = /bin/grep -E | ||
203 | EXEEXT = | ||
204 | EXT_LIBS = | ||
205 | EXT_LIB_PATH = -L/home/grothoff//lib -L/home/grothoff//lib | ||
206 | FGREP = /bin/grep -F | ||
207 | GMSGFMT = /usr/bin/msgfmt | ||
208 | GMSGFMT_015 = /usr/bin/msgfmt | ||
209 | GNUNETDNS_GROUP = gnunetdns | ||
210 | GN_DAEMON_CONFIG_DIR = /etc | ||
211 | GN_DAEMON_HOME_DIR = /var/lib/gnunet | ||
212 | GN_INTLINCL = | ||
213 | GN_LIBINTL = | ||
214 | GN_LIB_LDFLAGS = -export-dynamic -no-undefined | ||
215 | GN_PLUGIN_LDFLAGS = -export-dynamic -avoid-version -module -no-undefined | ||
216 | GN_USER_HOME_DIR = ~/.gnunet | ||
217 | GREP = /bin/grep | ||
218 | HAVE_LIBUNISTRING = yes | ||
219 | INCLTDL = | ||
220 | INSTALL = /usr/bin/install -c | ||
221 | INSTALL_DATA = ${INSTALL} -m 644 | ||
222 | INSTALL_PROGRAM = ${INSTALL} | ||
223 | INSTALL_SCRIPT = ${INSTALL} | ||
224 | INSTALL_STRIP_PROGRAM = $(install_sh) -c -s | ||
225 | INTLLIBS = | ||
226 | INTL_MACOSX_LIBS = | ||
227 | JAVAPORT = # | ||
228 | LD = /usr/bin/ld -m elf_x86_64 | ||
229 | LDFLAGS = -L/home/grothoff//lib -L/home/grothoff//lib | ||
230 | LIBADD_DL = -ldl | ||
231 | LIBADD_DLD_LINK = | ||
232 | LIBADD_DLOPEN = -ldl | ||
233 | LIBADD_SHL_LOAD = | ||
234 | LIBCURL = -L/home/grothoff/lib -lcurl -L/usr/lib | ||
235 | LIBCURL_CPPFLAGS = -I/home/grothoff/include | ||
236 | LIBGCRYPT_CFLAGS = -I/home/grothoff/include | ||
237 | LIBGCRYPT_CONFIG = /home/grothoff/bin//libgcrypt-config | ||
238 | LIBGCRYPT_LIBS = -L/home/grothoff/lib -lgcrypt -lgpg-error | ||
239 | LIBICONV = | ||
240 | LIBINTL = | ||
241 | LIBLTDL = -lltdl | ||
242 | LIBOBJS = | ||
243 | LIBPREFIX = | ||
244 | LIBS = -lm -ldl | ||
245 | LIBTOOL = $(SHELL) $(top_builddir)/libtool | ||
246 | LIBUNISTRING = -lunistring | ||
247 | LIPO = | ||
248 | LN_S = ln -s | ||
249 | LTDLDEPS = | ||
250 | LTDLINCL = | ||
251 | LTDLOPEN = libltdl | ||
252 | LTLIBICONV = | ||
253 | LTLIBINTL = | ||
254 | LTLIBOBJS = | ||
255 | LTLIBUNISTRING = -lunistring | ||
256 | LT_CONFIG_H = gnunet_config.h | ||
257 | LT_DLLOADERS = libltdl/dlopen.la | ||
258 | LT_DLPREOPEN = -dlpreopen libltdl/dlopen.la | ||
259 | MAKEINFO = ${SHELL} /home/grothoff/svn/gnunet/missing --run makeinfo | ||
260 | MANIFEST_TOOL = : | ||
261 | MKDIR_P = /bin/mkdir -p | ||
262 | MONKEYPREFIX = | ||
263 | MSGFMT = /usr/bin/msgfmt | ||
264 | MSGFMT_015 = /usr/bin/msgfmt | ||
265 | MSGMERGE = /usr/bin/msgmerge | ||
266 | MYSQL_CPPFLAGS = | ||
267 | MYSQL_LDFLAGS = -L/usr/lib/mysql | ||
268 | NM = /usr/bin/nm -B | ||
269 | NMEDIT = | ||
270 | NSS_DIR = | ||
271 | OBJC = gcc | ||
272 | OBJCDEPMODE = depmode=gcc3 | ||
273 | OBJCFLAGS = | ||
274 | OBJDUMP = objdump | ||
275 | OBJEXT = o | ||
276 | OTOOL = | ||
277 | OTOOL64 = | ||
278 | PACKAGE = gnunet | ||
279 | PACKAGE_BUGREPORT = bug-gnunet@gnu.org | ||
280 | PACKAGE_NAME = gnunet | ||
281 | PACKAGE_STRING = gnunet 0.9.5a | ||
282 | PACKAGE_TARNAME = gnunet | ||
283 | PACKAGE_URL = | ||
284 | PACKAGE_VERSION = 0.9.5a | ||
285 | PATH_SEPARATOR = : | ||
286 | POSTGRES_CPPFLAGS = | ||
287 | POSTGRES_LDFLAGS = | ||
288 | POSUB = po | ||
289 | PYTHON = /usr/bin/python | ||
290 | PYTHON_EXEC_PREFIX = ${exec_prefix} | ||
291 | PYTHON_PLATFORM = linux2 | ||
292 | PYTHON_PREFIX = ${prefix} | ||
293 | PYTHON_VERSION = 2.7 | ||
294 | RANLIB = ranlib | ||
295 | SED = /bin/sed | ||
296 | SET_MAKE = | ||
297 | SHELL = /bin/bash | ||
298 | SQLITE_CPPFLAGS = | ||
299 | SQLITE_LDFLAGS = | ||
300 | STRIP = strip | ||
301 | SUDO_BINARY = | ||
302 | UNIXONLY = # | ||
303 | USE_NLS = yes | ||
304 | VERSION = 0.9.5a | ||
305 | XGETTEXT = /usr/bin/xgettext | ||
306 | XGETTEXT_015 = /usr/bin/xgettext | ||
307 | XMKMF = | ||
308 | X_CFLAGS = | ||
309 | X_EXTRA_LIBS = | ||
310 | X_LIBS = | ||
311 | X_PRE_LIBS = -lSM -lICE | ||
312 | Z_CFLAGS = | ||
313 | Z_LIBS = -lz | ||
314 | _libcurl_config = | ||
315 | abs_builddir = /home/grothoff/svn/gnunet/src/template | ||
316 | abs_srcdir = /home/grothoff/svn/gnunet/src/template | ||
317 | abs_top_builddir = /home/grothoff/svn/gnunet | ||
318 | abs_top_srcdir = /home/grothoff/svn/gnunet | ||
319 | ac_ct_AR = ar | ||
320 | ac_ct_CC = gcc | ||
321 | ac_ct_CXX = g++ | ||
322 | ac_ct_DUMPBIN = | ||
323 | ac_ct_OBJC = gcc | ||
324 | am__include = include | ||
325 | am__leading_dot = . | ||
326 | am__quote = | ||
327 | am__tar = $${TAR-tar} chof - "$$tardir" | ||
328 | am__untar = $${TAR-tar} xf - | ||
329 | bindir = ${exec_prefix}/bin | ||
330 | build = x86_64-unknown-linux-gnu | ||
331 | build_alias = | ||
332 | build_cpu = x86_64 | ||
333 | build_os = linux-gnu | ||
334 | build_target = linux | ||
335 | build_vendor = unknown | ||
336 | builddir = . | ||
337 | datadir = ${datarootdir} | ||
338 | datarootdir = ${prefix}/share | ||
339 | docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} | ||
340 | dvidir = ${docdir} | ||
341 | exec_prefix = ${prefix} | ||
342 | gitcommand = /usr/bin/git | ||
343 | host = x86_64-unknown-linux-gnu | ||
344 | host_alias = | ||
345 | host_cpu = x86_64 | ||
346 | host_os = linux-gnu | ||
347 | host_vendor = unknown | ||
348 | htmldir = ${docdir} | ||
349 | includedir = ${prefix}/include | ||
350 | infodir = ${datarootdir}/info | ||
351 | install_sh = ${SHELL} /home/grothoff/svn/gnunet/install-sh | ||
352 | libdir = ${exec_prefix}/lib | ||
353 | libexecdir = $(pkglibdir)/libexec/ | ||
354 | localedir = ${datarootdir}/locale | ||
355 | localstatedir = ${prefix}/var | ||
356 | ltdl_LIBOBJS = lt__strl.o | ||
357 | ltdl_LTLIBOBJS = lt__strl.lo | ||
358 | mandir = ${datarootdir}/man | ||
359 | mkdir_p = /bin/mkdir -p | ||
360 | oldincludedir = /usr/include | ||
361 | pdfdir = ${docdir} | ||
362 | pkgpyexecdir = ${pyexecdir}/gnunet | ||
363 | pkgpythondir = ${pythondir}/gnunet | ||
364 | prefix = /home/grothoff | ||
365 | program_transform_name = s,x,x, | ||
366 | psdir = ${docdir} | ||
367 | pyexecdir = ${exec_prefix}/lib/python2.7/site-packages | ||
368 | pythondir = ${prefix}/lib/python2.7/site-packages | ||
369 | sbindir = ${exec_prefix}/sbin | ||
370 | sharedstatedir = ${prefix}/com | ||
371 | srcdir = . | ||
372 | subdirs = libltdl | ||
373 | svnversioncommand = /usr/bin/svnversion | ||
374 | sys_symbol_underscore = no | ||
375 | sysconfdir = ${prefix}/etc | ||
376 | target = x86_64-unknown-linux-gnu | ||
377 | target_alias = | ||
378 | target_cpu = x86_64 | ||
379 | target_os = linux-gnu | ||
380 | target_vendor = unknown | ||
381 | top_build_prefix = ../../ | ||
382 | top_builddir = ../.. | ||
383 | top_srcdir = ../.. | ||
384 | INCLUDES = -I$(top_srcdir)/src/include | ||
385 | pkgcfgdir = $(pkgdatadir)/config.d/ | ||
386 | dist_pkgcfg_DATA = \ | ||
387 | template.conf | ||
388 | |||
389 | #WINFLAGS = -Wl,--no-undefined -Wl,--export-all-symbols | ||
390 | #AM_CFLAGS = -fprofile-arcs -ftest-coverage | ||
391 | gnunet_template_SOURCES = \ | ||
392 | gnunet-template.c | ||
393 | |||
394 | gnunet_template_LDADD = \ | ||
395 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
396 | $(GN_LIBINTL) | ||
397 | |||
398 | gnunet_service_template_SOURCES = \ | ||
399 | gnunet-service-template.c | ||
400 | |||
401 | gnunet_service_template_LDADD = \ | ||
402 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
403 | $(GN_LIBINTL) | ||
404 | |||
405 | TESTS = $(check_PROGRAMS) | ||
406 | test_template_api_SOURCES = \ | ||
407 | test_template_api.c | ||
408 | |||
409 | test_template_api_LDADD = \ | ||
410 | $(top_builddir)/src/util/libgnunetutil.la | ||
411 | |||
412 | all: all-am | ||
413 | |||
414 | .SUFFIXES: | ||
415 | .SUFFIXES: .c .lo .o .obj | ||
416 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
417 | @for dep in $?; do \ | ||
418 | case '$(am__configure_deps)' in \ | ||
419 | *$$dep*) \ | ||
420 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
421 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
422 | exit 1;; \ | ||
423 | esac; \ | ||
424 | done; \ | ||
425 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/template/Makefile'; \ | ||
426 | $(am__cd) $(top_srcdir) && \ | ||
427 | $(AUTOMAKE) --gnu src/template/Makefile | ||
428 | .PRECIOUS: Makefile | ||
429 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
430 | @case '$?' in \ | ||
431 | *config.status*) \ | ||
432 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
433 | *) \ | ||
434 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
435 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
436 | esac; | ||
437 | |||
438 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
439 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
440 | |||
441 | $(top_srcdir)/configure: $(am__configure_deps) | ||
442 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
443 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
444 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
445 | $(am__aclocal_m4_deps): | ||
446 | install-binPROGRAMS: $(bin_PROGRAMS) | ||
447 | @$(NORMAL_INSTALL) | ||
448 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
449 | if test -n "$$list"; then \ | ||
450 | echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ | ||
451 | $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ | ||
452 | fi; \ | ||
453 | for p in $$list; do echo "$$p $$p"; done | \ | ||
454 | sed 's/$(EXEEXT)$$//' | \ | ||
455 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
456 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
457 | done | \ | ||
458 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
459 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
460 | sed 'N;N;N;s,\n, ,g' | \ | ||
461 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
462 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
463 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
464 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
465 | END { for (d in files) print "f", d, files[d] }' | \ | ||
466 | while read type dir files; do \ | ||
467 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
468 | test -z "$$files" || { \ | ||
469 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ | ||
470 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ | ||
471 | } \ | ||
472 | ; done | ||
473 | |||
474 | uninstall-binPROGRAMS: | ||
475 | @$(NORMAL_UNINSTALL) | ||
476 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
477 | files=`for p in $$list; do echo "$$p"; done | \ | ||
478 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
479 | -e 's/$$/$(EXEEXT)/' `; \ | ||
480 | test -n "$$list" || exit 0; \ | ||
481 | echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ | ||
482 | cd "$(DESTDIR)$(bindir)" && rm -f $$files | ||
483 | |||
484 | clean-binPROGRAMS: | ||
485 | @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
486 | echo " rm -f" $$list; \ | ||
487 | rm -f $$list || exit $$?; \ | ||
488 | test -n "$(EXEEXT)" || exit 0; \ | ||
489 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
490 | echo " rm -f" $$list; \ | ||
491 | rm -f $$list | ||
492 | |||
493 | clean-checkPROGRAMS: | ||
494 | @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
495 | echo " rm -f" $$list; \ | ||
496 | rm -f $$list || exit $$?; \ | ||
497 | test -n "$(EXEEXT)" || exit 0; \ | ||
498 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
499 | echo " rm -f" $$list; \ | ||
500 | rm -f $$list | ||
501 | install-libexecPROGRAMS: $(libexec_PROGRAMS) | ||
502 | @$(NORMAL_INSTALL) | ||
503 | @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ | ||
504 | if test -n "$$list"; then \ | ||
505 | echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ | ||
506 | $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ | ||
507 | fi; \ | ||
508 | for p in $$list; do echo "$$p $$p"; done | \ | ||
509 | sed 's/$(EXEEXT)$$//' | \ | ||
510 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
511 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
512 | done | \ | ||
513 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
514 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
515 | sed 'N;N;N;s,\n, ,g' | \ | ||
516 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
517 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
518 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
519 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
520 | END { for (d in files) print "f", d, files[d] }' | \ | ||
521 | while read type dir files; do \ | ||
522 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
523 | test -z "$$files" || { \ | ||
524 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ | ||
525 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ | ||
526 | } \ | ||
527 | ; done | ||
528 | |||
529 | uninstall-libexecPROGRAMS: | ||
530 | @$(NORMAL_UNINSTALL) | ||
531 | @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ | ||
532 | files=`for p in $$list; do echo "$$p"; done | \ | ||
533 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
534 | -e 's/$$/$(EXEEXT)/' `; \ | ||
535 | test -n "$$list" || exit 0; \ | ||
536 | echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ | ||
537 | cd "$(DESTDIR)$(libexecdir)" && rm -f $$files | ||
538 | |||
539 | clean-libexecPROGRAMS: | ||
540 | @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
541 | echo " rm -f" $$list; \ | ||
542 | rm -f $$list || exit $$?; \ | ||
543 | test -n "$(EXEEXT)" || exit 0; \ | ||
544 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
545 | echo " rm -f" $$list; \ | ||
546 | rm -f $$list | ||
547 | gnunet-service-template$(EXEEXT): $(gnunet_service_template_OBJECTS) $(gnunet_service_template_DEPENDENCIES) $(EXTRA_gnunet_service_template_DEPENDENCIES) | ||
548 | @rm -f gnunet-service-template$(EXEEXT) | ||
549 | $(AM_V_CCLD)$(LINK) $(gnunet_service_template_OBJECTS) $(gnunet_service_template_LDADD) $(LIBS) | ||
550 | gnunet-template$(EXEEXT): $(gnunet_template_OBJECTS) $(gnunet_template_DEPENDENCIES) $(EXTRA_gnunet_template_DEPENDENCIES) | ||
551 | @rm -f gnunet-template$(EXEEXT) | ||
552 | $(AM_V_CCLD)$(LINK) $(gnunet_template_OBJECTS) $(gnunet_template_LDADD) $(LIBS) | ||
553 | test_template_api$(EXEEXT): $(test_template_api_OBJECTS) $(test_template_api_DEPENDENCIES) $(EXTRA_test_template_api_DEPENDENCIES) | ||
554 | @rm -f test_template_api$(EXEEXT) | ||
555 | $(AM_V_CCLD)$(LINK) $(test_template_api_OBJECTS) $(test_template_api_LDADD) $(LIBS) | ||
556 | |||
557 | mostlyclean-compile: | ||
558 | -rm -f *.$(OBJEXT) | ||
559 | |||
560 | distclean-compile: | ||
561 | -rm -f *.tab.c | ||
562 | |||
563 | include ./$(DEPDIR)/gnunet-service-template.Po | ||
564 | include ./$(DEPDIR)/gnunet-template.Po | ||
565 | include ./$(DEPDIR)/test_template_api.Po | ||
566 | |||
567 | .c.o: | ||
568 | $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
569 | $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
570 | # $(AM_V_CC)source='$<' object='$@' libtool=no \ | ||
571 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ | ||
572 | # $(AM_V_CC_no)$(COMPILE) -c $< | ||
573 | |||
574 | .c.obj: | ||
575 | $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
576 | $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
577 | # $(AM_V_CC)source='$<' object='$@' libtool=no \ | ||
578 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ | ||
579 | # $(AM_V_CC_no)$(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
580 | |||
581 | .c.lo: | ||
582 | $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
583 | $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
584 | # $(AM_V_CC)source='$<' object='$@' libtool=yes \ | ||
585 | # DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ | ||
586 | # $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< | ||
587 | |||
588 | mostlyclean-libtool: | ||
589 | -rm -f *.lo | ||
590 | |||
591 | clean-libtool: | ||
592 | -rm -rf .libs _libs | ||
593 | install-dist_pkgcfgDATA: $(dist_pkgcfg_DATA) | ||
594 | @$(NORMAL_INSTALL) | ||
595 | @list='$(dist_pkgcfg_DATA)'; test -n "$(pkgcfgdir)" || list=; \ | ||
596 | if test -n "$$list"; then \ | ||
597 | echo " $(MKDIR_P) '$(DESTDIR)$(pkgcfgdir)'"; \ | ||
598 | $(MKDIR_P) "$(DESTDIR)$(pkgcfgdir)" || exit 1; \ | ||
599 | fi; \ | ||
600 | for p in $$list; do \ | ||
601 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||
602 | echo "$$d$$p"; \ | ||
603 | done | $(am__base_list) | \ | ||
604 | while read files; do \ | ||
605 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgcfgdir)'"; \ | ||
606 | $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgcfgdir)" || exit $$?; \ | ||
607 | done | ||
608 | |||
609 | uninstall-dist_pkgcfgDATA: | ||
610 | @$(NORMAL_UNINSTALL) | ||
611 | @list='$(dist_pkgcfg_DATA)'; test -n "$(pkgcfgdir)" || list=; \ | ||
612 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||
613 | dir='$(DESTDIR)$(pkgcfgdir)'; $(am__uninstall_files_from_dir) | ||
614 | |||
615 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
616 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
617 | unique=`for i in $$list; do \ | ||
618 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
619 | done | \ | ||
620 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
621 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
622 | mkid -fID $$unique | ||
623 | tags: TAGS | ||
624 | |||
625 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
626 | $(TAGS_FILES) $(LISP) | ||
627 | set x; \ | ||
628 | here=`pwd`; \ | ||
629 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
630 | unique=`for i in $$list; do \ | ||
631 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
632 | done | \ | ||
633 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
634 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
635 | shift; \ | ||
636 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
637 | test -n "$$unique" || unique=$$empty_fix; \ | ||
638 | if test $$# -gt 0; then \ | ||
639 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
640 | "$$@" $$unique; \ | ||
641 | else \ | ||
642 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
643 | $$unique; \ | ||
644 | fi; \ | ||
645 | fi | ||
646 | ctags: CTAGS | ||
647 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
648 | $(TAGS_FILES) $(LISP) | ||
649 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
650 | unique=`for i in $$list; do \ | ||
651 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
652 | done | \ | ||
653 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
654 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
655 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
656 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
657 | $$unique | ||
658 | |||
659 | GTAGS: | ||
660 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
661 | && $(am__cd) $(top_srcdir) \ | ||
662 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
663 | |||
664 | distclean-tags: | ||
665 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
666 | |||
667 | check-TESTS: $(TESTS) | ||
668 | @failed=0; all=0; xfail=0; xpass=0; skip=0; \ | ||
669 | srcdir=$(srcdir); export srcdir; \ | ||
670 | list=' $(TESTS) '; \ | ||
671 | $(am__tty_colors); \ | ||
672 | if test -n "$$list"; then \ | ||
673 | for tst in $$list; do \ | ||
674 | if test -f ./$$tst; then dir=./; \ | ||
675 | elif test -f $$tst; then dir=; \ | ||
676 | else dir="$(srcdir)/"; fi; \ | ||
677 | if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ | ||
678 | all=`expr $$all + 1`; \ | ||
679 | case " $(XFAIL_TESTS) " in \ | ||
680 | *[\ \ ]$$tst[\ \ ]*) \ | ||
681 | xpass=`expr $$xpass + 1`; \ | ||
682 | failed=`expr $$failed + 1`; \ | ||
683 | col=$$red; res=XPASS; \ | ||
684 | ;; \ | ||
685 | *) \ | ||
686 | col=$$grn; res=PASS; \ | ||
687 | ;; \ | ||
688 | esac; \ | ||
689 | elif test $$? -ne 77; then \ | ||
690 | all=`expr $$all + 1`; \ | ||
691 | case " $(XFAIL_TESTS) " in \ | ||
692 | *[\ \ ]$$tst[\ \ ]*) \ | ||
693 | xfail=`expr $$xfail + 1`; \ | ||
694 | col=$$lgn; res=XFAIL; \ | ||
695 | ;; \ | ||
696 | *) \ | ||
697 | failed=`expr $$failed + 1`; \ | ||
698 | col=$$red; res=FAIL; \ | ||
699 | ;; \ | ||
700 | esac; \ | ||
701 | else \ | ||
702 | skip=`expr $$skip + 1`; \ | ||
703 | col=$$blu; res=SKIP; \ | ||
704 | fi; \ | ||
705 | echo "$${col}$$res$${std}: $$tst"; \ | ||
706 | done; \ | ||
707 | if test "$$all" -eq 1; then \ | ||
708 | tests="test"; \ | ||
709 | All=""; \ | ||
710 | else \ | ||
711 | tests="tests"; \ | ||
712 | All="All "; \ | ||
713 | fi; \ | ||
714 | if test "$$failed" -eq 0; then \ | ||
715 | if test "$$xfail" -eq 0; then \ | ||
716 | banner="$$All$$all $$tests passed"; \ | ||
717 | else \ | ||
718 | if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ | ||
719 | banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ | ||
720 | fi; \ | ||
721 | else \ | ||
722 | if test "$$xpass" -eq 0; then \ | ||
723 | banner="$$failed of $$all $$tests failed"; \ | ||
724 | else \ | ||
725 | if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ | ||
726 | banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ | ||
727 | fi; \ | ||
728 | fi; \ | ||
729 | dashes="$$banner"; \ | ||
730 | skipped=""; \ | ||
731 | if test "$$skip" -ne 0; then \ | ||
732 | if test "$$skip" -eq 1; then \ | ||
733 | skipped="($$skip test was not run)"; \ | ||
734 | else \ | ||
735 | skipped="($$skip tests were not run)"; \ | ||
736 | fi; \ | ||
737 | test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ | ||
738 | dashes="$$skipped"; \ | ||
739 | fi; \ | ||
740 | report=""; \ | ||
741 | if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ | ||
742 | report="Please report to $(PACKAGE_BUGREPORT)"; \ | ||
743 | test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ | ||
744 | dashes="$$report"; \ | ||
745 | fi; \ | ||
746 | dashes=`echo "$$dashes" | sed s/./=/g`; \ | ||
747 | if test "$$failed" -eq 0; then \ | ||
748 | col="$$grn"; \ | ||
749 | else \ | ||
750 | col="$$red"; \ | ||
751 | fi; \ | ||
752 | echo "$${col}$$dashes$${std}"; \ | ||
753 | echo "$${col}$$banner$${std}"; \ | ||
754 | test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ | ||
755 | test -z "$$report" || echo "$${col}$$report$${std}"; \ | ||
756 | echo "$${col}$$dashes$${std}"; \ | ||
757 | test "$$failed" -eq 0; \ | ||
758 | else :; fi | ||
759 | |||
760 | distdir: $(DISTFILES) | ||
761 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
762 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
763 | list='$(DISTFILES)'; \ | ||
764 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
765 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
766 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
767 | case $$dist_files in \ | ||
768 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
769 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
770 | sort -u` ;; \ | ||
771 | esac; \ | ||
772 | for file in $$dist_files; do \ | ||
773 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
774 | if test -d $$d/$$file; then \ | ||
775 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
776 | if test -d "$(distdir)/$$file"; then \ | ||
777 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
778 | fi; \ | ||
779 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
780 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
781 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
782 | fi; \ | ||
783 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
784 | else \ | ||
785 | test -f "$(distdir)/$$file" \ | ||
786 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
787 | || exit 1; \ | ||
788 | fi; \ | ||
789 | done | ||
790 | check-am: all-am | ||
791 | $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) | ||
792 | $(MAKE) $(AM_MAKEFLAGS) check-TESTS | ||
793 | check: check-am | ||
794 | all-am: Makefile $(PROGRAMS) $(DATA) | ||
795 | installdirs: | ||
796 | for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(pkgcfgdir)"; do \ | ||
797 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
798 | done | ||
799 | install: install-am | ||
800 | install-exec: install-exec-am | ||
801 | install-data: install-data-am | ||
802 | uninstall: uninstall-am | ||
803 | |||
804 | install-am: all-am | ||
805 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
806 | |||
807 | installcheck: installcheck-am | ||
808 | install-strip: | ||
809 | if test -z '$(STRIP)'; then \ | ||
810 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
811 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
812 | install; \ | ||
813 | else \ | ||
814 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
815 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
816 | "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||
817 | fi | ||
818 | mostlyclean-generic: | ||
819 | |||
820 | clean-generic: | ||
821 | |||
822 | distclean-generic: | ||
823 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
824 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
825 | |||
826 | maintainer-clean-generic: | ||
827 | @echo "This command is intended for maintainers to use" | ||
828 | @echo "it deletes files that may require special tools to rebuild." | ||
829 | clean: clean-am | ||
830 | |||
831 | clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ | ||
832 | clean-libexecPROGRAMS clean-libtool mostlyclean-am | ||
833 | |||
834 | distclean: distclean-am | ||
835 | -rm -rf ./$(DEPDIR) | ||
836 | -rm -f Makefile | ||
837 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
838 | distclean-tags | ||
839 | |||
840 | dvi: dvi-am | ||
841 | |||
842 | dvi-am: | ||
843 | |||
844 | html: html-am | ||
845 | |||
846 | html-am: | ||
847 | |||
848 | info: info-am | ||
849 | |||
850 | info-am: | ||
851 | |||
852 | install-data-am: install-dist_pkgcfgDATA | ||
853 | |||
854 | install-dvi: install-dvi-am | ||
855 | |||
856 | install-dvi-am: | ||
857 | |||
858 | install-exec-am: install-binPROGRAMS install-libexecPROGRAMS | ||
859 | |||
860 | install-html: install-html-am | ||
861 | |||
862 | install-html-am: | ||
863 | |||
864 | install-info: install-info-am | ||
865 | |||
866 | install-info-am: | ||
867 | |||
868 | install-man: | ||
869 | |||
870 | install-pdf: install-pdf-am | ||
871 | |||
872 | install-pdf-am: | ||
873 | |||
874 | install-ps: install-ps-am | ||
875 | |||
876 | install-ps-am: | ||
877 | |||
878 | installcheck-am: | ||
879 | |||
880 | maintainer-clean: maintainer-clean-am | ||
881 | -rm -rf ./$(DEPDIR) | ||
882 | -rm -f Makefile | ||
883 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
884 | |||
885 | mostlyclean: mostlyclean-am | ||
886 | |||
887 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
888 | mostlyclean-libtool | ||
889 | |||
890 | pdf: pdf-am | ||
891 | |||
892 | pdf-am: | ||
893 | |||
894 | ps: ps-am | ||
895 | |||
896 | ps-am: | ||
897 | |||
898 | uninstall-am: uninstall-binPROGRAMS uninstall-dist_pkgcfgDATA \ | ||
899 | uninstall-libexecPROGRAMS | ||
900 | |||
901 | .MAKE: check-am install-am install-strip | ||
902 | |||
903 | .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ | ||
904 | clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ | ||
905 | clean-libexecPROGRAMS clean-libtool ctags distclean \ | ||
906 | distclean-compile distclean-generic distclean-libtool \ | ||
907 | distclean-tags distdir dvi dvi-am html html-am info info-am \ | ||
908 | install install-am install-binPROGRAMS install-data \ | ||
909 | install-data-am install-dist_pkgcfgDATA install-dvi \ | ||
910 | install-dvi-am install-exec install-exec-am install-html \ | ||
911 | install-html-am install-info install-info-am \ | ||
912 | install-libexecPROGRAMS install-man install-pdf install-pdf-am \ | ||
913 | install-ps install-ps-am install-strip installcheck \ | ||
914 | installcheck-am installdirs maintainer-clean \ | ||
915 | maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||
916 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
917 | tags uninstall uninstall-am uninstall-binPROGRAMS \ | ||
918 | uninstall-dist_pkgcfgDATA uninstall-libexecPROGRAMS | ||
919 | |||
920 | |||
921 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
922 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
923 | .NOEXPORT: | ||
diff --git a/src/multicast/Makefile.am b/src/multicast/Makefile.am new file mode 100644 index 000000000..e5bc04dfa --- /dev/null +++ b/src/multicast/Makefile.am | |||
@@ -0,0 +1,61 @@ | |||
1 | INCLUDES = -I$(top_srcdir)/src/include | ||
2 | |||
3 | pkgcfgdir= $(pkgdatadir)/config.d/ | ||
4 | |||
5 | libexecdir= $(pkglibdir)/libexec/ | ||
6 | |||
7 | pkgcfg_DATA = \ | ||
8 | multicast.conf | ||
9 | |||
10 | if MINGW | ||
11 | WINFLAGS = -Wl,--no-undefined -Wl,--export-all-symbols | ||
12 | endif | ||
13 | |||
14 | if USE_COVERAGE | ||
15 | AM_CFLAGS = -fprofile-arcs -ftest-coverage | ||
16 | endif | ||
17 | |||
18 | lib_LTLIBRARIES = libgnunetmulticast.la | ||
19 | |||
20 | libgnunetmulticast_la_SOURCES = \ | ||
21 | multicast_api.c | ||
22 | # multicast.h | ||
23 | libgnunetmulticast_la_LIBADD = \ | ||
24 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
25 | $(GN_LIBINTL) $(XLIB) | ||
26 | libgnunetmulticast_la_LDFLAGS = \ | ||
27 | $(GN_LIB_LDFLAGS) $(WINFLAGS) \ | ||
28 | -version-info 0:0:0 | ||
29 | |||
30 | |||
31 | bin_PROGRAMS = \ | ||
32 | gnunet-multicast | ||
33 | |||
34 | libexec_PROGRAMS = \ | ||
35 | gnunet-service-multicast | ||
36 | |||
37 | gnunet_multicast_SOURCES = \ | ||
38 | gnunet-multicast.c | ||
39 | gnunet_multicast_LDADD = \ | ||
40 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
41 | $(GN_LIBINTL) | ||
42 | |||
43 | gnunet_service_multicast_SOURCES = \ | ||
44 | gnunet-service-multicast.c | ||
45 | gnunet_service_multicast_LDADD = \ | ||
46 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
47 | $(GN_LIBINTL) | ||
48 | |||
49 | |||
50 | check_PROGRAMS = \ | ||
51 | test_multicast_api | ||
52 | |||
53 | if ENABLE_TEST_RUN | ||
54 | TESTS = $(check_PROGRAMS) | ||
55 | endif | ||
56 | |||
57 | test_multicast_api_SOURCES = \ | ||
58 | test_multicast_api.c | ||
59 | test_multicast_api_LDADD = \ | ||
60 | $(top_builddir)/src/util/libgnunetutil.la | ||
61 | |||
diff --git a/src/multicast/Makefile.in b/src/multicast/Makefile.in new file mode 100644 index 000000000..75ee076b6 --- /dev/null +++ b/src/multicast/Makefile.in | |||
@@ -0,0 +1,923 @@ | |||
1 | # Makefile.in generated by automake 1.11.6 from Makefile.am. | ||
2 | # @configure_input@ | ||
3 | |||
4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | ||
5 | # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software | ||
6 | # Foundation, Inc. | ||
7 | # This Makefile.in is free software; the Free Software Foundation | ||
8 | # gives unlimited permission to copy and/or distribute it, | ||
9 | # with or without modifications, as long as this notice is preserved. | ||
10 | |||
11 | # This program is distributed in the hope that it will be useful, | ||
12 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | ||
13 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | ||
14 | # PARTICULAR PURPOSE. | ||
15 | |||
16 | @SET_MAKE@ | ||
17 | |||
18 | |||
19 | VPATH = @srcdir@ | ||
20 | am__make_dryrun = \ | ||
21 | { \ | ||
22 | am__dry=no; \ | ||
23 | case $$MAKEFLAGS in \ | ||
24 | *\\[\ \ ]*) \ | ||
25 | echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | ||
26 | | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ | ||
27 | *) \ | ||
28 | for am__flg in $$MAKEFLAGS; do \ | ||
29 | case $$am__flg in \ | ||
30 | *=*|--*) ;; \ | ||
31 | *n*) am__dry=yes; break;; \ | ||
32 | esac; \ | ||
33 | done;; \ | ||
34 | esac; \ | ||
35 | test $$am__dry = yes; \ | ||
36 | } | ||
37 | pkgdatadir = $(datadir)/@PACKAGE@ | ||
38 | pkgincludedir = $(includedir)/@PACKAGE@ | ||
39 | pkglibdir = $(libdir)/@PACKAGE@ | ||
40 | pkglibexecdir = $(libexecdir)/@PACKAGE@ | ||
41 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | ||
42 | install_sh_DATA = $(install_sh) -c -m 644 | ||
43 | install_sh_PROGRAM = $(install_sh) -c | ||
44 | install_sh_SCRIPT = $(install_sh) -c | ||
45 | INSTALL_HEADER = $(INSTALL_DATA) | ||
46 | transform = $(program_transform_name) | ||
47 | NORMAL_INSTALL = : | ||
48 | PRE_INSTALL = : | ||
49 | POST_INSTALL = : | ||
50 | NORMAL_UNINSTALL = : | ||
51 | PRE_UNINSTALL = : | ||
52 | POST_UNINSTALL = : | ||
53 | build_triplet = @build@ | ||
54 | host_triplet = @host@ | ||
55 | target_triplet = @target@ | ||
56 | bin_PROGRAMS = gnunet-template$(EXEEXT) | ||
57 | libexec_PROGRAMS = gnunet-service-template$(EXEEXT) | ||
58 | check_PROGRAMS = test_template_api$(EXEEXT) | ||
59 | subdir = src/template | ||
60 | DIST_COMMON = $(dist_pkgcfg_DATA) $(srcdir)/Makefile.am \ | ||
61 | $(srcdir)/Makefile.in | ||
62 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | ||
63 | am__aclocal_m4_deps = $(top_srcdir)/m4/absolute-header.m4 \ | ||
64 | $(top_srcdir)/m4/align.m4 $(top_srcdir)/m4/argz.m4 \ | ||
65 | $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/iconv.m4 \ | ||
66 | $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ | ||
67 | $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libcurl.m4 \ | ||
68 | $(top_srcdir)/m4/libgcrypt.m4 $(top_srcdir)/m4/libtool.m4 \ | ||
69 | $(top_srcdir)/m4/libunistring.m4 $(top_srcdir)/m4/ltdl.m4 \ | ||
70 | $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ | ||
71 | $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ | ||
72 | $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ | ||
73 | $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ | ||
74 | $(top_srcdir)/configure.ac | ||
75 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | ||
76 | $(ACLOCAL_M4) | ||
77 | mkinstalldirs = $(install_sh) -d | ||
78 | CONFIG_HEADER = $(top_builddir)/gnunet_config.h | ||
79 | CONFIG_CLEAN_FILES = | ||
80 | CONFIG_CLEAN_VPATH_FILES = | ||
81 | am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \ | ||
82 | "$(DESTDIR)$(pkgcfgdir)" | ||
83 | PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) | ||
84 | am_gnunet_service_template_OBJECTS = \ | ||
85 | gnunet-service-template.$(OBJEXT) | ||
86 | gnunet_service_template_OBJECTS = \ | ||
87 | $(am_gnunet_service_template_OBJECTS) | ||
88 | am__DEPENDENCIES_1 = | ||
89 | gnunet_service_template_DEPENDENCIES = \ | ||
90 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
91 | $(am__DEPENDENCIES_1) | ||
92 | AM_V_lt = $(am__v_lt_@AM_V@) | ||
93 | am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) | ||
94 | am__v_lt_0 = --silent | ||
95 | am_gnunet_template_OBJECTS = gnunet-template.$(OBJEXT) | ||
96 | gnunet_template_OBJECTS = $(am_gnunet_template_OBJECTS) | ||
97 | gnunet_template_DEPENDENCIES = \ | ||
98 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
99 | $(am__DEPENDENCIES_1) | ||
100 | am_test_template_api_OBJECTS = test_template_api.$(OBJEXT) | ||
101 | test_template_api_OBJECTS = $(am_test_template_api_OBJECTS) | ||
102 | test_template_api_DEPENDENCIES = \ | ||
103 | $(top_builddir)/src/util/libgnunetutil.la | ||
104 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | ||
105 | depcomp = $(SHELL) $(top_srcdir)/depcomp | ||
106 | am__depfiles_maybe = depfiles | ||
107 | am__mv = mv -f | ||
108 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | ||
109 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | ||
110 | LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
111 | $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ | ||
112 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | ||
113 | $(AM_CFLAGS) $(CFLAGS) | ||
114 | AM_V_CC = $(am__v_CC_@AM_V@) | ||
115 | am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) | ||
116 | am__v_CC_0 = @echo " CC " $@; | ||
117 | AM_V_at = $(am__v_at_@AM_V@) | ||
118 | am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) | ||
119 | am__v_at_0 = @ | ||
120 | CCLD = $(CC) | ||
121 | LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ | ||
122 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ | ||
123 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ | ||
124 | AM_V_CCLD = $(am__v_CCLD_@AM_V@) | ||
125 | am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) | ||
126 | am__v_CCLD_0 = @echo " CCLD " $@; | ||
127 | AM_V_GEN = $(am__v_GEN_@AM_V@) | ||
128 | am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) | ||
129 | am__v_GEN_0 = @echo " GEN " $@; | ||
130 | SOURCES = $(gnunet_service_template_SOURCES) \ | ||
131 | $(gnunet_template_SOURCES) $(test_template_api_SOURCES) | ||
132 | DIST_SOURCES = $(gnunet_service_template_SOURCES) \ | ||
133 | $(gnunet_template_SOURCES) $(test_template_api_SOURCES) | ||
134 | am__can_run_installinfo = \ | ||
135 | case $$AM_UPDATE_INFO_DIR in \ | ||
136 | n|no|NO) false;; \ | ||
137 | *) (install-info --version) >/dev/null 2>&1;; \ | ||
138 | esac | ||
139 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; | ||
140 | am__vpath_adj = case $$p in \ | ||
141 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ | ||
142 | *) f=$$p;; \ | ||
143 | esac; | ||
144 | am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; | ||
145 | am__install_max = 40 | ||
146 | am__nobase_strip_setup = \ | ||
147 | srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` | ||
148 | am__nobase_strip = \ | ||
149 | for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" | ||
150 | am__nobase_list = $(am__nobase_strip_setup); \ | ||
151 | for p in $$list; do echo "$$p $$p"; done | \ | ||
152 | sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ | ||
153 | $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ | ||
154 | if (++n[$$2] == $(am__install_max)) \ | ||
155 | { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ | ||
156 | END { for (dir in files) print dir, files[dir] }' | ||
157 | am__base_list = \ | ||
158 | sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ | ||
159 | sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | ||
160 | am__uninstall_files_from_dir = { \ | ||
161 | test -z "$$files" \ | ||
162 | || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ | ||
163 | || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ | ||
164 | $(am__cd) "$$dir" && rm -f $$files; }; \ | ||
165 | } | ||
166 | DATA = $(dist_pkgcfg_DATA) | ||
167 | ETAGS = etags | ||
168 | CTAGS = ctags | ||
169 | am__tty_colors = \ | ||
170 | red=; grn=; lgn=; blu=; std= | ||
171 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | ||
172 | ACLOCAL = @ACLOCAL@ | ||
173 | AMTAR = @AMTAR@ | ||
174 | AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ | ||
175 | AR = @AR@ | ||
176 | ARGZ_H = @ARGZ_H@ | ||
177 | AS = @AS@ | ||
178 | AUTOCONF = @AUTOCONF@ | ||
179 | AUTOHEADER = @AUTOHEADER@ | ||
180 | AUTOMAKE = @AUTOMAKE@ | ||
181 | AWK = @AWK@ | ||
182 | CC = @CC@ | ||
183 | CCDEPMODE = @CCDEPMODE@ | ||
184 | CFLAGS = @CFLAGS@ | ||
185 | CPP = @CPP@ | ||
186 | CPPFLAGS = @CPPFLAGS@ | ||
187 | CXX = @CXX@ | ||
188 | CXXCPP = @CXXCPP@ | ||
189 | CXXDEPMODE = @CXXDEPMODE@ | ||
190 | CXXFLAGS = @CXXFLAGS@ | ||
191 | CYGPATH_W = @CYGPATH_W@ | ||
192 | DEFAULT_INTERFACE = @DEFAULT_INTERFACE@ | ||
193 | DEFS = @DEFS@ | ||
194 | DEPDIR = @DEPDIR@ | ||
195 | DLLDIR = @DLLDIR@ | ||
196 | DLLTOOL = @DLLTOOL@ | ||
197 | DSYMUTIL = @DSYMUTIL@ | ||
198 | DUMPBIN = @DUMPBIN@ | ||
199 | ECHO_C = @ECHO_C@ | ||
200 | ECHO_N = @ECHO_N@ | ||
201 | ECHO_T = @ECHO_T@ | ||
202 | EGREP = @EGREP@ | ||
203 | EXEEXT = @EXEEXT@ | ||
204 | EXT_LIBS = @EXT_LIBS@ | ||
205 | EXT_LIB_PATH = @EXT_LIB_PATH@ | ||
206 | FGREP = @FGREP@ | ||
207 | GMSGFMT = @GMSGFMT@ | ||
208 | GMSGFMT_015 = @GMSGFMT_015@ | ||
209 | GNUNETDNS_GROUP = @GNUNETDNS_GROUP@ | ||
210 | GN_DAEMON_CONFIG_DIR = @GN_DAEMON_CONFIG_DIR@ | ||
211 | GN_DAEMON_HOME_DIR = @GN_DAEMON_HOME_DIR@ | ||
212 | GN_INTLINCL = @GN_INTLINCL@ | ||
213 | GN_LIBINTL = @GN_LIBINTL@ | ||
214 | GN_LIB_LDFLAGS = @GN_LIB_LDFLAGS@ | ||
215 | GN_PLUGIN_LDFLAGS = @GN_PLUGIN_LDFLAGS@ | ||
216 | GN_USER_HOME_DIR = @GN_USER_HOME_DIR@ | ||
217 | GREP = @GREP@ | ||
218 | HAVE_LIBUNISTRING = @HAVE_LIBUNISTRING@ | ||
219 | INCLTDL = @INCLTDL@ | ||
220 | INSTALL = @INSTALL@ | ||
221 | INSTALL_DATA = @INSTALL_DATA@ | ||
222 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | ||
223 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | ||
224 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | ||
225 | INTLLIBS = @INTLLIBS@ | ||
226 | INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ | ||
227 | JAVAPORT = @JAVAPORT@ | ||
228 | LD = @LD@ | ||
229 | LDFLAGS = @LDFLAGS@ | ||
230 | LIBADD_DL = @LIBADD_DL@ | ||
231 | LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ | ||
232 | LIBADD_DLOPEN = @LIBADD_DLOPEN@ | ||
233 | LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ | ||
234 | LIBCURL = @LIBCURL@ | ||
235 | LIBCURL_CPPFLAGS = @LIBCURL_CPPFLAGS@ | ||
236 | LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ | ||
237 | LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@ | ||
238 | LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ | ||
239 | LIBICONV = @LIBICONV@ | ||
240 | LIBINTL = @LIBINTL@ | ||
241 | LIBLTDL = @LIBLTDL@ | ||
242 | LIBOBJS = @LIBOBJS@ | ||
243 | LIBPREFIX = @LIBPREFIX@ | ||
244 | LIBS = @LIBS@ | ||
245 | LIBTOOL = @LIBTOOL@ | ||
246 | LIBUNISTRING = @LIBUNISTRING@ | ||
247 | LIPO = @LIPO@ | ||
248 | LN_S = @LN_S@ | ||
249 | LTDLDEPS = @LTDLDEPS@ | ||
250 | LTDLINCL = @LTDLINCL@ | ||
251 | LTDLOPEN = @LTDLOPEN@ | ||
252 | LTLIBICONV = @LTLIBICONV@ | ||
253 | LTLIBINTL = @LTLIBINTL@ | ||
254 | LTLIBOBJS = @LTLIBOBJS@ | ||
255 | LTLIBUNISTRING = @LTLIBUNISTRING@ | ||
256 | LT_CONFIG_H = @LT_CONFIG_H@ | ||
257 | LT_DLLOADERS = @LT_DLLOADERS@ | ||
258 | LT_DLPREOPEN = @LT_DLPREOPEN@ | ||
259 | MAKEINFO = @MAKEINFO@ | ||
260 | MANIFEST_TOOL = @MANIFEST_TOOL@ | ||
261 | MKDIR_P = @MKDIR_P@ | ||
262 | MONKEYPREFIX = @MONKEYPREFIX@ | ||
263 | MSGFMT = @MSGFMT@ | ||
264 | MSGFMT_015 = @MSGFMT_015@ | ||
265 | MSGMERGE = @MSGMERGE@ | ||
266 | MYSQL_CPPFLAGS = @MYSQL_CPPFLAGS@ | ||
267 | MYSQL_LDFLAGS = @MYSQL_LDFLAGS@ | ||
268 | NM = @NM@ | ||
269 | NMEDIT = @NMEDIT@ | ||
270 | NSS_DIR = @NSS_DIR@ | ||
271 | OBJC = @OBJC@ | ||
272 | OBJCDEPMODE = @OBJCDEPMODE@ | ||
273 | OBJCFLAGS = @OBJCFLAGS@ | ||
274 | OBJDUMP = @OBJDUMP@ | ||
275 | OBJEXT = @OBJEXT@ | ||
276 | OTOOL = @OTOOL@ | ||
277 | OTOOL64 = @OTOOL64@ | ||
278 | PACKAGE = @PACKAGE@ | ||
279 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | ||
280 | PACKAGE_NAME = @PACKAGE_NAME@ | ||
281 | PACKAGE_STRING = @PACKAGE_STRING@ | ||
282 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
283 | PACKAGE_URL = @PACKAGE_URL@ | ||
284 | PACKAGE_VERSION = @PACKAGE_VERSION@ | ||
285 | PATH_SEPARATOR = @PATH_SEPARATOR@ | ||
286 | POSTGRES_CPPFLAGS = @POSTGRES_CPPFLAGS@ | ||
287 | POSTGRES_LDFLAGS = @POSTGRES_LDFLAGS@ | ||
288 | POSUB = @POSUB@ | ||
289 | PYTHON = @PYTHON@ | ||
290 | PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ | ||
291 | PYTHON_PLATFORM = @PYTHON_PLATFORM@ | ||
292 | PYTHON_PREFIX = @PYTHON_PREFIX@ | ||
293 | PYTHON_VERSION = @PYTHON_VERSION@ | ||
294 | RANLIB = @RANLIB@ | ||
295 | SED = @SED@ | ||
296 | SET_MAKE = @SET_MAKE@ | ||
297 | SHELL = @SHELL@ | ||
298 | SQLITE_CPPFLAGS = @SQLITE_CPPFLAGS@ | ||
299 | SQLITE_LDFLAGS = @SQLITE_LDFLAGS@ | ||
300 | STRIP = @STRIP@ | ||
301 | SUDO_BINARY = @SUDO_BINARY@ | ||
302 | UNIXONLY = @UNIXONLY@ | ||
303 | USE_NLS = @USE_NLS@ | ||
304 | VERSION = @VERSION@ | ||
305 | XGETTEXT = @XGETTEXT@ | ||
306 | XGETTEXT_015 = @XGETTEXT_015@ | ||
307 | XMKMF = @XMKMF@ | ||
308 | X_CFLAGS = @X_CFLAGS@ | ||
309 | X_EXTRA_LIBS = @X_EXTRA_LIBS@ | ||
310 | X_LIBS = @X_LIBS@ | ||
311 | X_PRE_LIBS = @X_PRE_LIBS@ | ||
312 | Z_CFLAGS = @Z_CFLAGS@ | ||
313 | Z_LIBS = @Z_LIBS@ | ||
314 | _libcurl_config = @_libcurl_config@ | ||
315 | abs_builddir = @abs_builddir@ | ||
316 | abs_srcdir = @abs_srcdir@ | ||
317 | abs_top_builddir = @abs_top_builddir@ | ||
318 | abs_top_srcdir = @abs_top_srcdir@ | ||
319 | ac_ct_AR = @ac_ct_AR@ | ||
320 | ac_ct_CC = @ac_ct_CC@ | ||
321 | ac_ct_CXX = @ac_ct_CXX@ | ||
322 | ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ | ||
323 | ac_ct_OBJC = @ac_ct_OBJC@ | ||
324 | am__include = @am__include@ | ||
325 | am__leading_dot = @am__leading_dot@ | ||
326 | am__quote = @am__quote@ | ||
327 | am__tar = @am__tar@ | ||
328 | am__untar = @am__untar@ | ||
329 | bindir = @bindir@ | ||
330 | build = @build@ | ||
331 | build_alias = @build_alias@ | ||
332 | build_cpu = @build_cpu@ | ||
333 | build_os = @build_os@ | ||
334 | build_target = @build_target@ | ||
335 | build_vendor = @build_vendor@ | ||
336 | builddir = @builddir@ | ||
337 | datadir = @datadir@ | ||
338 | datarootdir = @datarootdir@ | ||
339 | docdir = @docdir@ | ||
340 | dvidir = @dvidir@ | ||
341 | exec_prefix = @exec_prefix@ | ||
342 | gitcommand = @gitcommand@ | ||
343 | host = @host@ | ||
344 | host_alias = @host_alias@ | ||
345 | host_cpu = @host_cpu@ | ||
346 | host_os = @host_os@ | ||
347 | host_vendor = @host_vendor@ | ||
348 | htmldir = @htmldir@ | ||
349 | includedir = @includedir@ | ||
350 | infodir = @infodir@ | ||
351 | install_sh = @install_sh@ | ||
352 | libdir = @libdir@ | ||
353 | libexecdir = $(pkglibdir)/libexec/ | ||
354 | localedir = @localedir@ | ||
355 | localstatedir = @localstatedir@ | ||
356 | ltdl_LIBOBJS = @ltdl_LIBOBJS@ | ||
357 | ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ | ||
358 | mandir = @mandir@ | ||
359 | mkdir_p = @mkdir_p@ | ||
360 | oldincludedir = @oldincludedir@ | ||
361 | pdfdir = @pdfdir@ | ||
362 | pkgpyexecdir = @pkgpyexecdir@ | ||
363 | pkgpythondir = @pkgpythondir@ | ||
364 | prefix = @prefix@ | ||
365 | program_transform_name = @program_transform_name@ | ||
366 | psdir = @psdir@ | ||
367 | pyexecdir = @pyexecdir@ | ||
368 | pythondir = @pythondir@ | ||
369 | sbindir = @sbindir@ | ||
370 | sharedstatedir = @sharedstatedir@ | ||
371 | srcdir = @srcdir@ | ||
372 | subdirs = @subdirs@ | ||
373 | svnversioncommand = @svnversioncommand@ | ||
374 | sys_symbol_underscore = @sys_symbol_underscore@ | ||
375 | sysconfdir = @sysconfdir@ | ||
376 | target = @target@ | ||
377 | target_alias = @target_alias@ | ||
378 | target_cpu = @target_cpu@ | ||
379 | target_os = @target_os@ | ||
380 | target_vendor = @target_vendor@ | ||
381 | top_build_prefix = @top_build_prefix@ | ||
382 | top_builddir = @top_builddir@ | ||
383 | top_srcdir = @top_srcdir@ | ||
384 | INCLUDES = -I$(top_srcdir)/src/include | ||
385 | pkgcfgdir = $(pkgdatadir)/config.d/ | ||
386 | dist_pkgcfg_DATA = \ | ||
387 | template.conf | ||
388 | |||
389 | @MINGW_TRUE@WINFLAGS = -Wl,--no-undefined -Wl,--export-all-symbols | ||
390 | @USE_COVERAGE_TRUE@AM_CFLAGS = -fprofile-arcs -ftest-coverage | ||
391 | gnunet_template_SOURCES = \ | ||
392 | gnunet-template.c | ||
393 | |||
394 | gnunet_template_LDADD = \ | ||
395 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
396 | $(GN_LIBINTL) | ||
397 | |||
398 | gnunet_service_template_SOURCES = \ | ||
399 | gnunet-service-template.c | ||
400 | |||
401 | gnunet_service_template_LDADD = \ | ||
402 | $(top_builddir)/src/util/libgnunetutil.la \ | ||
403 | $(GN_LIBINTL) | ||
404 | |||
405 | @ENABLE_TEST_RUN_TRUE@TESTS = $(check_PROGRAMS) | ||
406 | test_template_api_SOURCES = \ | ||
407 | test_template_api.c | ||
408 | |||
409 | test_template_api_LDADD = \ | ||
410 | $(top_builddir)/src/util/libgnunetutil.la | ||
411 | |||
412 | all: all-am | ||
413 | |||
414 | .SUFFIXES: | ||
415 | .SUFFIXES: .c .lo .o .obj | ||
416 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | ||
417 | @for dep in $?; do \ | ||
418 | case '$(am__configure_deps)' in \ | ||
419 | *$$dep*) \ | ||
420 | ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ | ||
421 | && { if test -f $@; then exit 0; else break; fi; }; \ | ||
422 | exit 1;; \ | ||
423 | esac; \ | ||
424 | done; \ | ||
425 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/template/Makefile'; \ | ||
426 | $(am__cd) $(top_srcdir) && \ | ||
427 | $(AUTOMAKE) --gnu src/template/Makefile | ||
428 | .PRECIOUS: Makefile | ||
429 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | ||
430 | @case '$?' in \ | ||
431 | *config.status*) \ | ||
432 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | ||
433 | *) \ | ||
434 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | ||
435 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | ||
436 | esac; | ||
437 | |||
438 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | ||
439 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
440 | |||
441 | $(top_srcdir)/configure: $(am__configure_deps) | ||
442 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
443 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | ||
444 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | ||
445 | $(am__aclocal_m4_deps): | ||
446 | install-binPROGRAMS: $(bin_PROGRAMS) | ||
447 | @$(NORMAL_INSTALL) | ||
448 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
449 | if test -n "$$list"; then \ | ||
450 | echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ | ||
451 | $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ | ||
452 | fi; \ | ||
453 | for p in $$list; do echo "$$p $$p"; done | \ | ||
454 | sed 's/$(EXEEXT)$$//' | \ | ||
455 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
456 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
457 | done | \ | ||
458 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
459 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
460 | sed 'N;N;N;s,\n, ,g' | \ | ||
461 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
462 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
463 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
464 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
465 | END { for (d in files) print "f", d, files[d] }' | \ | ||
466 | while read type dir files; do \ | ||
467 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
468 | test -z "$$files" || { \ | ||
469 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ | ||
470 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ | ||
471 | } \ | ||
472 | ; done | ||
473 | |||
474 | uninstall-binPROGRAMS: | ||
475 | @$(NORMAL_UNINSTALL) | ||
476 | @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ | ||
477 | files=`for p in $$list; do echo "$$p"; done | \ | ||
478 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
479 | -e 's/$$/$(EXEEXT)/' `; \ | ||
480 | test -n "$$list" || exit 0; \ | ||
481 | echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ | ||
482 | cd "$(DESTDIR)$(bindir)" && rm -f $$files | ||
483 | |||
484 | clean-binPROGRAMS: | ||
485 | @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
486 | echo " rm -f" $$list; \ | ||
487 | rm -f $$list || exit $$?; \ | ||
488 | test -n "$(EXEEXT)" || exit 0; \ | ||
489 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
490 | echo " rm -f" $$list; \ | ||
491 | rm -f $$list | ||
492 | |||
493 | clean-checkPROGRAMS: | ||
494 | @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
495 | echo " rm -f" $$list; \ | ||
496 | rm -f $$list || exit $$?; \ | ||
497 | test -n "$(EXEEXT)" || exit 0; \ | ||
498 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
499 | echo " rm -f" $$list; \ | ||
500 | rm -f $$list | ||
501 | install-libexecPROGRAMS: $(libexec_PROGRAMS) | ||
502 | @$(NORMAL_INSTALL) | ||
503 | @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ | ||
504 | if test -n "$$list"; then \ | ||
505 | echo " $(MKDIR_P) '$(DESTDIR)$(libexecdir)'"; \ | ||
506 | $(MKDIR_P) "$(DESTDIR)$(libexecdir)" || exit 1; \ | ||
507 | fi; \ | ||
508 | for p in $$list; do echo "$$p $$p"; done | \ | ||
509 | sed 's/$(EXEEXT)$$//' | \ | ||
510 | while read p p1; do if test -f $$p || test -f $$p1; \ | ||
511 | then echo "$$p"; echo "$$p"; else :; fi; \ | ||
512 | done | \ | ||
513 | sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ | ||
514 | -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ | ||
515 | sed 'N;N;N;s,\n, ,g' | \ | ||
516 | $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ | ||
517 | { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ | ||
518 | if ($$2 == $$4) files[d] = files[d] " " $$1; \ | ||
519 | else { print "f", $$3 "/" $$4, $$1; } } \ | ||
520 | END { for (d in files) print "f", d, files[d] }' | \ | ||
521 | while read type dir files; do \ | ||
522 | if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ | ||
523 | test -z "$$files" || { \ | ||
524 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \ | ||
525 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \ | ||
526 | } \ | ||
527 | ; done | ||
528 | |||
529 | uninstall-libexecPROGRAMS: | ||
530 | @$(NORMAL_UNINSTALL) | ||
531 | @list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \ | ||
532 | files=`for p in $$list; do echo "$$p"; done | \ | ||
533 | sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ | ||
534 | -e 's/$$/$(EXEEXT)/' `; \ | ||
535 | test -n "$$list" || exit 0; \ | ||
536 | echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \ | ||
537 | cd "$(DESTDIR)$(libexecdir)" && rm -f $$files | ||
538 | |||
539 | clean-libexecPROGRAMS: | ||
540 | @list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \ | ||
541 | echo " rm -f" $$list; \ | ||
542 | rm -f $$list || exit $$?; \ | ||
543 | test -n "$(EXEEXT)" || exit 0; \ | ||
544 | list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ | ||
545 | echo " rm -f" $$list; \ | ||
546 | rm -f $$list | ||
547 | gnunet-service-template$(EXEEXT): $(gnunet_service_template_OBJECTS) $(gnunet_service_template_DEPENDENCIES) $(EXTRA_gnunet_service_template_DEPENDENCIES) | ||
548 | @rm -f gnunet-service-template$(EXEEXT) | ||
549 | $(AM_V_CCLD)$(LINK) $(gnunet_service_template_OBJECTS) $(gnunet_service_template_LDADD) $(LIBS) | ||
550 | gnunet-template$(EXEEXT): $(gnunet_template_OBJECTS) $(gnunet_template_DEPENDENCIES) $(EXTRA_gnunet_template_DEPENDENCIES) | ||
551 | @rm -f gnunet-template$(EXEEXT) | ||
552 | $(AM_V_CCLD)$(LINK) $(gnunet_template_OBJECTS) $(gnunet_template_LDADD) $(LIBS) | ||
553 | test_template_api$(EXEEXT): $(test_template_api_OBJECTS) $(test_template_api_DEPENDENCIES) $(EXTRA_test_template_api_DEPENDENCIES) | ||
554 | @rm -f test_template_api$(EXEEXT) | ||
555 | $(AM_V_CCLD)$(LINK) $(test_template_api_OBJECTS) $(test_template_api_LDADD) $(LIBS) | ||
556 | |||
557 | mostlyclean-compile: | ||
558 | -rm -f *.$(OBJEXT) | ||
559 | |||
560 | distclean-compile: | ||
561 | -rm -f *.tab.c | ||
562 | |||
563 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnunet-service-template.Po@am__quote@ | ||
564 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnunet-template.Po@am__quote@ | ||
565 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_template_api.Po@am__quote@ | ||
566 | |||
567 | .c.o: | ||
568 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
569 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
570 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
571 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
572 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< | ||
573 | |||
574 | .c.obj: | ||
575 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` | ||
576 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po | ||
577 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ | ||
578 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
579 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` | ||
580 | |||
581 | .c.lo: | ||
582 | @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< | ||
583 | @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo | ||
584 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ | ||
585 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ | ||
586 | @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< | ||
587 | |||
588 | mostlyclean-libtool: | ||
589 | -rm -f *.lo | ||
590 | |||
591 | clean-libtool: | ||
592 | -rm -rf .libs _libs | ||
593 | install-dist_pkgcfgDATA: $(dist_pkgcfg_DATA) | ||
594 | @$(NORMAL_INSTALL) | ||
595 | @list='$(dist_pkgcfg_DATA)'; test -n "$(pkgcfgdir)" || list=; \ | ||
596 | if test -n "$$list"; then \ | ||
597 | echo " $(MKDIR_P) '$(DESTDIR)$(pkgcfgdir)'"; \ | ||
598 | $(MKDIR_P) "$(DESTDIR)$(pkgcfgdir)" || exit 1; \ | ||
599 | fi; \ | ||
600 | for p in $$list; do \ | ||
601 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ | ||
602 | echo "$$d$$p"; \ | ||
603 | done | $(am__base_list) | \ | ||
604 | while read files; do \ | ||
605 | echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgcfgdir)'"; \ | ||
606 | $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgcfgdir)" || exit $$?; \ | ||
607 | done | ||
608 | |||
609 | uninstall-dist_pkgcfgDATA: | ||
610 | @$(NORMAL_UNINSTALL) | ||
611 | @list='$(dist_pkgcfg_DATA)'; test -n "$(pkgcfgdir)" || list=; \ | ||
612 | files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ | ||
613 | dir='$(DESTDIR)$(pkgcfgdir)'; $(am__uninstall_files_from_dir) | ||
614 | |||
615 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | ||
616 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
617 | unique=`for i in $$list; do \ | ||
618 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
619 | done | \ | ||
620 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
621 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
622 | mkid -fID $$unique | ||
623 | tags: TAGS | ||
624 | |||
625 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
626 | $(TAGS_FILES) $(LISP) | ||
627 | set x; \ | ||
628 | here=`pwd`; \ | ||
629 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
630 | unique=`for i in $$list; do \ | ||
631 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
632 | done | \ | ||
633 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
634 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
635 | shift; \ | ||
636 | if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ | ||
637 | test -n "$$unique" || unique=$$empty_fix; \ | ||
638 | if test $$# -gt 0; then \ | ||
639 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
640 | "$$@" $$unique; \ | ||
641 | else \ | ||
642 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | ||
643 | $$unique; \ | ||
644 | fi; \ | ||
645 | fi | ||
646 | ctags: CTAGS | ||
647 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | ||
648 | $(TAGS_FILES) $(LISP) | ||
649 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | ||
650 | unique=`for i in $$list; do \ | ||
651 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | ||
652 | done | \ | ||
653 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | ||
654 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | ||
655 | test -z "$(CTAGS_ARGS)$$unique" \ | ||
656 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | ||
657 | $$unique | ||
658 | |||
659 | GTAGS: | ||
660 | here=`$(am__cd) $(top_builddir) && pwd` \ | ||
661 | && $(am__cd) $(top_srcdir) \ | ||
662 | && gtags -i $(GTAGS_ARGS) "$$here" | ||
663 | |||
664 | distclean-tags: | ||
665 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | ||
666 | |||
667 | check-TESTS: $(TESTS) | ||
668 | @failed=0; all=0; xfail=0; xpass=0; skip=0; \ | ||
669 | srcdir=$(srcdir); export srcdir; \ | ||
670 | list=' $(TESTS) '; \ | ||
671 | $(am__tty_colors); \ | ||
672 | if test -n "$$list"; then \ | ||
673 | for tst in $$list; do \ | ||
674 | if test -f ./$$tst; then dir=./; \ | ||
675 | elif test -f $$tst; then dir=; \ | ||
676 | else dir="$(srcdir)/"; fi; \ | ||
677 | if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ | ||
678 | all=`expr $$all + 1`; \ | ||
679 | case " $(XFAIL_TESTS) " in \ | ||
680 | *[\ \ ]$$tst[\ \ ]*) \ | ||
681 | xpass=`expr $$xpass + 1`; \ | ||
682 | failed=`expr $$failed + 1`; \ | ||
683 | col=$$red; res=XPASS; \ | ||
684 | ;; \ | ||
685 | *) \ | ||
686 | col=$$grn; res=PASS; \ | ||
687 | ;; \ | ||
688 | esac; \ | ||
689 | elif test $$? -ne 77; then \ | ||
690 | all=`expr $$all + 1`; \ | ||
691 | case " $(XFAIL_TESTS) " in \ | ||
692 | *[\ \ ]$$tst[\ \ ]*) \ | ||
693 | xfail=`expr $$xfail + 1`; \ | ||
694 | col=$$lgn; res=XFAIL; \ | ||
695 | ;; \ | ||
696 | *) \ | ||
697 | failed=`expr $$failed + 1`; \ | ||
698 | col=$$red; res=FAIL; \ | ||
699 | ;; \ | ||
700 | esac; \ | ||
701 | else \ | ||
702 | skip=`expr $$skip + 1`; \ | ||
703 | col=$$blu; res=SKIP; \ | ||
704 | fi; \ | ||
705 | echo "$${col}$$res$${std}: $$tst"; \ | ||
706 | done; \ | ||
707 | if test "$$all" -eq 1; then \ | ||
708 | tests="test"; \ | ||
709 | All=""; \ | ||
710 | else \ | ||
711 | tests="tests"; \ | ||
712 | All="All "; \ | ||
713 | fi; \ | ||
714 | if test "$$failed" -eq 0; then \ | ||
715 | if test "$$xfail" -eq 0; then \ | ||
716 | banner="$$All$$all $$tests passed"; \ | ||
717 | else \ | ||
718 | if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ | ||
719 | banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ | ||
720 | fi; \ | ||
721 | else \ | ||
722 | if test "$$xpass" -eq 0; then \ | ||
723 | banner="$$failed of $$all $$tests failed"; \ | ||
724 | else \ | ||
725 | if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ | ||
726 | banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ | ||
727 | fi; \ | ||
728 | fi; \ | ||
729 | dashes="$$banner"; \ | ||
730 | skipped=""; \ | ||
731 | if test "$$skip" -ne 0; then \ | ||
732 | if test "$$skip" -eq 1; then \ | ||
733 | skipped="($$skip test was not run)"; \ | ||
734 | else \ | ||
735 | skipped="($$skip tests were not run)"; \ | ||
736 | fi; \ | ||
737 | test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ | ||
738 | dashes="$$skipped"; \ | ||
739 | fi; \ | ||
740 | report=""; \ | ||
741 | if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ | ||
742 | report="Please report to $(PACKAGE_BUGREPORT)"; \ | ||
743 | test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ | ||
744 | dashes="$$report"; \ | ||
745 | fi; \ | ||
746 | dashes=`echo "$$dashes" | sed s/./=/g`; \ | ||
747 | if test "$$failed" -eq 0; then \ | ||
748 | col="$$grn"; \ | ||
749 | else \ | ||
750 | col="$$red"; \ | ||
751 | fi; \ | ||
752 | echo "$${col}$$dashes$${std}"; \ | ||
753 | echo "$${col}$$banner$${std}"; \ | ||
754 | test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ | ||
755 | test -z "$$report" || echo "$${col}$$report$${std}"; \ | ||
756 | echo "$${col}$$dashes$${std}"; \ | ||
757 | test "$$failed" -eq 0; \ | ||
758 | else :; fi | ||
759 | |||
760 | distdir: $(DISTFILES) | ||
761 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
762 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | ||
763 | list='$(DISTFILES)'; \ | ||
764 | dist_files=`for file in $$list; do echo $$file; done | \ | ||
765 | sed -e "s|^$$srcdirstrip/||;t" \ | ||
766 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | ||
767 | case $$dist_files in \ | ||
768 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | ||
769 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | ||
770 | sort -u` ;; \ | ||
771 | esac; \ | ||
772 | for file in $$dist_files; do \ | ||
773 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | ||
774 | if test -d $$d/$$file; then \ | ||
775 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | ||
776 | if test -d "$(distdir)/$$file"; then \ | ||
777 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
778 | fi; \ | ||
779 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | ||
780 | cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ | ||
781 | find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ | ||
782 | fi; \ | ||
783 | cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ | ||
784 | else \ | ||
785 | test -f "$(distdir)/$$file" \ | ||
786 | || cp -p $$d/$$file "$(distdir)/$$file" \ | ||
787 | || exit 1; \ | ||
788 | fi; \ | ||
789 | done | ||
790 | check-am: all-am | ||
791 | $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) | ||
792 | $(MAKE) $(AM_MAKEFLAGS) check-TESTS | ||
793 | check: check-am | ||
794 | all-am: Makefile $(PROGRAMS) $(DATA) | ||
795 | installdirs: | ||
796 | for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(pkgcfgdir)"; do \ | ||
797 | test -z "$$dir" || $(MKDIR_P) "$$dir"; \ | ||
798 | done | ||
799 | install: install-am | ||
800 | install-exec: install-exec-am | ||
801 | install-data: install-data-am | ||
802 | uninstall: uninstall-am | ||
803 | |||
804 | install-am: all-am | ||
805 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | ||
806 | |||
807 | installcheck: installcheck-am | ||
808 | install-strip: | ||
809 | if test -z '$(STRIP)'; then \ | ||
810 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
811 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
812 | install; \ | ||
813 | else \ | ||
814 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | ||
815 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | ||
816 | "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ | ||
817 | fi | ||
818 | mostlyclean-generic: | ||
819 | |||
820 | clean-generic: | ||
821 | |||
822 | distclean-generic: | ||
823 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | ||
824 | -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) | ||
825 | |||
826 | maintainer-clean-generic: | ||
827 | @echo "This command is intended for maintainers to use" | ||
828 | @echo "it deletes files that may require special tools to rebuild." | ||
829 | clean: clean-am | ||
830 | |||
831 | clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ | ||
832 | clean-libexecPROGRAMS clean-libtool mostlyclean-am | ||
833 | |||
834 | distclean: distclean-am | ||
835 | -rm -rf ./$(DEPDIR) | ||
836 | -rm -f Makefile | ||
837 | distclean-am: clean-am distclean-compile distclean-generic \ | ||
838 | distclean-tags | ||
839 | |||
840 | dvi: dvi-am | ||
841 | |||
842 | dvi-am: | ||
843 | |||
844 | html: html-am | ||
845 | |||
846 | html-am: | ||
847 | |||
848 | info: info-am | ||
849 | |||
850 | info-am: | ||
851 | |||
852 | install-data-am: install-dist_pkgcfgDATA | ||
853 | |||
854 | install-dvi: install-dvi-am | ||
855 | |||
856 | install-dvi-am: | ||
857 | |||
858 | install-exec-am: install-binPROGRAMS install-libexecPROGRAMS | ||
859 | |||
860 | install-html: install-html-am | ||
861 | |||
862 | install-html-am: | ||
863 | |||
864 | install-info: install-info-am | ||
865 | |||
866 | install-info-am: | ||
867 | |||
868 | install-man: | ||
869 | |||
870 | install-pdf: install-pdf-am | ||
871 | |||
872 | install-pdf-am: | ||
873 | |||
874 | install-ps: install-ps-am | ||
875 | |||
876 | install-ps-am: | ||
877 | |||
878 | installcheck-am: | ||
879 | |||
880 | maintainer-clean: maintainer-clean-am | ||
881 | -rm -rf ./$(DEPDIR) | ||
882 | -rm -f Makefile | ||
883 | maintainer-clean-am: distclean-am maintainer-clean-generic | ||
884 | |||
885 | mostlyclean: mostlyclean-am | ||
886 | |||
887 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ | ||
888 | mostlyclean-libtool | ||
889 | |||
890 | pdf: pdf-am | ||
891 | |||
892 | pdf-am: | ||
893 | |||
894 | ps: ps-am | ||
895 | |||
896 | ps-am: | ||
897 | |||
898 | uninstall-am: uninstall-binPROGRAMS uninstall-dist_pkgcfgDATA \ | ||
899 | uninstall-libexecPROGRAMS | ||
900 | |||
901 | .MAKE: check-am install-am install-strip | ||
902 | |||
903 | .PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ | ||
904 | clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ | ||
905 | clean-libexecPROGRAMS clean-libtool ctags distclean \ | ||
906 | distclean-compile distclean-generic distclean-libtool \ | ||
907 | distclean-tags distdir dvi dvi-am html html-am info info-am \ | ||
908 | install install-am install-binPROGRAMS install-data \ | ||
909 | install-data-am install-dist_pkgcfgDATA install-dvi \ | ||
910 | install-dvi-am install-exec install-exec-am install-html \ | ||
911 | install-html-am install-info install-info-am \ | ||
912 | install-libexecPROGRAMS install-man install-pdf install-pdf-am \ | ||
913 | install-ps install-ps-am install-strip installcheck \ | ||
914 | installcheck-am installdirs maintainer-clean \ | ||
915 | maintainer-clean-generic mostlyclean mostlyclean-compile \ | ||
916 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ | ||
917 | tags uninstall uninstall-am uninstall-binPROGRAMS \ | ||
918 | uninstall-dist_pkgcfgDATA uninstall-libexecPROGRAMS | ||
919 | |||
920 | |||
921 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | ||
922 | # Otherwise a system limit (for SysV at least) may be exceeded. | ||
923 | .NOEXPORT: | ||
diff --git a/src/multicast/gnunet-multicast.c b/src/multicast/gnunet-multicast.c new file mode 100644 index 000000000..e46d034d8 --- /dev/null +++ b/src/multicast/gnunet-multicast.c | |||
@@ -0,0 +1,76 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | (C) 2013 Christian Grothoff (and other contributing authors) | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | Boston, MA 02111-1307, USA. | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file multicast/gnunet-multicast.c | ||
23 | * @brief multicast for writing a tool | ||
24 | * @author Christian Grothoff | ||
25 | */ | ||
26 | #include "platform.h" | ||
27 | #include "gnunet_util_lib.h" | ||
28 | /* #include "gnunet_multicast_service.h" */ | ||
29 | |||
30 | /** | ||
31 | * Final status code. | ||
32 | */ | ||
33 | static int ret; | ||
34 | |||
35 | /** | ||
36 | * Main function that will be run by the scheduler. | ||
37 | * | ||
38 | * @param cls closure | ||
39 | * @param args remaining command-line arguments | ||
40 | * @param cfgfile name of the configuration file used (for saving, can be NULL!) | ||
41 | * @param cfg configuration | ||
42 | */ | ||
43 | static void | ||
44 | run (void *cls, char *const *args, const char *cfgfile, | ||
45 | const struct GNUNET_CONFIGURATION_Handle *cfg) | ||
46 | { | ||
47 | /* main code here */ | ||
48 | } | ||
49 | |||
50 | |||
51 | /** | ||
52 | * The main function. | ||
53 | * | ||
54 | * @param argc number of arguments from the command line | ||
55 | * @param argv command line arguments | ||
56 | * @return 0 ok, 1 on error | ||
57 | */ | ||
58 | int | ||
59 | main (int argc, char *const *argv) | ||
60 | { | ||
61 | static const struct GNUNET_GETOPT_CommandLineOption options[] = { | ||
62 | /* FIMXE: add options here */ | ||
63 | GNUNET_GETOPT_OPTION_END | ||
64 | }; | ||
65 | if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) | ||
66 | return 2; | ||
67 | |||
68 | ret = (GNUNET_OK == | ||
69 | GNUNET_PROGRAM_run (argc, argv, "gnunet-multicast", | ||
70 | gettext_noop ("help text"), options, &run, | ||
71 | NULL)) ? ret : 1; | ||
72 | GNUNET_free ((void*) argv); | ||
73 | return ret; | ||
74 | } | ||
75 | |||
76 | /* end of gnunet-multicast.c */ | ||
diff --git a/src/multicast/gnunet-service-multicast.c b/src/multicast/gnunet-service-multicast.c new file mode 100644 index 000000000..f9aa7fe2d --- /dev/null +++ b/src/multicast/gnunet-service-multicast.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | (C) 2009 Christian Grothoff (and other contributing authors) | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | Boston, MA 02111-1307, USA. | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file multicast/gnunet-service-multicast.c | ||
23 | * @brief program that does multicast | ||
24 | * @author Christian Grothoff | ||
25 | */ | ||
26 | #include "platform.h" | ||
27 | #include "gnunet_util_lib.h" | ||
28 | |||
29 | |||
30 | /** | ||
31 | * Task run during shutdown. | ||
32 | * | ||
33 | * @param cls unused | ||
34 | * @param tc unused | ||
35 | */ | ||
36 | static void | ||
37 | cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
38 | { | ||
39 | /* FIXME: do clean up here */ | ||
40 | } | ||
41 | |||
42 | |||
43 | /** | ||
44 | * Process multicast requests. | ||
45 | * | ||
46 | * @param cls closure | ||
47 | * @param server the initialized server | ||
48 | * @param cfg configuration to use | ||
49 | */ | ||
50 | static void | ||
51 | run (void *cls, struct GNUNET_SERVER_Handle *server, | ||
52 | const struct GNUNET_CONFIGURATION_Handle *cfg) | ||
53 | { | ||
54 | static const struct GNUNET_SERVER_MessageHandler handlers[] = { | ||
55 | /* FIXME: add handlers here! */ | ||
56 | {NULL, NULL, 0, 0} | ||
57 | }; | ||
58 | /* FIXME: do setup here */ | ||
59 | GNUNET_SERVER_add_handlers (server, handlers); | ||
60 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task, | ||
61 | NULL); | ||
62 | } | ||
63 | |||
64 | |||
65 | /** | ||
66 | * The main function for the multicast service. | ||
67 | * | ||
68 | * @param argc number of arguments from the command line | ||
69 | * @param argv command line arguments | ||
70 | * @return 0 ok, 1 on error | ||
71 | */ | ||
72 | int | ||
73 | main (int argc, char *const *argv) | ||
74 | { | ||
75 | return (GNUNET_OK == | ||
76 | GNUNET_SERVICE_run (argc, argv, "multicast", | ||
77 | GNUNET_SERVICE_OPTION_NONE, &run, NULL)) ? 0 : 1; | ||
78 | } | ||
79 | |||
80 | /* end of gnunet-service-multicast.c */ | ||
diff --git a/src/multicast/multicast.conf.in b/src/multicast/multicast.conf.in new file mode 100644 index 000000000..bd37cb474 --- /dev/null +++ b/src/multicast/multicast.conf.in | |||
@@ -0,0 +1,20 @@ | |||
1 | [multicast] | ||
2 | AUTOSTART = YES | ||
3 | PORT = 2109 | ||
4 | HOSTNAME = localhost | ||
5 | HOME = $SERVICEHOME | ||
6 | BINARY = gnunet-service-multicast | ||
7 | ACCEPT_FROM = 127.0.0.1; | ||
8 | ACCEPT_FROM6 = ::1; | ||
9 | UNIXPATH = /tmp/gnunet-service-multicast.sock | ||
10 | UNIX_MATCH_UID = YES | ||
11 | UNIX_MATCH_GID = YES | ||
12 | # DISABLE_SOCKET_FORWARDING = NO | ||
13 | # USERNAME = | ||
14 | # MAXBUF = | ||
15 | # TIMEOUT = | ||
16 | # DISABLEV6 = | ||
17 | # BINDTO = | ||
18 | # REJECT_FROM = | ||
19 | # REJECT_FROM6 = | ||
20 | # PREFIX = | ||
diff --git a/src/multicast/multicast_api.c b/src/multicast/multicast_api.c new file mode 100644 index 000000000..9dceec1a5 --- /dev/null +++ b/src/multicast/multicast_api.c | |||
@@ -0,0 +1,554 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | (C) 2012, 2013 Christian Grothoff (and other contributing authors) | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | Boston, MA 02111-1307, USA. | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @file multicast/multicast_api.c | ||
23 | * @brief multicast service; establish tunnels to distant peers | ||
24 | * @author Christian Grothoff | ||
25 | * @author Gabor X Toth | ||
26 | */ | ||
27 | #include "platform.h" | ||
28 | #include "gnunet_multicast_service.h" | ||
29 | |||
30 | /** | ||
31 | * Opaque handle for a multicast group member. | ||
32 | */ | ||
33 | struct GNUNET_MULTICAST_Member | ||
34 | { | ||
35 | }; | ||
36 | |||
37 | |||
38 | /** | ||
39 | * Handle for the origin of a multicast group. | ||
40 | */ | ||
41 | struct GNUNET_MULTICAST_Origin | ||
42 | { | ||
43 | }; | ||
44 | |||
45 | |||
46 | GNUNET_NETWORK_STRUCT_BEGIN | ||
47 | |||
48 | /** | ||
49 | * Header of a request from a member to the origin. | ||
50 | */ | ||
51 | struct GNUNET_MULTICAST_RequestHeader | ||
52 | { | ||
53 | /** | ||
54 | * Header for all requests from a member to the origin. | ||
55 | */ | ||
56 | struct GNUNET_MessageHeader header; | ||
57 | |||
58 | /** | ||
59 | * Public key of the sending member. | ||
60 | */ | ||
61 | struct GNUNET_CRYPTO_EccPublicKey member_key; | ||
62 | |||
63 | /** | ||
64 | * ECC signature of the request fragment. | ||
65 | * | ||
66 | * Signature must match the public key of the multicast group. | ||
67 | */ | ||
68 | struct GNUNET_CRYPTO_EccSignature signature; | ||
69 | |||
70 | /** | ||
71 | * Purpose for the signature and size of the signed data. | ||
72 | */ | ||
73 | struct GNUNET_CRYPTO_EccSignaturePurpose purpose; | ||
74 | |||
75 | /** | ||
76 | * Number of the request fragment, monotonically increasing. | ||
77 | */ | ||
78 | uint64_t fragment_id GNUNET_PACKED; | ||
79 | |||
80 | /** | ||
81 | * Byte offset of this @e fragment of the @e request. | ||
82 | */ | ||
83 | uint64_t fragment_offset GNUNET_PACKED; | ||
84 | |||
85 | /** | ||
86 | * Number of the request this fragment belongs to. | ||
87 | * | ||
88 | * Set in GNUNET_MULTICAST_origin_to_all(). | ||
89 | */ | ||
90 | uint64_t request_id GNUNET_PACKED; | ||
91 | |||
92 | /** | ||
93 | * Flags for this request. | ||
94 | */ | ||
95 | enum GNUNET_MULTICAST_MessageFlags flags GNUNET_PACKED; | ||
96 | |||
97 | /* Followed by request body. */ | ||
98 | }; | ||
99 | |||
100 | /** | ||
101 | * Header of a join request sent to the origin or another member. | ||
102 | */ | ||
103 | struct GNUNET_MULTICAST_JoinRequest | ||
104 | { | ||
105 | /** | ||
106 | * Header for the join request. | ||
107 | */ | ||
108 | struct GNUNET_MessageHeader header; | ||
109 | |||
110 | /** | ||
111 | * ECC signature of the rest of the fields of the join request. | ||
112 | * | ||
113 | * Signature must match the public key of the joining member. | ||
114 | */ | ||
115 | struct GNUNET_CRYPTO_EccSignature signature; | ||
116 | |||
117 | /** | ||
118 | * Purpose for the signature and size of the signed data. | ||
119 | */ | ||
120 | struct GNUNET_CRYPTO_EccSignaturePurpose purpose; | ||
121 | |||
122 | /** | ||
123 | * Public key of the target group. | ||
124 | */ | ||
125 | struct GNUNET_CRYPTO_EccPublicKey group_key; | ||
126 | |||
127 | /** | ||
128 | * Public key of the joining member. | ||
129 | */ | ||
130 | struct GNUNET_CRYPTO_EccPublicKey member_key; | ||
131 | |||
132 | /** | ||
133 | * Peer identity of the joining member. | ||
134 | */ | ||
135 | struct GNUNET_PeerIdentity member_peer; | ||
136 | |||
137 | /* Followed by request body. */ | ||
138 | }; | ||
139 | |||
140 | GNUNET_NETWORK_STRUCT_END | ||
141 | |||
142 | |||
143 | /** | ||
144 | * Handle that identifies a join request. | ||
145 | * | ||
146 | * Used to match calls to #GNUNET_MULTICAST_JoinCallback to the | ||
147 | * corresponding calls to #GNUNET_MULTICAST_join_decision(). | ||
148 | */ | ||
149 | struct GNUNET_MULTICAST_JoinHandle | ||
150 | { | ||
151 | }; | ||
152 | |||
153 | |||
154 | /** | ||
155 | * Function to call with the decision made for a join request. | ||
156 | * | ||
157 | * Must be called once and only once in response to an invocation of the | ||
158 | * #GNUNET_MULTICAST_JoinCallback. | ||
159 | * | ||
160 | * @param jh Join request handle. | ||
161 | * @param is_admitted #GNUNET_YES if joining is approved, | ||
162 | * #GNUNET_NO if it is disapproved | ||
163 | * @param relay_count Number of relays given. | ||
164 | * @param relays Array of suggested peers that might be useful relays to use | ||
165 | * when joining the multicast group (essentially a list of peers that | ||
166 | * are already part of the multicast group and might thus be willing | ||
167 | * to help with routing). If empty, only this local peer (which must | ||
168 | * be the multicast origin) is a good candidate for building the | ||
169 | * multicast tree. Note that it is unnecessary to specify our own | ||
170 | * peer identity in this array. | ||
171 | * @param join_response Message to send in response to the joining peer; | ||
172 | * can also be used to redirect the peer to a different group at the | ||
173 | * application layer; this response is to be transmitted to the | ||
174 | * peer that issued the request even if admission is denied. | ||
175 | */ | ||
176 | struct GNUNET_MULTICAST_ReplayHandle * | ||
177 | GNUNET_MULTICAST_join_decision (struct GNUNET_MULTICAST_JoinHandle *jh, | ||
178 | int is_admitted, | ||
179 | unsigned int relay_count, | ||
180 | const struct GNUNET_PeerIdentity *relays, | ||
181 | const struct GNUNET_MessageHeader *join_response) | ||
182 | { | ||
183 | return NULL; | ||
184 | } | ||
185 | |||
186 | |||
187 | /** | ||
188 | * Handle to pass back for the answer of a membership test. | ||
189 | */ | ||
190 | struct GNUNET_MULTICAST_MembershipTestHandle | ||
191 | { | ||
192 | }; | ||
193 | |||
194 | |||
195 | /** | ||
196 | * Call informing multicast about the decision taken for a membership test. | ||
197 | * | ||
198 | * @param mth Handle that was given for the query. | ||
199 | * @param result #GNUNET_YES if peer was a member, #GNUNET_NO if peer was not a member, | ||
200 | * #GNUNET_SYSERR if we cannot answer the membership test. | ||
201 | */ | ||
202 | void | ||
203 | GNUNET_MULTICAST_membership_test_result (struct GNUNET_MULTICAST_MembershipTestHandle *mth, | ||
204 | int result) | ||
205 | { | ||
206 | } | ||
207 | |||
208 | |||
209 | /** | ||
210 | * Opaque handle to a replay request from the multicast service. | ||
211 | */ | ||
212 | struct GNUNET_MULTICAST_ReplayHandle | ||
213 | { | ||
214 | }; | ||
215 | |||
216 | |||
217 | /** | ||
218 | * Replay a message fragment for the multicast group. | ||
219 | * | ||
220 | * @param rh Replay handle identifying which replay operation was requested. | ||
221 | * @param msg Replayed message fragment, NULL if unknown/error. | ||
222 | * @param ec Error code. | ||
223 | */ | ||
224 | void | ||
225 | GNUNET_MULTICAST_replay (struct GNUNET_MULTICAST_ReplayHandle *rh, | ||
226 | const struct GNUNET_MessageHeader *msg, | ||
227 | enum GNUNET_MULTICAST_ReplayErrorCode ec) | ||
228 | { | ||
229 | }; | ||
230 | |||
231 | |||
232 | /** | ||
233 | * Indicate the end of the replay session. | ||
234 | * | ||
235 | * Invalidates the replay handle. | ||
236 | * | ||
237 | * @param rh Replay session to end. | ||
238 | */ | ||
239 | void | ||
240 | GNUNET_MULTICAST_replay_end (struct GNUNET_MULTICAST_ReplayHandle *rh) | ||
241 | { | ||
242 | } | ||
243 | |||
244 | |||
245 | /** | ||
246 | * Replay a message for the multicast group. | ||
247 | * | ||
248 | * @param rh Replay handle identifying which replay operation was requested. | ||
249 | * @param notify Function to call to get the message. | ||
250 | * @param notify_cls Closure for @a notify. | ||
251 | */ | ||
252 | void | ||
253 | GNUNET_MULTICAST_replay2 (struct GNUNET_MULTICAST_ReplayHandle *rh, | ||
254 | GNUNET_MULTICAST_ReplayTransmitNotify notify, | ||
255 | void *notify_cls) | ||
256 | { | ||
257 | } | ||
258 | |||
259 | |||
260 | /** | ||
261 | * Start a multicast group. | ||
262 | * | ||
263 | * Will advertise the origin in the P2P overlay network under the respective | ||
264 | * public key so that other peer can find this peer to join it. Peers that | ||
265 | * issue GNUNET_MULTICAST_member_join() can then transmit a join request to | ||
266 | * either an existing group member or to the origin. If the joining is | ||
267 | * approved, the member is cleared for @e replay and will begin to receive | ||
268 | * messages transmitted to the group. If joining is disapproved, the failed | ||
269 | * candidate will be given a response. Members in the group can send messages | ||
270 | * to the origin (one at a time). | ||
271 | * | ||
272 | * @param cfg Configuration to use. | ||
273 | * @param priv_key ECC key that will be used to sign messages for this | ||
274 | * multicast session; public key is used to identify the multicast group; | ||
275 | * FIXME: we'll likely want to use NOT the p521 curve here, but a cheaper | ||
276 | * one in the future. | ||
277 | * @param last_fragment_id Last fragment ID to continue counting fragments from | ||
278 | * when restarting the origin. 0 for a new group. | ||
279 | * @param join_cb Function called to approve / disapprove joining of a peer. | ||
280 | * @param test_cb Function multicast can use to test group membership. | ||
281 | * @param replay_cb Function that can be called to replay a message. | ||
282 | * @param request_cb Function called with message fragments from group members. | ||
283 | * @param message_cb Function called with the message fragments sent to the | ||
284 | * network by GNUNET_MULTICAST_origin_to_all(). These message fragments | ||
285 | * should be stored for answering replay requests later. | ||
286 | * @param cls Closure for the various callbacks that follow. | ||
287 | * @return Handle for the origin, NULL on error. | ||
288 | */ | ||
289 | struct GNUNET_MULTICAST_Origin * | ||
290 | GNUNET_MULTICAST_origin_start (const struct GNUNET_CONFIGURATION_Handle *cfg, | ||
291 | const struct GNUNET_CRYPTO_EccPrivateKey *priv_key, | ||
292 | uint64_t last_fragment_id, | ||
293 | GNUNET_MULTICAST_JoinCallback join_cb, | ||
294 | GNUNET_MULTICAST_MembershipTestCallback test_cb, | ||
295 | GNUNET_MULTICAST_ReplayFragmentCallback replay_frag_cb, | ||
296 | GNUNET_MULTICAST_ReplayMessageCallback replay_msg_cb, | ||
297 | GNUNET_MULTICAST_RequestCallback request_cb, | ||
298 | GNUNET_MULTICAST_MessageCallback message_cb, | ||
299 | void *cls) | ||
300 | { | ||
301 | return NULL; | ||
302 | } | ||
303 | |||
304 | |||
305 | /** | ||
306 | * Handle for a request to send a message to all multicast group members | ||
307 | * (from the origin). | ||
308 | */ | ||
309 | struct GNUNET_MULTICAST_OriginMessageHandle | ||
310 | { | ||
311 | }; | ||
312 | |||
313 | |||
314 | /** | ||
315 | * Send a message to the multicast group. | ||
316 | * | ||
317 | * @param origin Handle to the multicast group. | ||
318 | * @param message_id Application layer ID for the message. Opaque to multicast. | ||
319 | * @param group_generation Group generation of the message. Documented in | ||
320 | * GNUNET_MULTICAST_MessageHeader. | ||
321 | * @param size Number of bytes to transmit. | ||
322 | * FIXME: Needed? The end of the message can be flagged with a last fragment flag. | ||
323 | * @param notify Function to call to get the message. | ||
324 | * @param notify_cls Closure for @a notify. | ||
325 | * @return NULL on error (i.e. request already pending). | ||
326 | */ | ||
327 | struct GNUNET_MULTICAST_OriginMessageHandle * | ||
328 | GNUNET_MULTICAST_origin_to_all (struct GNUNET_MULTICAST_Origin *origin, | ||
329 | uint64_t message_id, | ||
330 | uint64_t group_generation, | ||
331 | size_t size, | ||
332 | GNUNET_MULTICAST_OriginTransmitNotify notify, | ||
333 | void *notify_cls) | ||
334 | { | ||
335 | return NULL; | ||
336 | } | ||
337 | |||
338 | |||
339 | /** | ||
340 | * Cancel request for message transmission to multicast group. | ||
341 | * | ||
342 | * @param mh Request to cancel. | ||
343 | */ | ||
344 | void | ||
345 | GNUNET_MULTICAST_origin_to_all_cancel (struct GNUNET_MULTICAST_OriginMessageHandle *mh) | ||
346 | { | ||
347 | } | ||
348 | |||
349 | |||
350 | /** | ||
351 | * Stop a multicast group. | ||
352 | * | ||
353 | * @param origin Multicast group to stop. | ||
354 | */ | ||
355 | void | ||
356 | GNUNET_MULTICAST_origin_stop (struct GNUNET_MULTICAST_Origin *origin) | ||
357 | { | ||
358 | } | ||
359 | |||
360 | |||
361 | /** | ||
362 | * Join a multicast group. | ||
363 | * | ||
364 | * The entity joining is always the local peer. Further information about the | ||
365 | * candidate can be provided in the @a join_request message. If the join fails, the | ||
366 | * @a message_cb is invoked with a (failure) response and then with NULL. If | ||
367 | * the join succeeds, outstanding (state) messages and ongoing multicast | ||
368 | * messages will be given to the @a message_cb until the member decides to part | ||
369 | * the group. The @a test_cb and @a replay_cb functions may be called at | ||
370 | * anytime by the multicast service to support relaying messages to other | ||
371 | * members of the group. | ||
372 | * | ||
373 | * @param cfg Configuration to use. | ||
374 | * @param group_key ECC public key that identifies the group to join. | ||
375 | * @param member_key ECC key that identifies the member and used to sign | ||
376 | * requests sent to the origin. | ||
377 | * @param origin Peer ID of the origin to send unicast requsets to. If NULL, | ||
378 | * unicast requests are sent back via multiple hops on the reverse path | ||
379 | * of multicast messages. | ||
380 | * @param relay_count Number of peers in the @a relays array. | ||
381 | * @param relays Peer identities of members of the group, which serve as relays | ||
382 | * and can be used to join the group at. and send the @a join_request to. | ||
383 | * If empty, the @a join_request is sent directly to the @a origin. | ||
384 | * @param join_request Application-dependent join request to be passed to the peer | ||
385 | * @a relay (might, for example, contain a user, bind user | ||
386 | * identity/pseudonym to peer identity, application-level message to | ||
387 | * origin, etc.). | ||
388 | * @param max_known_fragment_id Largest known message fragment ID to the replay | ||
389 | * service; all messages with IDs larger than this ID will be replayed if | ||
390 | * possible (lower IDs will be considered known and thus only | ||
391 | * be replayed upon explicit request). | ||
392 | * FIXME: needed? can be optional or moved to a separate function. | ||
393 | * @param join_cb Function called to approve / disapprove joining of a peer. | ||
394 | * @param test_cb Function multicast can use to test group membership. | ||
395 | * @param replay_cb Function that can be called to replay messages | ||
396 | * this peer already knows from this group; NULL if this | ||
397 | * client is unable to support replay. | ||
398 | * @param message_cb Function to be called for all message fragments we | ||
399 | * receive from the group, excluding those our @a replay_cb | ||
400 | * already has. | ||
401 | * @param cls Closure for callbacks. | ||
402 | * @return Handle for the member, NULL on error. | ||
403 | */ | ||
404 | struct GNUNET_MULTICAST_Member * | ||
405 | GNUNET_MULTICAST_member_join (const struct GNUNET_CONFIGURATION_Handle *cfg, | ||
406 | const struct GNUNET_CRYPTO_EccPublicKey *group_key, | ||
407 | const struct GNUNET_CRYPTO_EccPrivateKey *member_key, | ||
408 | const struct GNUNET_PeerIdentity *origin, | ||
409 | size_t relay_count, | ||
410 | const struct GNUNET_PeerIdentity *relays, | ||
411 | const struct GNUNET_MessageHeader *join_request, | ||
412 | GNUNET_MULTICAST_JoinCallback join_cb, | ||
413 | GNUNET_MULTICAST_MembershipTestCallback test_cb, | ||
414 | GNUNET_MULTICAST_ReplayFragmentCallback replay_frag_cb, | ||
415 | GNUNET_MULTICAST_ReplayMessageCallback replay_msg_cb, | ||
416 | GNUNET_MULTICAST_MessageCallback message_cb, | ||
417 | void *cls) | ||
418 | { | ||
419 | return NULL; | ||
420 | } | ||
421 | |||
422 | |||
423 | /** | ||
424 | * Handle for a replay request. | ||
425 | */ | ||
426 | struct GNUNET_MULTICAST_MemberReplayHandle | ||
427 | { | ||
428 | }; | ||
429 | |||
430 | |||
431 | /** | ||
432 | * Request a fragment to be replayed by fragment ID. | ||
433 | * | ||
434 | * Useful if messages below the @e max_known_fragment_id given when joining are | ||
435 | * needed and not known to the client. | ||
436 | * | ||
437 | * @param member Membership handle. | ||
438 | * @param fragment_id ID of a message fragment that this client would like to | ||
439 | see replayed. | ||
440 | * @param flags Additional flags for the replay request. It is used and defined | ||
441 | * by the replay callback. FIXME: which replay callback? FIXME: use enum? | ||
442 | * FIXME: why not pass reply cb here? | ||
443 | * @return Replay request handle, NULL on error. | ||
444 | */ | ||
445 | struct GNUNET_MULTICAST_MemberReplayHandle * | ||
446 | GNUNET_MULTICAST_member_replay_fragment (struct GNUNET_MULTICAST_Member *member, | ||
447 | uint64_t fragment_id, | ||
448 | uint64_t flags) | ||
449 | { | ||
450 | return NULL; | ||
451 | } | ||
452 | |||
453 | |||
454 | /** | ||
455 | * Request a message fr to be replayed. | ||
456 | * | ||
457 | * Useful if messages below the @e max_known_fragment_id given when joining are | ||
458 | * needed and not known to the client. | ||
459 | * | ||
460 | * @param member Membership handle. | ||
461 | * @param fragment_id ID of a message fragment that this client would like to | ||
462 | see replayed. | ||
463 | * @param message_id ID of a message that this client would like to see | ||
464 | * replayed. Typically only one of the @a fragment_id and @a message_id | ||
465 | * is given. Specifying a @a message_id would return the last fragment | ||
466 | * of the message, which allows requesting the preceding fragments of the | ||
467 | * message by looking at the @e fragment_delta header field. | ||
468 | * @param flags Additional flags for the replay request. It is used & defined | ||
469 | * by the replay callback. E.g. the PSYC service would use this to | ||
470 | * implement state synchronization. | ||
471 | * @param result_cb Function to be called for the replayed message. | ||
472 | * @param result_cb_cls Closure for @a message_cb. | ||
473 | * @return Replay request handle, NULL on error. | ||
474 | */ | ||
475 | struct GNUNET_MULTICAST_MemberReplayHandle * | ||
476 | GNUNET_MULTICAST_member_replay_message (struct GNUNET_MULTICAST_Member *member, | ||
477 | uint64_t message_id, | ||
478 | uint64_t fragment_offset, | ||
479 | uint64_t flags, | ||
480 | GNUNET_MULTICAST_ResultCallback result_cb, | ||
481 | void *result_cb_cls) | ||
482 | { | ||
483 | return NULL; | ||
484 | } | ||
485 | |||
486 | |||
487 | /** | ||
488 | * Cancel a replay request. | ||
489 | * | ||
490 | * @param rh Request to cancel. | ||
491 | */ | ||
492 | void | ||
493 | GNUNET_MULTICAST_member_replay_cancel (struct GNUNET_MULTICAST_MemberReplayHandle *rh) | ||
494 | { | ||
495 | } | ||
496 | |||
497 | |||
498 | /** | ||
499 | * Part a multicast group. | ||
500 | * | ||
501 | * Disconnects from all group members and invalidates the @a member handle. | ||
502 | * | ||
503 | * An application-dependent part message can be transmitted beforehand using | ||
504 | * #GNUNET_MULTICAST_member_to_origin()) | ||
505 | * | ||
506 | * @param member Membership handle. | ||
507 | */ | ||
508 | void | ||
509 | GNUNET_MULTICAST_member_part (struct GNUNET_MULTICAST_Member *member) | ||
510 | { | ||
511 | } | ||
512 | |||
513 | |||
514 | /** | ||
515 | * Handle for a message to be delivered from a member to the origin. | ||
516 | */ | ||
517 | struct GNUNET_MULTICAST_MemberRequestHandle | ||
518 | { | ||
519 | }; | ||
520 | |||
521 | |||
522 | /** | ||
523 | * Send a message to the origin of the multicast group. | ||
524 | * | ||
525 | * @param member Membership handle. | ||
526 | * @param message_id Application layer ID for the message. Opaque to multicast. | ||
527 | * @param size Number of bytes we want to send to origin. | ||
528 | * @param notify Callback to call to get the message. | ||
529 | * @param notify_cls Closure for @a notify. | ||
530 | * @return Handle to cancel request, NULL on error (i.e. request already pending). | ||
531 | */ | ||
532 | struct GNUNET_MULTICAST_MemberRequestHandle * | ||
533 | GNUNET_MULTICAST_member_to_origin (struct GNUNET_MULTICAST_Member *member, | ||
534 | uint64_t message_id, | ||
535 | size_t size, | ||
536 | GNUNET_MULTICAST_MemberTransmitNotify notify, | ||
537 | void *notify_cls) | ||
538 | { | ||
539 | return NULL; | ||
540 | } | ||
541 | |||
542 | |||
543 | /** | ||
544 | * Cancel request for message transmission to origin. | ||
545 | * | ||
546 | * @param rh Request to cancel. | ||
547 | */ | ||
548 | void | ||
549 | GNUNET_MULTICAST_member_to_origin_cancel (struct GNUNET_MULTICAST_MemberRequestHandle *rh) | ||
550 | { | ||
551 | } | ||
552 | |||
553 | |||
554 | /* end of multicast_api.c */ | ||
diff --git a/src/multicast/test_multicast_api.c b/src/multicast/test_multicast_api.c new file mode 100644 index 000000000..1c51b52f1 --- /dev/null +++ b/src/multicast/test_multicast_api.c | |||
@@ -0,0 +1,44 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | (C) 2009 Christian Grothoff (and other contributing authors) | ||
4 | |||
5 | GNUnet is free software; you can redistribute it and/or modify | ||
6 | it under the terms of the GNU General Public License as published | ||
7 | by the Free Software Foundation; either version 3, or (at your | ||
8 | option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU General Public License | ||
16 | along with GNUnet; see the file COPYING. If not, write to the | ||
17 | Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
18 | Boston, MA 02111-1307, USA. | ||
19 | */ | ||
20 | /** | ||
21 | * @file multicast/test_multicast_api.c | ||
22 | * @brief testcase for multicast.c | ||
23 | */ | ||
24 | #include "platform.h" | ||
25 | #include "gnunet_common.h" | ||
26 | |||
27 | |||
28 | static int | ||
29 | check () | ||
30 | { | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | int | ||
35 | main (int argc, char *argv[]) | ||
36 | { | ||
37 | int ret; | ||
38 | |||
39 | ret = check (); | ||
40 | |||
41 | return ret; | ||
42 | } | ||
43 | |||
44 | /* end of test_multicast_api.c */ | ||