comparison src/capnproto-git-20161025/c++/Makefile.am @ 48:9530b331f8c1

Add Cap'n Proto source
author Chris Cannam <cannam@all-day-breakfast.com>
date Tue, 25 Oct 2016 11:17:01 +0100
parents
children
comparison
equal deleted inserted replaced
47:d93140aac40b 48:9530b331f8c1
1 ## Process this file with automake to produce Makefile.in
2
3 ACLOCAL_AMFLAGS = -I m4
4
5 AUTOMAKE_OPTIONS = foreign subdir-objects
6
7 # When running distcheck, verify that we've included all the files needed by
8 # the cmake build.
9 distcheck-hook:
10 rm -rf distcheck-cmake
11 (mkdir distcheck-cmake && cd distcheck-cmake && cmake ../$(distdir) && make -j6 check)
12 rm -rf distcheck-cmake
13
14 AM_CXXFLAGS = -I$(srcdir)/src -I$(builddir)/src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR='"$(includedir)"' $(PTHREAD_CFLAGS)
15
16 AM_LDFLAGS = $(PTHREAD_CFLAGS)
17
18 EXTRA_DIST = \
19 README.txt \
20 LICENSE.txt \
21 $(test_capnpc_inputs) \
22 src/capnp/compiler/capnp-test.sh \
23 src/capnp/testdata/segmented-packed \
24 src/capnp/testdata/errors.capnp.nobuild \
25 src/capnp/testdata/short.txt \
26 src/capnp/testdata/flat \
27 src/capnp/testdata/binary \
28 src/capnp/testdata/errors.txt \
29 src/capnp/testdata/segmented \
30 src/capnp/testdata/packed \
31 src/capnp/testdata/pretty.txt \
32 CMakeLists.txt \
33 cmake/FindCapnProto.cmake \
34 src/CMakeLists.txt \
35 src/kj/CMakeLists.txt \
36 src/capnp/CMakeLists.txt
37
38 CLEANFILES = $(test_capnpc_outputs) test_capnpc_middleman distcheck-cmake
39
40 # Deletes all the files generated by autoreconf.
41 MAINTAINERCLEANFILES = \
42 aclocal.m4 \
43 config.guess \
44 config.sub \
45 configure \
46 depcomp \
47 install-sh \
48 ltmain.sh \
49 Makefile.in \
50 missing \
51 mkinstalldirs \
52 config.h.in \
53 stamp.h.in \
54 m4/ltsugar.m4 \
55 m4/libtool.m4 \
56 m4/ltversion.m4 \
57 m4/lt~obsolete.m4 \
58 m4/ltoptions.m4
59
60 maintainer-clean-local:
61 -rm -rf build-aux
62
63 # gmake defines an implicit rule building n from n.o. Unfortunately, this triggers on our .capnp
64 # files because they generate .capnp.c++ which is compiled to .capnp.o. In addition to being
65 # nonsense, this leads to cyclic dependency issues and could even cause the .capnp files to be
66 # unexpectedly overwritten! We need to cancel the implicit rule by declaring an explicit one.
67 #
68 # I want the hours of my life back that I spent figuring this out.
69 %.capnp:
70 @:
71
72 public_capnpc_inputs = \
73 src/capnp/c++.capnp \
74 src/capnp/schema.capnp \
75 src/capnp/rpc.capnp \
76 src/capnp/rpc-twoparty.capnp \
77 src/capnp/persistent.capnp \
78 src/capnp/compat/json.capnp
79
80 capnpc_inputs = \
81 $(public_capnpc_inputs) \
82 src/capnp/compiler/lexer.capnp \
83 src/capnp/compiler/grammar.capnp
84
85 capnpc_outputs = \
86 src/capnp/c++.capnp.c++ \
87 src/capnp/c++.capnp.h \
88 src/capnp/schema.capnp.c++ \
89 src/capnp/schema.capnp.h \
90 src/capnp/rpc.capnp.c++ \
91 src/capnp/rpc.capnp.h \
92 src/capnp/rpc-twoparty.capnp.c++ \
93 src/capnp/rpc-twoparty.capnp.h \
94 src/capnp/persistent.capnp.c++ \
95 src/capnp/persistent.capnp.h \
96 src/capnp/compat/json.capnp.h \
97 src/capnp/compat/json.capnp.c++ \
98 src/capnp/compiler/lexer.capnp.c++ \
99 src/capnp/compiler/lexer.capnp.h \
100 src/capnp/compiler/grammar.capnp.c++ \
101 src/capnp/compiler/grammar.capnp.h
102
103 includecapnpdir = $(includedir)/capnp
104 includecapnpcompatdir = $(includecapnpdir)/compat
105 includekjdir = $(includedir)/kj
106 includekjparsedir = $(includekjdir)/parse
107 includekjstddir = $(includekjdir)/std
108 includekjcompatdir = $(includekjdir)/compat
109
110 dist_includecapnp_DATA = $(public_capnpc_inputs)
111
112 pkgconfigdir = $(libdir)/pkgconfig
113 pkgconfig_DATA = capnp.pc capnp-rpc.pc kj.pc kj-async.pc
114
115 noinst_HEADERS = \
116 src/kj/miniposix.h
117
118 includekj_HEADERS = \
119 src/kj/common.h \
120 src/kj/units.h \
121 src/kj/memory.h \
122 src/kj/refcount.h \
123 src/kj/array.h \
124 src/kj/vector.h \
125 src/kj/string.h \
126 src/kj/string-tree.h \
127 src/kj/exception.h \
128 src/kj/debug.h \
129 src/kj/arena.h \
130 src/kj/io.h \
131 src/kj/tuple.h \
132 src/kj/one-of.h \
133 src/kj/function.h \
134 src/kj/mutex.h \
135 src/kj/thread.h \
136 src/kj/threadlocal.h \
137 src/kj/async-prelude.h \
138 src/kj/async.h \
139 src/kj/async-inl.h \
140 src/kj/time.h \
141 src/kj/async-unix.h \
142 src/kj/async-io.h \
143 src/kj/main.h \
144 src/kj/test.h \
145 src/kj/windows-sanity.h
146
147 includekjparse_HEADERS = \
148 src/kj/parse/common.h \
149 src/kj/parse/char.h
150
151 includekjstd_HEADERS = \
152 src/kj/std/iostream.h
153
154 includekjcompat_HEADERS = \
155 src/kj/compat/gtest.h
156
157 includecapnp_HEADERS = \
158 src/capnp/c++.capnp.h \
159 src/capnp/common.h \
160 src/capnp/blob.h \
161 src/capnp/endian.h \
162 src/capnp/layout.h \
163 src/capnp/orphan.h \
164 src/capnp/list.h \
165 src/capnp/any.h \
166 src/capnp/message.h \
167 src/capnp/capability.h \
168 src/capnp/membrane.h \
169 src/capnp/schema.capnp.h \
170 src/capnp/schema-lite.h \
171 src/capnp/schema.h \
172 src/capnp/schema-loader.h \
173 src/capnp/schema-parser.h \
174 src/capnp/dynamic.h \
175 src/capnp/pretty-print.h \
176 src/capnp/serialize.h \
177 src/capnp/serialize-async.h \
178 src/capnp/serialize-packed.h \
179 src/capnp/serialize-text.h \
180 src/capnp/pointer-helpers.h \
181 src/capnp/generated-header-support.h \
182 src/capnp/rpc-prelude.h \
183 src/capnp/rpc.h \
184 src/capnp/rpc-twoparty.h \
185 src/capnp/rpc.capnp.h \
186 src/capnp/rpc-twoparty.capnp.h \
187 src/capnp/persistent.capnp.h \
188 src/capnp/ez-rpc.h
189
190 includecapnpcompat_HEADERS = \
191 src/capnp/compat/json.h \
192 src/capnp/compat/json.capnp.h
193
194 if LITE_MODE
195 lib_LTLIBRARIES = libkj.la libkj-test.la libcapnp.la
196 else
197 lib_LTLIBRARIES = libkj.la libkj-test.la libkj-async.la libcapnp.la libcapnp-rpc.la libcapnp-json.la libcapnpc.la
198 endif
199
200 # Don't include security release in soname -- we want to replace old binaries
201 # in this case.
202 SO_VERSION = $(shell echo $(VERSION) | sed -e 's/^\([0-9]*[.][0-9]*[.][0-9]*\)\([.][0-9]*\)*\(-.*\)*$$/\1\3/g')
203
204 libkj_la_LIBADD = $(PTHREAD_LIBS)
205 libkj_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
206 libkj_la_SOURCES= \
207 src/kj/common.c++ \
208 src/kj/units.c++ \
209 src/kj/memory.c++ \
210 src/kj/refcount.c++ \
211 src/kj/array.c++ \
212 src/kj/string.c++ \
213 src/kj/string-tree.c++ \
214 src/kj/exception.c++ \
215 src/kj/debug.c++ \
216 src/kj/arena.c++ \
217 src/kj/io.c++ \
218 src/kj/mutex.c++ \
219 src/kj/thread.c++ \
220 src/kj/main.c++ \
221 src/kj/parse/char.c++
222
223 libkj_test_la_LIBADD = libkj.la $(PTHREAD_LIBS)
224 libkj_test_la_LDFLAGS = -release $(VERSION) -no-undefined
225 libkj_test_la_SOURCES = src/kj/test.c++
226
227 if !LITE_MODE
228 libkj_async_la_LIBADD = libkj.la $(PTHREAD_LIBS)
229 libkj_async_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
230 libkj_async_la_SOURCES= \
231 src/kj/async.c++ \
232 src/kj/async-unix.c++ \
233 src/kj/async-io.c++ \
234 src/kj/time.c++
235 endif !LITE_MODE
236
237 if !LITE_MODE
238 heavy_sources = \
239 src/capnp/schema.c++ \
240 src/capnp/schema-loader.c++ \
241 src/capnp/dynamic.c++ \
242 src/capnp/stringify.c++
243 endif !LITE_MODE
244
245 libcapnp_la_LIBADD = libkj.la $(PTHREAD_LIBS)
246 libcapnp_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
247 libcapnp_la_SOURCES= \
248 src/capnp/c++.capnp.c++ \
249 src/capnp/blob.c++ \
250 src/capnp/arena.h \
251 src/capnp/arena.c++ \
252 src/capnp/layout.c++ \
253 src/capnp/list.c++ \
254 src/capnp/any.c++ \
255 src/capnp/message.c++ \
256 src/capnp/schema.capnp.c++ \
257 src/capnp/serialize.c++ \
258 src/capnp/serialize-packed.c++ \
259 $(heavy_sources)
260
261 if !LITE_MODE
262
263 libcapnp_rpc_la_LIBADD = libcapnp.la libkj-async.la libkj.la $(PTHREAD_LIBS)
264 libcapnp_rpc_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
265 libcapnp_rpc_la_SOURCES= \
266 src/capnp/serialize-async.c++ \
267 src/capnp/capability.c++ \
268 src/capnp/membrane.c++ \
269 src/capnp/dynamic-capability.c++ \
270 src/capnp/rpc.c++ \
271 src/capnp/rpc.capnp.c++ \
272 src/capnp/rpc-twoparty.c++ \
273 src/capnp/rpc-twoparty.capnp.c++ \
274 src/capnp/persistent.capnp.c++ \
275 src/capnp/ez-rpc.c++
276
277 libcapnp_json_la_LIBADD = libcapnp.la libkj-async.la libkj.la $(PTHREAD_LIBS)
278 libcapnp_json_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
279 libcapnp_json_la_SOURCES= \
280 src/capnp/compat/json.c++ \
281 src/capnp/compat/json.capnp.c++
282
283 libcapnpc_la_LIBADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
284 libcapnpc_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
285 libcapnpc_la_SOURCES= \
286 src/capnp/compiler/md5.h \
287 src/capnp/compiler/md5.c++ \
288 src/capnp/compiler/error-reporter.h \
289 src/capnp/compiler/error-reporter.c++ \
290 src/capnp/compiler/lexer.capnp.h \
291 src/capnp/compiler/lexer.capnp.c++ \
292 src/capnp/compiler/lexer.h \
293 src/capnp/compiler/lexer.c++ \
294 src/capnp/compiler/grammar.capnp.h \
295 src/capnp/compiler/grammar.capnp.c++ \
296 src/capnp/compiler/parser.h \
297 src/capnp/compiler/parser.c++ \
298 src/capnp/compiler/node-translator.h \
299 src/capnp/compiler/node-translator.c++ \
300 src/capnp/compiler/compiler.h \
301 src/capnp/compiler/compiler.c++ \
302 src/capnp/schema-parser.c++ \
303 src/capnp/serialize-text.c++
304
305 bin_PROGRAMS = capnp capnpc-capnp capnpc-c++
306
307 capnp_LDADD = libcapnpc.la libcapnp.la libkj.la $(PTHREAD_LIBS)
308 capnp_SOURCES = \
309 src/capnp/compiler/module-loader.h \
310 src/capnp/compiler/module-loader.c++ \
311 src/capnp/compiler/capnp.c++
312
313 capnpc_capnp_LDADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
314 capnpc_capnp_SOURCES = src/capnp/compiler/capnpc-capnp.c++
315
316 capnpc_c___LDADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
317 capnpc_c___SOURCES = src/capnp/compiler/capnpc-c++.c++
318
319 # Symlink capnpc -> capnp. The capnp binary will behave like the old capnpc
320 # binary (i.e. like "capnp compile") when invoked via this symlink.
321 #
322 # Also attempt to run ldconfig, because otherwise users get confused. If
323 # it fails (e.g. because the platform doesn't have it, or because the
324 # user doesn't have root privileges), don't worry about it.
325 install-exec-hook:
326 ln -sf capnp $(DESTDIR)$(bindir)/capnpc
327 ldconfig < /dev/null > /dev/null 2>&1 || true
328
329 uninstall-hook:
330 rm -f $(DESTDIR)$(bindir)/capnpc
331
332 else LITE_MODE
333
334 install-exec-hook:
335 ldconfig < /dev/null > /dev/null 2>&1 || true
336
337 endif LITE_MODE
338
339 # Source files intentionally not included in the dist at this time:
340 # src/capnp/serialize-snappy*
341 # src/capnp/benchmark/...
342 # src/capnp/compiler/...
343
344 # Tests ==============================================================
345
346 test_capnpc_inputs = \
347 src/capnp/test.capnp \
348 src/capnp/test-import.capnp \
349 src/capnp/test-import2.capnp
350
351 test_capnpc_outputs = \
352 src/capnp/test.capnp.c++ \
353 src/capnp/test.capnp.h \
354 src/capnp/test-import.capnp.c++ \
355 src/capnp/test-import.capnp.h \
356 src/capnp/test-import2.capnp.c++ \
357 src/capnp/test-import2.capnp.h
358
359 if USE_EXTERNAL_CAPNP
360
361 test_capnpc_middleman: $(test_capnpc_inputs)
362 $(CAPNP) compile --src-prefix=$(srcdir)/src -o$(CAPNPC_CXX):src -I$(srcdir)/src $^
363 touch test_capnpc_middleman
364
365 else
366
367 test_capnpc_middleman: capnp$(EXEEXT) capnpc-c++$(EXEEXT) $(test_capnpc_inputs)
368 echo $^ | (read CAPNP CAPNPC_CXX SOURCES && ./$$CAPNP compile --src-prefix=$(srcdir)/src -o./$$CAPNPC_CXX:src -I$(srcdir)/src $$SOURCES)
369 touch test_capnpc_middleman
370
371 endif
372
373 $(test_capnpc_outputs): test_capnpc_middleman
374
375 BUILT_SOURCES = $(test_capnpc_outputs)
376
377 if LITE_MODE
378
379 check_PROGRAMS = capnp-test
380 compiler_tests =
381 capnp_test_LDADD = libcapnp.la libkj-test.la libkj.la
382
383 else !LITE_MODE
384
385 check_PROGRAMS = capnp-test capnp-evolution-test
386 heavy_tests = \
387 src/kj/async-test.c++ \
388 src/kj/async-unix-test.c++ \
389 src/kj/async-io-test.c++ \
390 src/kj/parse/common-test.c++ \
391 src/kj/parse/char-test.c++ \
392 src/kj/std/iostream-test.c++ \
393 src/capnp/capability-test.c++ \
394 src/capnp/membrane-test.c++ \
395 src/capnp/schema-test.c++ \
396 src/capnp/schema-loader-test.c++ \
397 src/capnp/schema-parser-test.c++ \
398 src/capnp/dynamic-test.c++ \
399 src/capnp/stringify-test.c++ \
400 src/capnp/serialize-async-test.c++ \
401 src/capnp/serialize-text-test.c++ \
402 src/capnp/rpc-test.c++ \
403 src/capnp/rpc-twoparty-test.c++ \
404 src/capnp/ez-rpc-test.c++ \
405 src/capnp/compat/json-test.c++ \
406 src/capnp/compiler/lexer-test.c++ \
407 src/capnp/compiler/md5-test.c++
408 capnp_test_LDADD = libcapnpc.la \
409 libcapnp-rpc.la \
410 libcapnp-json.la \
411 libcapnp.la \
412 libkj-async.la \
413 libkj-test.la \
414 libkj.la
415
416 endif !LITE_MODE
417
418 capnp_test_CPPFLAGS = -Wno-deprecated-declarations
419 capnp_test_SOURCES = \
420 src/kj/common-test.c++ \
421 src/kj/memory-test.c++ \
422 src/kj/refcount-test.c++ \
423 src/kj/array-test.c++ \
424 src/kj/string-test.c++ \
425 src/kj/string-tree-test.c++ \
426 src/kj/exception-test.c++ \
427 src/kj/debug-test.c++ \
428 src/kj/arena-test.c++ \
429 src/kj/units-test.c++ \
430 src/kj/tuple-test.c++ \
431 src/kj/one-of-test.c++ \
432 src/kj/function-test.c++ \
433 src/kj/io-test.c++ \
434 src/kj/mutex-test.c++ \
435 src/kj/threadlocal-test.c++ \
436 src/kj/threadlocal-pthread-test.c++ \
437 src/kj/test-test.c++ \
438 src/capnp/common-test.c++ \
439 src/capnp/blob-test.c++ \
440 src/capnp/endian-test.c++ \
441 src/capnp/endian-fallback-test.c++ \
442 src/capnp/endian-reverse-test.c++ \
443 src/capnp/layout-test.c++ \
444 src/capnp/any-test.c++ \
445 src/capnp/message-test.c++ \
446 src/capnp/encoding-test.c++ \
447 src/capnp/orphan-test.c++ \
448 src/capnp/serialize-test.c++ \
449 src/capnp/serialize-packed-test.c++ \
450 src/capnp/fuzz-test.c++ \
451 src/capnp/test-util.c++ \
452 src/capnp/test-util.h \
453 $(heavy_tests)
454 nodist_capnp_test_SOURCES = $(test_capnpc_outputs)
455
456 if !LITE_MODE
457 capnp_evolution_test_LDADD = libcapnpc.la libcapnp.la libkj.la
458 capnp_evolution_test_SOURCES = src/capnp/compiler/evolution-test.c++
459 endif !LITE_MODE
460
461 if LITE_MODE
462 TESTS = capnp-test
463 else !LITE_MODE
464 TESTS = capnp-test capnp-evolution-test src/capnp/compiler/capnp-test.sh
465 endif !LITE_MODE