diff options
Diffstat (limited to 'cpp/Makefile.am')
-rw-r--r-- | cpp/Makefile.am | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/cpp/Makefile.am b/cpp/Makefile.am new file mode 100644 index 0000000..0e6cdba --- /dev/null +++ b/cpp/Makefile.am @@ -0,0 +1,183 @@ +## Process this file with automake to produce Makefile.in + +# Make sure that when we re-make ./configure, we get the macros we need +ACLOCAL_AMFLAGS = -I m4 + +SUBDIRS = . + +DIST_SUBDIRS = src + +# This is so we can #include <package/foo> +AM_CPPFLAGS = -I$(top_srcdir)/src \ + -I$(top_srcdir)/tests \ + -I$(GTEST_DIR) -I$(GTEST_DIR)/include \ + -I$(GMOCK_DIR) -I$(GMOCK_DIR)/include + +# These are good warnings to turn on by default +if GCC +AM_CXXFLAGS = -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare +endif + +# The -no-undefined flag allows libtool to generate shared libraries for +# Cygwin and MinGW. LIBSTDCXX_LA_LINKER_FLAG is used to fix a Solaris bug. +# -version-info tells libtool what to put after the '.so' in the filename. +AM_LDFLAGS = -no-undefined $(LIBSTDCXX_LA_LINKER_FLAG) \ + -version-info @SO_VERSION@ + +# The libraries (.so's) to build and install. +lib_LTLIBRARIES = libpolo.la + +# Libraries that are built but not installed. +noinst_LTLIBRARIES = libgtest.la libgmock.la + +## The .h files you want to install (that is, .h files that people +## who install this package can include in their own applications.) + +polo_encoding_includedir = $(includedir)/polo/encoding +polo_encoding_include_HEADERS = \ + src/polo/encoding/encodingoption.h \ + src/polo/encoding/hexadecimalencoder.h \ + src/polo/encoding/secretencoder.h + +polo_pairing_includedir = $(includedir)/polo/pairing +polo_pairing_include_HEADERS = \ + src/polo/pairing/clientpairingsession.h \ + src/polo/pairing/pairingcontext.h \ + src/polo/pairing/pairinglistener.h \ + src/polo/pairing/pairingsession.h \ + src/polo/pairing/polochallengeresponse.h \ + src/polo/pairing/poloerror.h \ + src/polo/pairing/serverpairingsession.h + +polo_pairing_message_includedir = $(includedir)/polo/pairing/message +polo_pairing_message_include_HEADERS = \ + src/polo/pairing/message/configurationackmessage.h \ + src/polo/pairing/message/configurationmessage.h \ + src/polo/pairing/message/messagelistener.h \ + src/polo/pairing/message/optionsmessage.h \ + src/polo/pairing/message/pairingrequestackmessage.h \ + src/polo/pairing/message/pairingrequestmessage.h \ + src/polo/pairing/message/polomessage.h \ + src/polo/pairing/message/secretackmessage.h \ + src/polo/pairing/message/secretmessage.h + +polo_util_includedir = $(includedir)/polo/util +polo_util_include_HEADERS = \ + src/polo/util/certificateutil.h \ + src/polo/util/macros.h \ + src/polo/util/poloutil.h + +polo_wire_includedir = $(includedir)/polo/wire +polo_wire_include_HEADERS = \ + src/polo/wire/polowireadapter.h \ + src/polo/wire/polowireinterface.h \ + src/polo/wire/polowirelistener.h + +polo_wire_protobuf_includedir = $(includedir)/polo/wire/protobuf +polo_wire_protobuf_include_HEADERS = \ + src/polo/wire/protobuf/polo.pb.h \ + src/polo/wire/protobuf/protobufwireadapter.h + +docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION) +dist_doc_DATA = AUTHORS COPYING INSTALL ChangeLog README NEWS + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = polo.pc + +## unittests to run when people type 'make check'. +TESTS = polo-test +TESTS_ENVIRONMENT = +check_SCRIPTS = +# Every time you add a unittest to check_SCRIPTS, add it here too +noinst_SCRIPTS = + +## vvvv RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS + +protoc_inputs = \ + ../proto/polo.proto + +protoc_outputs = \ + src/polo/wire/protobuf/polo.pb.cc \ + src/polo/wire/protobuf/polo.pb.h + +BUILT_SOURCES = $(protoc_outputs) + +protoc_gen: $(protoc_inputs) + $(PROTOC) --proto_path=../proto \ + --cpp_out=$(srcdir)/src/polo/wire/protobuf \ + $(protoc_inputs) + touch protoc_gen + +$(protoc_outputs): protoc_gen + +libpolo_la_CXXFLAGS = $(PROTOBUF_CFLAGS) $(GLOG_CFLAGS) $(SSL_CFLAGS) \ + $(CRYPTO_CFLAGS) + +libpolo_la_LIBADD = $(PROTOBUF_LIBS) $(GLOG_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS) +libpolo_la_SOURCES = \ + src/polo/encoding/encodingoption.cc \ + src/polo/encoding/hexadecimalencoder.cc \ + src/polo/pairing/clientpairingsession.cc \ + src/polo/pairing/pairingcontext.cc \ + src/polo/pairing/pairingsession.cc \ + src/polo/pairing/polochallengeresponse.cc \ + src/polo/pairing/serverpairingsession.cc \ + src/polo/pairing/message/configurationackmessage.cc \ + src/polo/pairing/message/configurationmessage.cc \ + src/polo/pairing/message/optionsmessage.cc \ + src/polo/pairing/message/pairingrequestackmessage.cc \ + src/polo/pairing/message/pairingrequestmessage.cc \ + src/polo/pairing/message/polomessage.cc \ + src/polo/pairing/message/secretackmessage.cc \ + src/polo/pairing/message/secretmessage.cc \ + src/polo/util/certificateutil.cc \ + src/polo/util/poloutil.cc \ + src/polo/wire/polowireadapter.cc \ + src/polo/wire/protobuf/polo.pb.cc \ + src/polo/wire/protobuf/protobufwireadapter.cc + +polo_test_LDADD = libpolo.la libgtest.la libgmock.la + +polo_test_SOURCES = \ + tests/polo/polotests.cc \ + tests/polo/encoding/hexadecimalencodertest.cc \ + tests/polo/pairing/clientpairingsessiontest.cc \ + tests/polo/pairing/pairingsessiontest.cc \ + tests/polo/pairing/polochallengeresponsetest.cc \ + tests/polo/pairing/serverpairingsessiontest.cc \ + tests/polo/util/certificateutiltest.cc \ + tests/polo/util/poloutiltest.cc \ + tests/polo/wire/protobuf/protobufwireadaptertest.cc + +libgtest_la_SOURCES = $(GTEST_DIR)/src/gtest-all.cc + +libgmock_la_SOURCES = $(GMOCK_DIR)/src/gmock-all.cc + +## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS + + +## This should always include $(TESTS), but may also include other +## binaries that you compile but don't want automatically installed. +noinst_PROGRAMS = $(TESTS) + +rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec + @cd packages && ./rpm.sh ${PACKAGE} ${VERSION} + +deb: dist-gzip packages/deb.sh packages/deb/* + @cd packages && ./deb.sh ${PACKAGE} ${VERSION} + +# Windows wants write permission to .vcproj files and maybe even sln files. +dist-hook: + test ! -e "$(distdir)/vsprojects" \ + || chmod -R u+w $(distdir)/*.sln $(distdir)/vsprojects/ + +EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \ + autogen.sh $(SCRIPTS) src/solaris/libstdc++.la + +libtool: $(LIBTOOL_DEPS) + $(SHELL) ./config.status --recheck + +EXTRA_DIST += libtool + +CLEANFILES = $(protoc_ouputs) protoc_gen + |