diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/capnproto-git-20161025/c++/Makefile.am	Tue Oct 25 11:17:01 2016 +0100
@@ -0,0 +1,465 @@
+## Process this file with automake to produce Makefile.in
+
+ACLOCAL_AMFLAGS = -I m4
+
+AUTOMAKE_OPTIONS = foreign subdir-objects
+
+# When running distcheck, verify that we've included all the files needed by
+# the cmake build.
+distcheck-hook:
+	rm -rf distcheck-cmake
+	(mkdir distcheck-cmake && cd distcheck-cmake && cmake ../$(distdir) && make -j6 check)
+	rm -rf distcheck-cmake
+
+AM_CXXFLAGS = -I$(srcdir)/src -I$(builddir)/src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR='"$(includedir)"' $(PTHREAD_CFLAGS)
+
+AM_LDFLAGS = $(PTHREAD_CFLAGS)
+
+EXTRA_DIST =                                                                 \
+  README.txt                                                                 \
+  LICENSE.txt                                                                \
+  $(test_capnpc_inputs)                                                      \
+  src/capnp/compiler/capnp-test.sh                                           \
+  src/capnp/testdata/segmented-packed                                        \
+  src/capnp/testdata/errors.capnp.nobuild                                    \
+  src/capnp/testdata/short.txt                                               \
+  src/capnp/testdata/flat                                                    \
+  src/capnp/testdata/binary                                                  \
+  src/capnp/testdata/errors.txt                                              \
+  src/capnp/testdata/segmented                                               \
+  src/capnp/testdata/packed                                                  \
+  src/capnp/testdata/pretty.txt                                              \
+  CMakeLists.txt                                                             \
+  cmake/FindCapnProto.cmake                                                  \
+  src/CMakeLists.txt                                                         \
+  src/kj/CMakeLists.txt                                                      \
+  src/capnp/CMakeLists.txt
+
+CLEANFILES = $(test_capnpc_outputs) test_capnpc_middleman distcheck-cmake
+
+# Deletes all the files generated by autoreconf.
+MAINTAINERCLEANFILES =   \
+  aclocal.m4             \
+  config.guess           \
+  config.sub             \
+  configure              \
+  depcomp                \
+  install-sh             \
+  ltmain.sh              \
+  Makefile.in            \
+  missing                \
+  mkinstalldirs          \
+  config.h.in            \
+  stamp.h.in             \
+  m4/ltsugar.m4          \
+  m4/libtool.m4          \
+  m4/ltversion.m4        \
+  m4/lt~obsolete.m4      \
+  m4/ltoptions.m4
+
+maintainer-clean-local:
+	-rm -rf build-aux
+
+# gmake defines an implicit rule building n from n.o.  Unfortunately, this triggers on our .capnp
+# files because they generate .capnp.c++ which is compiled to .capnp.o.  In addition to being
+# nonsense, this leads to cyclic dependency issues and could even cause the .capnp files to be
+# unexpectedly overwritten!  We need to cancel the implicit rule by declaring an explicit one.
+#
+# I want the hours of my life back that I spent figuring this out.
+%.capnp:
+	@:
+
+public_capnpc_inputs =                                         \
+  src/capnp/c++.capnp                                          \
+  src/capnp/schema.capnp                                       \
+  src/capnp/rpc.capnp                                          \
+  src/capnp/rpc-twoparty.capnp                                 \
+  src/capnp/persistent.capnp                                   \
+  src/capnp/compat/json.capnp
+
+capnpc_inputs =                                                \
+  $(public_capnpc_inputs)                                      \
+  src/capnp/compiler/lexer.capnp                               \
+  src/capnp/compiler/grammar.capnp
+
+capnpc_outputs =                                               \
+  src/capnp/c++.capnp.c++                                      \
+  src/capnp/c++.capnp.h                                        \
+  src/capnp/schema.capnp.c++                                   \
+  src/capnp/schema.capnp.h                                     \
+  src/capnp/rpc.capnp.c++                                      \
+  src/capnp/rpc.capnp.h                                        \
+  src/capnp/rpc-twoparty.capnp.c++                             \
+  src/capnp/rpc-twoparty.capnp.h                               \
+  src/capnp/persistent.capnp.c++                               \
+  src/capnp/persistent.capnp.h                                 \
+  src/capnp/compat/json.capnp.h                                \
+  src/capnp/compat/json.capnp.c++                              \
+  src/capnp/compiler/lexer.capnp.c++                           \
+  src/capnp/compiler/lexer.capnp.h                             \
+  src/capnp/compiler/grammar.capnp.c++                         \
+  src/capnp/compiler/grammar.capnp.h
+
+includecapnpdir = $(includedir)/capnp
+includecapnpcompatdir = $(includecapnpdir)/compat
+includekjdir = $(includedir)/kj
+includekjparsedir = $(includekjdir)/parse
+includekjstddir = $(includekjdir)/std
+includekjcompatdir = $(includekjdir)/compat
+
+dist_includecapnp_DATA = $(public_capnpc_inputs)
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = capnp.pc capnp-rpc.pc kj.pc kj-async.pc
+
+noinst_HEADERS = \
+  src/kj/miniposix.h
+
+includekj_HEADERS =                                            \
+  src/kj/common.h                                              \
+  src/kj/units.h                                               \
+  src/kj/memory.h                                              \
+  src/kj/refcount.h                                            \
+  src/kj/array.h                                               \
+  src/kj/vector.h                                              \
+  src/kj/string.h                                              \
+  src/kj/string-tree.h                                         \
+  src/kj/exception.h                                           \
+  src/kj/debug.h                                               \
+  src/kj/arena.h                                               \
+  src/kj/io.h                                                  \
+  src/kj/tuple.h                                               \
+  src/kj/one-of.h                                              \
+  src/kj/function.h                                            \
+  src/kj/mutex.h                                               \
+  src/kj/thread.h                                              \
+  src/kj/threadlocal.h                                         \
+  src/kj/async-prelude.h                                       \
+  src/kj/async.h                                               \
+  src/kj/async-inl.h                                           \
+  src/kj/time.h                                                \
+  src/kj/async-unix.h                                          \
+  src/kj/async-io.h                                            \
+  src/kj/main.h                                                \
+  src/kj/test.h                                                \
+  src/kj/windows-sanity.h
+
+includekjparse_HEADERS =                                       \
+  src/kj/parse/common.h                                        \
+  src/kj/parse/char.h
+
+includekjstd_HEADERS =                                         \
+  src/kj/std/iostream.h
+
+includekjcompat_HEADERS =                                      \
+  src/kj/compat/gtest.h
+
+includecapnp_HEADERS =                                         \
+  src/capnp/c++.capnp.h                                        \
+  src/capnp/common.h                                           \
+  src/capnp/blob.h                                             \
+  src/capnp/endian.h                                           \
+  src/capnp/layout.h                                           \
+  src/capnp/orphan.h                                           \
+  src/capnp/list.h                                             \
+  src/capnp/any.h                                              \
+  src/capnp/message.h                                          \
+  src/capnp/capability.h                                       \
+  src/capnp/membrane.h                                         \
+  src/capnp/schema.capnp.h                                     \
+  src/capnp/schema-lite.h                                      \
+  src/capnp/schema.h                                           \
+  src/capnp/schema-loader.h                                    \
+  src/capnp/schema-parser.h                                    \
+  src/capnp/dynamic.h                                          \
+  src/capnp/pretty-print.h                                     \
+  src/capnp/serialize.h                                        \
+  src/capnp/serialize-async.h                                  \
+  src/capnp/serialize-packed.h                                 \
+  src/capnp/serialize-text.h                                   \
+  src/capnp/pointer-helpers.h                                  \
+  src/capnp/generated-header-support.h                         \
+  src/capnp/rpc-prelude.h                                      \
+  src/capnp/rpc.h                                              \
+  src/capnp/rpc-twoparty.h                                     \
+  src/capnp/rpc.capnp.h                                        \
+  src/capnp/rpc-twoparty.capnp.h                               \
+  src/capnp/persistent.capnp.h                                 \
+  src/capnp/ez-rpc.h
+
+includecapnpcompat_HEADERS =                                   \
+  src/capnp/compat/json.h                                      \
+  src/capnp/compat/json.capnp.h
+
+if LITE_MODE
+lib_LTLIBRARIES = libkj.la libkj-test.la libcapnp.la
+else
+lib_LTLIBRARIES = libkj.la libkj-test.la libkj-async.la libcapnp.la libcapnp-rpc.la libcapnp-json.la libcapnpc.la
+endif
+
+# Don't include security release in soname -- we want to replace old binaries
+# in this case.
+SO_VERSION = $(shell echo $(VERSION) | sed -e 's/^\([0-9]*[.][0-9]*[.][0-9]*\)\([.][0-9]*\)*\(-.*\)*$$/\1\3/g')
+
+libkj_la_LIBADD = $(PTHREAD_LIBS)
+libkj_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libkj_la_SOURCES=                                              \
+  src/kj/common.c++                                            \
+  src/kj/units.c++                                             \
+  src/kj/memory.c++                                            \
+  src/kj/refcount.c++                                          \
+  src/kj/array.c++                                             \
+  src/kj/string.c++                                            \
+  src/kj/string-tree.c++                                       \
+  src/kj/exception.c++                                         \
+  src/kj/debug.c++                                             \
+  src/kj/arena.c++                                             \
+  src/kj/io.c++                                                \
+  src/kj/mutex.c++                                             \
+  src/kj/thread.c++                                            \
+  src/kj/main.c++                                              \
+  src/kj/parse/char.c++
+
+libkj_test_la_LIBADD = libkj.la $(PTHREAD_LIBS)
+libkj_test_la_LDFLAGS = -release $(VERSION) -no-undefined
+libkj_test_la_SOURCES = src/kj/test.c++
+
+if !LITE_MODE
+libkj_async_la_LIBADD = libkj.la $(PTHREAD_LIBS)
+libkj_async_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libkj_async_la_SOURCES=                                        \
+  src/kj/async.c++                                             \
+  src/kj/async-unix.c++                                        \
+  src/kj/async-io.c++                                          \
+  src/kj/time.c++
+endif !LITE_MODE
+
+if !LITE_MODE
+heavy_sources =                                                \
+  src/capnp/schema.c++                                         \
+  src/capnp/schema-loader.c++                                  \
+  src/capnp/dynamic.c++                                        \
+  src/capnp/stringify.c++
+endif !LITE_MODE
+
+libcapnp_la_LIBADD = libkj.la $(PTHREAD_LIBS)
+libcapnp_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libcapnp_la_SOURCES=                                           \
+  src/capnp/c++.capnp.c++                                      \
+  src/capnp/blob.c++                                           \
+  src/capnp/arena.h                                            \
+  src/capnp/arena.c++                                          \
+  src/capnp/layout.c++                                         \
+  src/capnp/list.c++                                           \
+  src/capnp/any.c++                                            \
+  src/capnp/message.c++                                        \
+  src/capnp/schema.capnp.c++                                   \
+  src/capnp/serialize.c++                                      \
+  src/capnp/serialize-packed.c++                               \
+  $(heavy_sources)
+
+if !LITE_MODE
+
+libcapnp_rpc_la_LIBADD = libcapnp.la libkj-async.la libkj.la $(PTHREAD_LIBS)
+libcapnp_rpc_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libcapnp_rpc_la_SOURCES=                                       \
+  src/capnp/serialize-async.c++                                \
+  src/capnp/capability.c++                                     \
+  src/capnp/membrane.c++                                       \
+  src/capnp/dynamic-capability.c++                             \
+  src/capnp/rpc.c++                                            \
+  src/capnp/rpc.capnp.c++                                      \
+  src/capnp/rpc-twoparty.c++                                   \
+  src/capnp/rpc-twoparty.capnp.c++                             \
+  src/capnp/persistent.capnp.c++                               \
+  src/capnp/ez-rpc.c++
+
+libcapnp_json_la_LIBADD = libcapnp.la libkj-async.la libkj.la $(PTHREAD_LIBS)
+libcapnp_json_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libcapnp_json_la_SOURCES=                                      \
+  src/capnp/compat/json.c++                                    \
+  src/capnp/compat/json.capnp.c++
+
+libcapnpc_la_LIBADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
+libcapnpc_la_LDFLAGS = -release $(SO_VERSION) -no-undefined
+libcapnpc_la_SOURCES=                                          \
+  src/capnp/compiler/md5.h                                     \
+  src/capnp/compiler/md5.c++                                   \
+  src/capnp/compiler/error-reporter.h                          \
+  src/capnp/compiler/error-reporter.c++                        \
+  src/capnp/compiler/lexer.capnp.h                             \
+  src/capnp/compiler/lexer.capnp.c++                           \
+  src/capnp/compiler/lexer.h                                   \
+  src/capnp/compiler/lexer.c++                                 \
+  src/capnp/compiler/grammar.capnp.h                           \
+  src/capnp/compiler/grammar.capnp.c++                         \
+  src/capnp/compiler/parser.h                                  \
+  src/capnp/compiler/parser.c++                                \
+  src/capnp/compiler/node-translator.h                         \
+  src/capnp/compiler/node-translator.c++                       \
+  src/capnp/compiler/compiler.h                                \
+  src/capnp/compiler/compiler.c++                              \
+  src/capnp/schema-parser.c++                                  \
+  src/capnp/serialize-text.c++
+
+bin_PROGRAMS = capnp capnpc-capnp capnpc-c++
+
+capnp_LDADD = libcapnpc.la libcapnp.la libkj.la $(PTHREAD_LIBS)
+capnp_SOURCES =                                                \
+  src/capnp/compiler/module-loader.h                           \
+  src/capnp/compiler/module-loader.c++                         \
+  src/capnp/compiler/capnp.c++
+
+capnpc_capnp_LDADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
+capnpc_capnp_SOURCES = src/capnp/compiler/capnpc-capnp.c++
+
+capnpc_c___LDADD = libcapnp.la libkj.la $(PTHREAD_LIBS)
+capnpc_c___SOURCES = src/capnp/compiler/capnpc-c++.c++
+
+# Symlink capnpc -> capnp.  The capnp binary will behave like the old capnpc
+# binary (i.e. like "capnp compile") when invoked via this symlink.
+#
+# Also attempt to run ldconfig, because otherwise users get confused.  If
+# it fails (e.g. because the platform doesn't have it, or because the
+# user doesn't have root privileges), don't worry about it.
+install-exec-hook:
+	ln -sf capnp $(DESTDIR)$(bindir)/capnpc
+	ldconfig < /dev/null > /dev/null 2>&1 || true
+
+uninstall-hook:
+	rm -f $(DESTDIR)$(bindir)/capnpc
+
+else LITE_MODE
+
+install-exec-hook:
+	ldconfig < /dev/null > /dev/null 2>&1 || true
+
+endif LITE_MODE
+
+# Source files intentionally not included in the dist at this time:
+#  src/capnp/serialize-snappy*
+#  src/capnp/benchmark/...
+#  src/capnp/compiler/...
+
+# Tests ==============================================================
+
+test_capnpc_inputs =                                           \
+  src/capnp/test.capnp                                         \
+  src/capnp/test-import.capnp                                  \
+  src/capnp/test-import2.capnp
+
+test_capnpc_outputs =                                          \
+  src/capnp/test.capnp.c++                                     \
+  src/capnp/test.capnp.h                                       \
+  src/capnp/test-import.capnp.c++                              \
+  src/capnp/test-import.capnp.h                                \
+  src/capnp/test-import2.capnp.c++                             \
+  src/capnp/test-import2.capnp.h
+
+if USE_EXTERNAL_CAPNP
+
+test_capnpc_middleman: $(test_capnpc_inputs)
+	$(CAPNP) compile --src-prefix=$(srcdir)/src -o$(CAPNPC_CXX):src -I$(srcdir)/src $^
+	touch test_capnpc_middleman
+
+else
+
+test_capnpc_middleman: capnp$(EXEEXT) capnpc-c++$(EXEEXT) $(test_capnpc_inputs)
+	echo $^ | (read CAPNP CAPNPC_CXX SOURCES && ./$$CAPNP compile --src-prefix=$(srcdir)/src -o./$$CAPNPC_CXX:src -I$(srcdir)/src $$SOURCES)
+	touch test_capnpc_middleman
+
+endif
+
+$(test_capnpc_outputs): test_capnpc_middleman
+
+BUILT_SOURCES = $(test_capnpc_outputs)
+
+if LITE_MODE
+
+check_PROGRAMS = capnp-test
+compiler_tests =
+capnp_test_LDADD = libcapnp.la libkj-test.la libkj.la
+
+else !LITE_MODE
+
+check_PROGRAMS = capnp-test capnp-evolution-test
+heavy_tests =                                                  \
+  src/kj/async-test.c++                                        \
+  src/kj/async-unix-test.c++                                   \
+  src/kj/async-io-test.c++                                     \
+  src/kj/parse/common-test.c++                                 \
+  src/kj/parse/char-test.c++                                   \
+  src/kj/std/iostream-test.c++                                 \
+  src/capnp/capability-test.c++                                \
+  src/capnp/membrane-test.c++                                  \
+  src/capnp/schema-test.c++                                    \
+  src/capnp/schema-loader-test.c++                             \
+  src/capnp/schema-parser-test.c++                             \
+  src/capnp/dynamic-test.c++                                   \
+  src/capnp/stringify-test.c++                                 \
+  src/capnp/serialize-async-test.c++                           \
+  src/capnp/serialize-text-test.c++                            \
+  src/capnp/rpc-test.c++                                       \
+  src/capnp/rpc-twoparty-test.c++                              \
+  src/capnp/ez-rpc-test.c++                                    \
+  src/capnp/compat/json-test.c++                               \
+  src/capnp/compiler/lexer-test.c++                            \
+  src/capnp/compiler/md5-test.c++
+capnp_test_LDADD = libcapnpc.la                                \
+  libcapnp-rpc.la                                              \
+  libcapnp-json.la                                             \
+  libcapnp.la                                                  \
+  libkj-async.la                                               \
+  libkj-test.la                                                \
+  libkj.la
+
+endif !LITE_MODE
+
+capnp_test_CPPFLAGS = -Wno-deprecated-declarations
+capnp_test_SOURCES =                                           \
+  src/kj/common-test.c++                                       \
+  src/kj/memory-test.c++                                       \
+  src/kj/refcount-test.c++                                     \
+  src/kj/array-test.c++                                        \
+  src/kj/string-test.c++                                       \
+  src/kj/string-tree-test.c++                                  \
+  src/kj/exception-test.c++                                    \
+  src/kj/debug-test.c++                                        \
+  src/kj/arena-test.c++                                        \
+  src/kj/units-test.c++                                        \
+  src/kj/tuple-test.c++                                        \
+  src/kj/one-of-test.c++                                       \
+  src/kj/function-test.c++                                     \
+  src/kj/io-test.c++                                           \
+  src/kj/mutex-test.c++                                        \
+  src/kj/threadlocal-test.c++                                  \
+  src/kj/threadlocal-pthread-test.c++                          \
+  src/kj/test-test.c++                                         \
+  src/capnp/common-test.c++                                    \
+  src/capnp/blob-test.c++                                      \
+  src/capnp/endian-test.c++                                    \
+  src/capnp/endian-fallback-test.c++                           \
+  src/capnp/endian-reverse-test.c++                            \
+  src/capnp/layout-test.c++                                    \
+  src/capnp/any-test.c++                                       \
+  src/capnp/message-test.c++                                   \
+  src/capnp/encoding-test.c++                                  \
+  src/capnp/orphan-test.c++                                    \
+  src/capnp/serialize-test.c++                                 \
+  src/capnp/serialize-packed-test.c++                          \
+  src/capnp/fuzz-test.c++                                      \
+  src/capnp/test-util.c++                                      \
+  src/capnp/test-util.h                                        \
+  $(heavy_tests)
+nodist_capnp_test_SOURCES = $(test_capnpc_outputs)
+
+if !LITE_MODE
+capnp_evolution_test_LDADD = libcapnpc.la libcapnp.la libkj.la
+capnp_evolution_test_SOURCES = src/capnp/compiler/evolution-test.c++
+endif !LITE_MODE
+
+if LITE_MODE
+TESTS = capnp-test
+else !LITE_MODE
+TESTS = capnp-test capnp-evolution-test src/capnp/compiler/capnp-test.sh
+endif !LITE_MODE