Home | History | Annotate | Download | only in cpp
      1 ## Process this file with automake to produce Makefile.in
      2 
      3 # Make sure that when we re-make ./configure, we get the macros we need
      4 ACLOCAL_AMFLAGS = -I m4
      5 
      6 SUBDIRS = .
      7 
      8 DIST_SUBDIRS = src
      9 
     10 # This is so we can #include <package/foo>
     11 AM_CPPFLAGS = -I$(top_srcdir)/src \
     12   -I$(top_srcdir)/tests \
     13   -I$(GTEST_DIR) -I$(GTEST_DIR)/include \
     14   -I$(GMOCK_DIR) -I$(GMOCK_DIR)/include
     15 
     16 # These are good warnings to turn on by default
     17 if GCC
     18 AM_CXXFLAGS = -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare
     19 endif
     20 
     21 # The -no-undefined flag allows libtool to generate shared libraries for
     22 # Cygwin and MinGW.  LIBSTDCXX_LA_LINKER_FLAG is used to fix a Solaris bug.
     23 # -version-info tells libtool what to put after the '.so' in the filename.
     24 AM_LDFLAGS = -no-undefined $(LIBSTDCXX_LA_LINKER_FLAG) \
     25              -version-info @SO_VERSION@
     26 
     27 # The libraries (.so's) to build and install.
     28 lib_LTLIBRARIES = libpolo.la
     29 
     30 # Libraries that are built but not installed.
     31 noinst_LTLIBRARIES = libgtest.la libgmock.la
     32 
     33 ## The .h files you want to install (that is, .h files that people
     34 ## who install this package can include in their own applications.)
     35 
     36 polo_encoding_includedir = $(includedir)/polo/encoding
     37 polo_encoding_include_HEADERS = \
     38   src/polo/encoding/encodingoption.h \
     39   src/polo/encoding/hexadecimalencoder.h \
     40   src/polo/encoding/secretencoder.h
     41 
     42 polo_pairing_includedir = $(includedir)/polo/pairing
     43 polo_pairing_include_HEADERS = \
     44   src/polo/pairing/clientpairingsession.h \
     45   src/polo/pairing/pairingcontext.h \
     46   src/polo/pairing/pairinglistener.h \
     47   src/polo/pairing/pairingsession.h \
     48   src/polo/pairing/polochallengeresponse.h \
     49   src/polo/pairing/poloerror.h \
     50   src/polo/pairing/serverpairingsession.h
     51 
     52 polo_pairing_message_includedir = $(includedir)/polo/pairing/message
     53 polo_pairing_message_include_HEADERS = \
     54   src/polo/pairing/message/configurationackmessage.h \
     55   src/polo/pairing/message/configurationmessage.h \
     56   src/polo/pairing/message/messagelistener.h \
     57   src/polo/pairing/message/optionsmessage.h \
     58   src/polo/pairing/message/pairingrequestackmessage.h \
     59   src/polo/pairing/message/pairingrequestmessage.h \
     60   src/polo/pairing/message/polomessage.h \
     61   src/polo/pairing/message/secretackmessage.h \
     62   src/polo/pairing/message/secretmessage.h
     63 
     64 polo_util_includedir = $(includedir)/polo/util
     65 polo_util_include_HEADERS = \
     66   src/polo/util/certificateutil.h \
     67   src/polo/util/macros.h \
     68   src/polo/util/poloutil.h
     69 
     70 polo_wire_includedir = $(includedir)/polo/wire
     71 polo_wire_include_HEADERS = \
     72   src/polo/wire/polowireadapter.h \
     73   src/polo/wire/polowireinterface.h \
     74   src/polo/wire/polowirelistener.h
     75 
     76 polo_wire_protobuf_includedir = $(includedir)/polo/wire/protobuf
     77 polo_wire_protobuf_include_HEADERS = \
     78   src/polo/wire/protobuf/polo.pb.h \
     79   src/polo/wire/protobuf/protobufwireadapter.h
     80 
     81 docdir = $(prefix)/share/doc/$(PACKAGE)-$(VERSION)
     82 dist_doc_DATA = AUTHORS COPYING INSTALL ChangeLog README NEWS
     83 
     84 pkgconfigdir = $(libdir)/pkgconfig
     85 pkgconfig_DATA = polo.pc
     86 
     87 ## unittests to run when people type 'make check'.
     88 TESTS = polo-test
     89 TESTS_ENVIRONMENT =
     90 check_SCRIPTS =
     91 # Every time you add a unittest to check_SCRIPTS, add it here too
     92 noinst_SCRIPTS =
     93 
     94 ## vvvv RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
     95 
     96 protoc_inputs = \
     97   ../proto/polo.proto
     98 
     99 protoc_outputs = \
    100   src/polo/wire/protobuf/polo.pb.cc \
    101   src/polo/wire/protobuf/polo.pb.h
    102 
    103 BUILT_SOURCES = $(protoc_outputs)
    104 
    105 protoc_gen: $(protoc_inputs)
    106 	$(PROTOC) --proto_path=../proto \
    107 	    --cpp_out=$(srcdir)/src/polo/wire/protobuf \
    108             $(protoc_inputs)
    109 	touch protoc_gen
    110 
    111 $(protoc_outputs): protoc_gen
    112 
    113 libpolo_la_CXXFLAGS = $(PROTOBUF_CFLAGS) $(GLOG_CFLAGS) $(SSL_CFLAGS) \
    114   $(CRYPTO_CFLAGS)
    115 
    116 libpolo_la_LIBADD = $(PROTOBUF_LIBS) $(GLOG_LIBS) $(SSL_LIBS) $(CRYPTO_LIBS)
    117 libpolo_la_SOURCES = \
    118   src/polo/encoding/encodingoption.cc \
    119   src/polo/encoding/hexadecimalencoder.cc \
    120   src/polo/pairing/clientpairingsession.cc \
    121   src/polo/pairing/pairingcontext.cc \
    122   src/polo/pairing/pairingsession.cc \
    123   src/polo/pairing/polochallengeresponse.cc \
    124   src/polo/pairing/serverpairingsession.cc \
    125   src/polo/pairing/message/configurationackmessage.cc \
    126   src/polo/pairing/message/configurationmessage.cc \
    127   src/polo/pairing/message/optionsmessage.cc \
    128   src/polo/pairing/message/pairingrequestackmessage.cc \
    129   src/polo/pairing/message/pairingrequestmessage.cc \
    130   src/polo/pairing/message/polomessage.cc \
    131   src/polo/pairing/message/secretackmessage.cc \
    132   src/polo/pairing/message/secretmessage.cc \
    133   src/polo/util/certificateutil.cc \
    134   src/polo/util/poloutil.cc \
    135   src/polo/wire/polowireadapter.cc \
    136   src/polo/wire/protobuf/polo.pb.cc \
    137   src/polo/wire/protobuf/protobufwireadapter.cc
    138 
    139 polo_test_LDADD = libpolo.la libgtest.la libgmock.la
    140 
    141 polo_test_SOURCES = \
    142   tests/polo/polotests.cc \
    143   tests/polo/encoding/hexadecimalencodertest.cc \
    144   tests/polo/pairing/clientpairingsessiontest.cc \
    145   tests/polo/pairing/pairingsessiontest.cc \
    146   tests/polo/pairing/polochallengeresponsetest.cc \
    147   tests/polo/pairing/serverpairingsessiontest.cc \
    148   tests/polo/util/certificateutiltest.cc \
    149   tests/polo/util/poloutiltest.cc \
    150   tests/polo/wire/protobuf/protobufwireadaptertest.cc
    151 
    152 libgtest_la_SOURCES = $(GTEST_DIR)/src/gtest-all.cc
    153 
    154 libgmock_la_SOURCES = $(GMOCK_DIR)/src/gmock-all.cc
    155 
    156 ## ^^^^ END OF RULES TO MAKE THE LIBRARIES, BINARIES, AND UNITTESTS
    157 
    158 
    159 ## This should always include $(TESTS), but may also include other
    160 ## binaries that you compile but don't want automatically installed.
    161 noinst_PROGRAMS = $(TESTS)
    162 
    163 rpm: dist-gzip packages/rpm.sh packages/rpm/rpm.spec
    164 	@cd packages && ./rpm.sh ${PACKAGE} ${VERSION}
    165 
    166 deb: dist-gzip packages/deb.sh packages/deb/*
    167 	@cd packages && ./deb.sh ${PACKAGE} ${VERSION}
    168 
    169 # Windows wants write permission to .vcproj files and maybe even sln files.
    170 dist-hook:
    171 	test ! -e "$(distdir)/vsprojects" \
    172 	   || chmod -R u+w $(distdir)/*.sln $(distdir)/vsprojects/
    173 
    174 EXTRA_DIST = packages/rpm.sh packages/rpm/rpm.spec packages/deb.sh packages/deb \
    175 	autogen.sh $(SCRIPTS) src/solaris/libstdc++.la
    176 
    177 libtool: $(LIBTOOL_DEPS)
    178 	$(SHELL) ./config.status --recheck
    179 
    180 EXTRA_DIST += libtool
    181 
    182 CLEANFILES = $(protoc_ouputs) protoc_gen
    183 
    184