| # Makefile for libprocess. Note that 3rdparty needs to be built |
| # first (see 3rdparty/Makefile.am). |
| |
| ACLOCAL_AMFLAGS = -I m4 |
| |
| AUTOMAKE_OPTIONS = foreign |
| |
| # NOTE: The libprocess headers were moved to the Makefile in "include" |
| # subdirectory to make it easy to preserve the directory structure of |
| # the header files during installation. |
| SUBDIRS = 3rdparty . include |
| |
| include 3rdparty/versions.am |
| |
| STOUT = 3rdparty/stout |
| BOOST = 3rdparty/boost-$(BOOST_VERSION) |
| GLOG = 3rdparty/glog-$(GLOG_VERSION) |
| GMOCK = 3rdparty/gmock-$(GMOCK_VERSION) |
| GPERFTOOLS = 3rdparty/gperftools-$(GPERFTOOLS_VERSION) |
| GTEST = $(GMOCK)/gtest |
| LIBEV = 3rdparty/libev-$(LIBEV_VERSION) |
| PICOJSON = 3rdparty/picojson-$(PICOJSON_VERSION) |
| |
| |
| # Library. It is not installable presently because most people link |
| # the libprocess statically into their resulting library or binary and |
| # don't want any parts of libprocess to get installed (which happens |
| # even if you attempt to do conditional installation via configure |
| # arguments, see configure.ac). |
| noinst_LTLIBRARIES = libprocess.la |
| |
| libprocess_la_SOURCES = \ |
| src/config.hpp \ |
| src/decoder.hpp \ |
| src/encoder.hpp \ |
| src/gate.hpp \ |
| src/http.cpp \ |
| src/latch.cpp \ |
| src/metrics/metrics.cpp \ |
| src/pid.cpp \ |
| src/process.cpp \ |
| src/reap.cpp \ |
| src/subprocess.cpp \ |
| src/synchronized.hpp \ |
| src/timeseries.cpp |
| |
| libprocess_la_CPPFLAGS = \ |
| -I$(srcdir)/include \ |
| -I$(srcdir)/$(STOUT)/include \ |
| -I$(BOOST) \ |
| -I$(LIBEV) \ |
| -I$(PICOJSON) \ |
| $(AM_CPPFLAGS) |
| |
| if WITH_BUNDLED_GLOG |
| libprocess_la_CPPFLAGS += -I$(GLOG)/src |
| LIBGLOG = $(GLOG)/libglog.la |
| else |
| LIBGLOG = -lglog |
| endif |
| |
| if WITH_BUNDLED_HTTP_PARSER |
| RY_HTTP_PARSER = 3rdparty/ry-http-parser-$(RY_HTTP_PARSER_VERSION) |
| libprocess_la_CPPFLAGS += -I$(RY_HTTP_PARSER) |
| |
| HTTP_PARSER_LIB = 3rdparty/libry_http_parser.la |
| else |
| HTTP_PARSER_LIB = -lhttp_parser |
| endif |
| |
| if WITH_BUNDLED_LIBEV |
| LIBEV_LIB = $(LIBEV)/libev.la |
| else |
| LIBEV_LIB = -lev |
| endif |
| |
| libprocess_la_LIBADD = \ |
| $(LIBGLOG) \ |
| $(HTTP_PARSER_LIB) \ |
| $(LIBEV_LIB) |
| |
| if HAS_GPERFTOOLS |
| libprocess_la_CPPFLAGS += -I$(GPERFTOOLS)/src |
| libprocess_la_LIBADD += $(GPERFTOOLS)/libprofiler.la |
| endif |
| |
| # Tests. |
| check_PROGRAMS = tests |
| |
| tests_SOURCES = \ |
| src/tests/decoder_tests.cpp \ |
| src/tests/encoder_tests.cpp \ |
| src/tests/http_tests.cpp \ |
| src/tests/io_tests.cpp \ |
| src/tests/main.cpp \ |
| src/tests/mutex_tests.cpp \ |
| src/tests/metrics_tests.cpp \ |
| src/tests/owned_tests.cpp \ |
| src/tests/process_tests.cpp \ |
| src/tests/queue_tests.cpp \ |
| src/tests/reap_tests.cpp \ |
| src/tests/sequence_tests.cpp \ |
| src/tests/shared_tests.cpp \ |
| src/tests/statistics_tests.cpp \ |
| src/tests/subprocess_tests.cpp \ |
| src/tests/system_tests.cpp \ |
| src/tests/timeseries_tests.cpp \ |
| src/tests/time_tests.cpp |
| |
| tests_CPPFLAGS = \ |
| -I$(top_srcdir)/src \ |
| -I$(GTEST)/include \ |
| -I$(GMOCK)/include \ |
| $(libprocess_la_CPPFLAGS) |
| |
| tests_LDADD = \ |
| 3rdparty/libgmock.la \ |
| libprocess.la \ |
| $(LIBGLOG) \ |
| $(HTTP_PARSER_LIB) \ |
| $(LIBEV_LIB) |
| |
| # We use a check-local target for now to avoid the parallel test |
| # runner that ships with newer versions of autotools. |
| # See the following discussion for the workaround: |
| # http://lists.gnu.org/archive/html/automake/2013-01/msg00051.html |
| check-local: tests |
| ./tests |
| |
| # TODO(benh): Fix shared builds (tests need libglog, libev, etc). |
| |
| # Using LT_OUTPUT in configure.ac creates config.lt that doesn't get |
| # cleaned up by distclean-libtool. See this bug patch (which doesn't |
| # appear to be in all versions of libtool.m4): |
| # http://lists.gnu.org/archive/html/automake-commit/2008-11/msg00015.html. |
| distclean-local: |
| -rm -f config.lt |