diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am index c9b3a25bfeb..f60de047131 100644 --- a/3rdparty/Makefile.am +++ b/3rdparty/Makefile.am @@ -24,7 +24,7 @@ BUILT_SOURCES = # Initialized to enable using +=. -SUBDIRS = libprocess +SUBDIRS = . libprocess # We need to add '--srcdir=.' needed because 'make distcheck' adds # '--srcdir=...' when configuring. @@ -32,32 +32,74 @@ CONFIGURE_ARGS = @CONFIGURE_ARGS@ --enable-shared=no --with-pic --srcdir=. include versions.am +BOOST = boost-$(BOOST_VERSION) +GLOG = glog-$(GLOG_VERSION) +GMOCK = gmock-$(GMOCK_VERSION) +GPERFTOOLS = gperftools-$(GPERFTOOLS_VERSION) +GTEST = $(GMOCK)/gtest +HTTP_PARSER = http-parser-$(HTTP_PARSER_VERSION) LEVELDB = leveldb-$(LEVELDB_VERSION) +LIBEV = libev-$(LIBEV_VERSION) PIP = pip-$(PIP_VERSION) +PROTOBUF = protobuf-$(PROTOBUF_VERSION) +PICOJSON = picojson-$(PICOJSON_VERSION) SETUPTOOLS = setuptools-$(SETUPTOOLS_VERSION) WHEEL = wheel-$(WHEEL_VERSION) ZOOKEEPER = zookeeper-$(ZOOKEEPER_VERSION) - EXTRA_DIST = \ + $(BOOST).tar.gz \ + $(GLOG).tar.gz \ + $(GMOCK).tar.gz \ + $(GPERFTOOLS).tar.gz \ + $(HTTP_PARSER).tar.gz \ $(LEVELDB).tar.gz \ + $(LIBEV).tar.gz \ $(PIP).tar.gz \ + $(PROTOBUF).tar.gz \ + $(PICOJSON).tar.gz \ $(SETUPTOOLS).tar.gz \ $(WHEEL).tar.gz \ $(ZOOKEEPER).tar.gz +# We need to patch glog in order to deal with a compilation issue when +# compiling with clang (and C++11); see MESOS-860, MESOS-966. +EXTRA_DIST += \ + $(GLOG).patch + +# We patch http-parser to avoid a name collision with our `flags` namespace. +EXTRA_DIST += \ + $(HTTP_PARSER).patch + # We need to patch leveldb to prevent it from linking to snappy and # tcmalloc; see MESOS-1054, MESOS-1624. EXTRA_DIST += \ $(LEVELDB).patch +# We patch libev to keep it from reaping child processes. +EXTRA_DIST += \ + $(LIBEV).patch + +# We include an upstream patch for protobuf in order to avoid +# signed/unsigned comparisons. +EXTRA_DIST += \ + $(PROTOBUF).patch + # We need to patch ZooKeeper in order to get 3.4.8 to compile on PPC LE. EXTRA_DIST += \ $(ZOOKEEPER).patch CLEAN_EXTRACTED = \ + $(BOOST) \ + $(GLOG) \ + $(GMOCK) \ + $(GPERFTOOLS) \ + $(HTTP_PARSER) \ $(LEVELDB) \ + $(LIBEV) \ $(PIP) \ + $(PICOJSON) \ + $(PROTOBUF) \ $(SETUPTOOLS) \ $(WHEEL) \ $(ZOOKEEPER) @@ -74,41 +116,134 @@ CLEAN_EXTRACTED = \ ALL_LOCAL = # Initialize ALL_LOCAL so we can add to it. if HAS_PYTHON -if WITH_BUNDLED_SETUPTOOLS - ALL_LOCAL += $(SETUPTOOLS)-stamp -endif - if WITH_BUNDLED_PIP ALL_LOCAL += $(PIP)-stamp endif +if WITH_BUNDLED_SETUPTOOLS + ALL_LOCAL += $(SETUPTOOLS)-stamp +endif + if WITH_BUNDLED_WHEEL ALL_LOCAL += $(WHEEL)-stamp endif endif -if WITH_BUNDLED_LEVELDB +if WITH_BUNDLED_BOOST + ALL_LOCAL += $(BOOST)-stamp +endif + +if WITH_BUNDLED_GLOG +LIB_GLOG = $(GLOG)/libglog.la +GLOG_LDFLAGS = # Initialize to empty +if OS_FREEBSD + GLOG_LDFLAGS += "LDFLAGS='-L/usr/local/lib -lexecinfo'" +endif - # TODO(charles): Figure out PIC options in our configure.ac or create - # a configure.ac for leveldb. - $(LEVELDB)/libleveldb.a: $(LEVELDB)-stamp +# NOTE: We explicitly set GTEST_CONFIG=no so that we don't attempt to +# build glog against a system installed gtest (there's no reason to +# "test" glog and it's highly likely it will cause a compilation bug +# when building with clang). +$(LIB_GLOG): $(GLOG)-stamp + cd $(GLOG) && ./configure GTEST_CONFIG=no $(CONFIGURE_ARGS) && \ + $(MAKE) $(AM_MAKEFLAGS) $(GLOG_LDFLAGS) + +ALL_LOCAL += $(LIB_GLOG) +endif + +if HAS_GPERFTOOLS +LIB_GPERFTOOLS = $(GPERFTOOLS)/libprofiler.la + +$(LIB_GPERFTOOLS): $(GPERFTOOLS)-build-stamp + +$(GPERFTOOLS)-build-stamp: $(GPERFTOOLS)-stamp + cd $(GPERFTOOLS) && ./configure $(CONFIGURE_ARGS) && \ + $(MAKE) $(AM_MAKEFLAGS) + touch $@ + +ALL_LOCAL += $(LIB_GPERFTOOLS) +endif + + +if WITH_BUNDLED_HTTP_PARSER +# Convenience library for nodejs/http-parser. +noinst_LTLIBRARIES = libry_http_parser.la +nodist_libry_http_parser_la_SOURCES = $(HTTP_PARSER)/http_parser.c +libry_http_parser_la_CPPFLAGS = -I$(HTTP_PARSER) -DHTTP_PARSER_STRICT=0 + +BUILT_SOURCES += $(nodist_libry_http_parser_la_SOURCES) + +$(HTTP_PARSER)/http_parser.c: $(HTTP_PARSER)-stamp +endif + +if WITH_BUNDLED_LIBEV +$(LIBEV)/libev.la: $(LIBEV)-stamp + cd $(LIBEV) && ./configure $(CONFIGURE_ARGS) && \ + $(MAKE) $(AM_MAKEFLAGS) +ALL_LOCAL += $(LIBEV)/libev.la +endif + +if WITH_BUNDLED_PICOJSON +# Stout depends on . Install picojson.h into $PREFIX/include +# but don't add it to the source tarball. +nodist_include_HEADERS = $(PICOJSON)/picojson.h +$(PICOJSON)/picojson.h: $(PICOJSON)-stamp +ALL_LOCAL += $(PICOJSON)-stamp +endif + + +if WITH_BUNDLED_PROTOBUF +$(PROTOBUF)/src/protoc $(PROTOBUF)/src/libprotobuf.la: $(PROTOBUF)-build-stamp + +$(PROTOBUF)-build-stamp: $(PROTOBUF)-stamp + cd $(PROTOBUF) && ./configure $(CONFIGURE_ARGS) && \ + $(MAKE) $(AM_MAKEFLAGS) + touch $@ +ALL_LOCAL += $(PROTOBUF)/src/libprotobuf.la +ALL_LOCAL += $(PROTOBUF)/src/protoc +endif + +# Convenience library for gmock/gtest. +check_LTLIBRARIES = libgmock.la +nodist_libgmock_la_SOURCES = gmock_sources.cc + +if WITH_BUNDLED_GMOCK +libgmock_la_CPPFLAGS = \ + -I$(GTEST)/include -I$(GTEST) -I$(GTEST)/src \ + -I$(GMOCK)/include -I$(GMOCK) -I$(GMOCK)/src + + gmock_sources.cc: $(GMOCK)-stamp +endif + +if LINKGTEST +libgmock_la_LIBADD = -lgtest +endif + + +# We list the sources in BUILT_SOURCES to make sure that the package +# gets unarchived first. +BUILT_SOURCES += $(nodist_libgmock_la_SOURCES) + +if WITH_BUNDLED_LEVELDB +# TODO(charles): Figure out PIC options in our configure.ac or create +# a configure.ac for leveldb. +$(LEVELDB)/libleveldb.a: $(LEVELDB)-stamp cd $(LEVELDB) && \ - $(MAKE) $(AM_MAKEFLAGS) CC="$(CC)" CXX="$(CXX)" OPT="$(CXXFLAGS) -fPIC" + $(MAKE) $(AM_MAKEFLAGS) CC="$(CC)" CXX="$(CXX)" OPT="$(CXXFLAGS) -fPIC" - ALL_LOCAL += $(LEVELDB)/libleveldb.a +ALL_LOCAL += $(LEVELDB)/libleveldb.a endif if WITH_BUNDLED_ZOOKEEPER - - $(ZOOKEEPER)/src/c/libzookeeper_mt.la: $(ZOOKEEPER)-stamp +$(ZOOKEEPER)/src/c/libzookeeper_mt.la: $(ZOOKEEPER)-stamp cd $(ZOOKEEPER)/src/c && ./configure $(CONFIGURE_ARGS) && \ $(MAKE) $(AM_MAKEFLAGS) - ALL_LOCAL += $(ZOOKEEPER)/src/c/libzookeeper_mt.la +ALL_LOCAL += $(ZOOKEEPER)/src/c/libzookeeper_mt.la else - # No matter what, we need to extract ZooKeeper so that we can run - # 'make check' (some of our tests need the ZooKeeper JAR). - ALL_LOCAL += $(ZOOKEEPER)-stamp +# No matter what, we need to extract ZooKeeper so that we can run +# 'make check' (some of our tests need the ZooKeeper JAR). +ALL_LOCAL += $(ZOOKEEPER)-stamp endif all-local: $(ALL_LOCAL) @@ -117,5 +252,5 @@ clean-local: rm -r -f $(CLEAN_EXTRACTED) rm -f *-stamp -tests: all +tests: all $(check_LTLIBRARIES) @cd libprocess && $(MAKE) $(AM_MAKEFLAGS) tests diff --git a/3rdparty/libprocess/3rdparty/boost-1.53.0.tar.gz b/3rdparty/boost-1.53.0.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/boost-1.53.0.tar.gz rename to 3rdparty/boost-1.53.0.tar.gz diff --git a/3rdparty/libprocess/3rdparty/glog-0.3.3.patch b/3rdparty/glog-0.3.3.patch similarity index 100% rename from 3rdparty/libprocess/3rdparty/glog-0.3.3.patch rename to 3rdparty/glog-0.3.3.patch diff --git a/3rdparty/libprocess/3rdparty/glog-0.3.3.tar.gz b/3rdparty/glog-0.3.3.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/glog-0.3.3.tar.gz rename to 3rdparty/glog-0.3.3.tar.gz diff --git a/3rdparty/libprocess/3rdparty/gmock-1.7.0.tar.gz b/3rdparty/gmock-1.7.0.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/gmock-1.7.0.tar.gz rename to 3rdparty/gmock-1.7.0.tar.gz diff --git a/3rdparty/libprocess/3rdparty/gmock_sources.cc.in b/3rdparty/gmock_sources.cc.in similarity index 100% rename from 3rdparty/libprocess/3rdparty/gmock_sources.cc.in rename to 3rdparty/gmock_sources.cc.in diff --git a/3rdparty/libprocess/3rdparty/gperftools-2.5.tar.gz b/3rdparty/gperftools-2.5.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/gperftools-2.5.tar.gz rename to 3rdparty/gperftools-2.5.tar.gz diff --git a/3rdparty/libprocess/3rdparty/http-parser-2.6.2.patch b/3rdparty/http-parser-2.6.2.patch similarity index 100% rename from 3rdparty/libprocess/3rdparty/http-parser-2.6.2.patch rename to 3rdparty/http-parser-2.6.2.patch diff --git a/3rdparty/libprocess/3rdparty/http-parser-2.6.2.tar.gz b/3rdparty/http-parser-2.6.2.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/http-parser-2.6.2.tar.gz rename to 3rdparty/http-parser-2.6.2.tar.gz diff --git a/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template b/3rdparty/http-parser/CMakeLists.txt.template similarity index 100% rename from 3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template rename to 3rdparty/http-parser/CMakeLists.txt.template diff --git a/3rdparty/libprocess/3rdparty/libev-4.22.patch b/3rdparty/libev-4.22.patch similarity index 100% rename from 3rdparty/libprocess/3rdparty/libev-4.22.patch rename to 3rdparty/libev-4.22.patch diff --git a/3rdparty/libprocess/3rdparty/libev-4.22.tar.gz b/3rdparty/libev-4.22.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/libev-4.22.tar.gz rename to 3rdparty/libev-4.22.tar.gz diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am index d20e17cd74d..37b5a7fef65 100644 --- a/3rdparty/libprocess/3rdparty/Makefile.am +++ b/3rdparty/libprocess/3rdparty/Makefile.am @@ -26,67 +26,18 @@ BUILT_SOURCES = # Initialized to enable using +=. # '--srcdir=...' when configuring. CONFIGURE_ARGS = @CONFIGURE_ARGS@ --enable-shared=no --with-pic --srcdir=. -include versions.am +include ../../versions.am STOUT = stout -BOOST = boost-$(BOOST_VERSION) -GLOG = glog-$(GLOG_VERSION) -GMOCK = gmock-$(GMOCK_VERSION) -GPERFTOOLS = gperftools-$(GPERFTOOLS_VERSION) +BOOST = ../../boost-$(BOOST_VERSION) +GLOG = ../../glog-$(GLOG_VERSION) +GMOCK = ../../gmock-$(GMOCK_VERSION) GTEST = $(GMOCK)/gtest -HTTP_PARSER = http-parser-$(HTTP_PARSER_VERSION) -LIBEV = libev-$(LIBEV_VERSION) -PROTOBUF = protobuf-$(PROTOBUF_VERSION) -PICOJSON = picojson-$(PICOJSON_VERSION) - -EXTRA_DIST = \ - $(BOOST).tar.gz \ - $(GLOG).tar.gz \ - $(GMOCK).tar.gz \ - $(GPERFTOOLS).tar.gz \ - $(LIBEV).tar.gz \ - $(PROTOBUF).tar.gz \ - $(HTTP_PARSER).tar.gz \ - $(PICOJSON).tar.gz - -# We need to patch glog in order to deal with a compilation issue when -# compiling with clang (and C++11); see MESOS-860, MESOS-966. -EXTRA_DIST += \ - $(GLOG).patch - -# We patch libev to keep it from reaping child processes. -EXTRA_DIST += \ - $(LIBEV).patch - -# We patch http-parser to avoid a name collision with our `flags` namespace. -EXTRA_DIST += \ - $(HTTP_PARSER).patch - -# We include an upstream patch for protobuf in order to avoid -# signed/unsigned comparisons. -EXTRA_DIST += \ - $(PROTOBUF).patch - -CLEAN_EXTRACTED = \ - $(BOOST) \ - $(GLOG) \ - $(GMOCK) \ - $(GPERFTOOLS) \ - $(LIBEV) \ - $(PROTOBUF) \ - $(HTTP_PARSER) \ - $(PICOJSON) +PROTOBUF = ../../protobuf-$(PROTOBUF_VERSION) +PICOJSON = ../../picojson-$(PICOJSON_VERSION) ALL_LOCAL = # Initialize ALL_LOCAL so we can add to it. -# This is where the magic happens: we use stamp files as dependencies -# which cause the packages to get extracted as necessary. We also -# apply any patches as appropriate. -%-stamp: %.tar.gz - gzip -d -c $^ | tar xf - - test ! -e $(srcdir)/$*.patch || patch -d $* -p1 <$(srcdir)/$*.patch - touch $@ - # We use "-isystem" instead of "-I" to add Boost to the include search # path. This disables compiler warnings inside Boost headers since we # can't easily fix them. See MESOS-3799. @@ -97,14 +48,6 @@ endif if WITH_BUNDLED_GLOG GLOG_INCLUDE_FLAGS = -I$(GLOG)/src LIB_GLOG = $(GLOG)/libglog.la - -# NOTE: We explicitly set GTEST_CONFIG=no so that we don't attempt to -# build glog against a system installed gtest (there's no reason to -# "test" glog and it's highly likely it will cause a compilation bug -# when building with clang). -$(LIB_GLOG): $(GLOG)-stamp - cd $(GLOG) && ./configure GTEST_CONFIG=no $(CONFIGURE_ARGS) && \ - $(MAKE) $(AM_MAKEFLAGS) $(GLOG_LDFLAGS) else LIB_GLOG = -lglog endif @@ -113,37 +56,7 @@ endif if WITH_BUNDLED_GMOCK GMOCK_INCLUDE_FLAGS = -I$(GMOCK)/include GTEST_INCLUDE_FLAGS = -I$(GTEST)/include -LIB_GMOCK = libgmock.la -endif - -if HAS_GPERFTOOLS -GPERFTOOLS_INCLUDE_FLAGS = -I$(GPERFTOOLS)/src -LIB_GPERFTOOLS = $(GPERFTOOLS)/libprofiler.la - -$(LIB_GPERFTOOLS): $(GPERFTOOLS)-build-stamp - -$(GPERFTOOLS)-build-stamp: $(GPERFTOOLS)-stamp - cd $(GPERFTOOLS) && ./configure $(CONFIGURE_ARGS) && \ - $(MAKE) $(AM_MAKEFLAGS) - touch $@ -endif - - -if WITH_BUNDLED_HTTP_PARSER - # Convenience library for nodejs/http-parser. - noinst_LTLIBRARIES = libry_http_parser.la - nodist_libry_http_parser_la_SOURCES = $(HTTP_PARSER)/http_parser.c - libry_http_parser_la_CPPFLAGS = -I$(HTTP_PARSER) -DHTTP_PARSER_STRICT=0 - - BUILT_SOURCES += $(nodist_libry_http_parser_la_SOURCES) - - $(HTTP_PARSER)/http_parser.c: $(HTTP_PARSER)-stamp -endif - -if WITH_BUNDLED_LIBEV -$(LIBEV)/libev.la: $(LIBEV)-stamp - cd $(LIBEV) && ./configure $(CONFIGURE_ARGS) && \ - $(MAKE) $(AM_MAKEFLAGS) +LIB_GMOCK = ../../libgmock.la endif # Enable the INT64 support for PicoJSON. @@ -153,53 +66,13 @@ PICOJSON_INCLUDE_FLAGS = \ if WITH_BUNDLED_PICOJSON PICOJSON_INCLUDE_FLAGS += -I$(PICOJSON) - -# Stout depends on . Install picojson.h into $PREFIX/include -# but don't add it to the source tarball. -nodist_include_HEADERS = $(PICOJSON)/picojson.h -$(PICOJSON)/picojson.h: $(PICOJSON)-stamp endif if WITH_BUNDLED_PROTOBUF - PROTOBUF_INCLUDE_FLAGS = -I$(PROTOBUF)/src - - $(PROTOBUF)/src/protoc $(PROTOBUF)/src/libprotobuf.la: $(PROTOBUF)-build-stamp - - $(PROTOBUF)-build-stamp: $(PROTOBUF)-stamp - cd $(PROTOBUF) && ./configure $(CONFIGURE_ARGS) && \ - $(MAKE) $(AM_MAKEFLAGS) - touch $@ - - LIBPROTOBUF = $(PROTOBUF)/src/libprotobuf.la - +PROTOBUF_INCLUDE_FLAGS = -I$(PROTOBUF)/src +LIB_PROTOBUF = $(PROTOBUF)/src/libprotobuf.la else - LIBPROTOBUF = -lprotobuf -endif - -# Convenience library for gmock/gtest. -check_LTLIBRARIES = $(LIB_GMOCK) -nodist_libgmock_la_SOURCES = gmock_sources.cc - -if WITH_BUNDLED_GMOCK - libgmock_la_CPPFLAGS = \ - -I$(GTEST)/include -I$(GTEST) -I$(GTEST)/src \ - -I$(GMOCK)/include -I$(GMOCK) -I$(GMOCK)/src - - gmock_sources.cc: $(GMOCK)-stamp -endif - -if LINKGTEST - libgmock_la_LIBADD = -lgtest -endif - - -# We list the sources in BUILT_SOURCES to make sure that the package -# gets unarchived first. -BUILT_SOURCES += $(nodist_libgmock_la_SOURCES) - -GLOG_LDFLAGS = # Initialize to empty -if OS_FREEBSD - GLOG_LDFLAGS += "LDFLAGS='-L/usr/local/lib -lexecinfo'" +LIB_PROTOBUF = -lprotobuf endif if WITH_BUNDLED_STOUT @@ -292,6 +165,10 @@ endif endif # if WITH_BUNDLED_STOUT +# Both libprocess-tests and benchmarks have a dependency on libgmock.la. +$(LIB_GMOCK): + @cd ../.. && $(MAKE) $(AM_MAKEFLAGS) libgmock.la + # 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: @@ -311,33 +188,4 @@ if WITH_BUNDLED_STOUT ALL_LOCAL += $(STOUT)/Makefile endif -if WITH_BUNDLED_PROTOBUF - ALL_LOCAL += $(PROTOBUF)/src/libprotobuf.la - ALL_LOCAL += $(PROTOBUF)/src/protoc -endif - -if WITH_BUNDLED_LIBEV - ALL_LOCAL += $(LIBEV)/libev.la -endif - -if WITH_BUNDLED_BOOST - ALL_LOCAL += $(BOOST)-stamp -endif - -if WITH_BUNDLED_PICOJSON - ALL_LOCAL += $(PICOJSON)-stamp -endif - -if WITH_BUNDLED_GLOG - ALL_LOCAL += $(LIB_GLOG) -endif - -if HAS_GPERFTOOLS - ALL_LOCAL += $(LIB_GPERFTOOLS) -endif - all-local: $(ALL_LOCAL) - -clean-local: - rm -r -f $(CLEAN_EXTRACTED) - rm -f *-stamp diff --git a/3rdparty/libprocess/3rdparty/versions.am b/3rdparty/libprocess/3rdparty/versions.am deleted file mode 100644 index 4699543557d..00000000000 --- a/3rdparty/libprocess/3rdparty/versions.am +++ /dev/null @@ -1,12 +0,0 @@ -# This automake utility file is included from 3rdparty/Makefile.am -# and src/Makefile.am, so we can update the version numbers of -# third party packages in exactly one place. - -BOOST_VERSION = 1.53.0 -GLOG_VERSION = 0.3.3 -GMOCK_VERSION = 1.7.0 -GPERFTOOLS_VERSION = 2.5 -LIBEV_VERSION = 4.22 -PROTOBUF_VERSION = 2.6.1 -HTTP_PARSER_VERSION = 2.6.2 -PICOJSON_VERSION = 1.3.0 diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am index 81e2b9ae601..a9646a30766 100644 --- a/3rdparty/libprocess/Makefile.am +++ b/3rdparty/libprocess/Makefile.am @@ -23,16 +23,16 @@ LIBPROCESS_BUILD_DIR=@abs_top_builddir@ # the header files during installation. SUBDIRS = 3rdparty . include -include 3rdparty/versions.am +include ../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) +BOOST = ../boost-$(BOOST_VERSION) +GLOG = ../glog-$(GLOG_VERSION) +GMOCK = ../gmock-$(GMOCK_VERSION) +GPERFTOOLS = ../gperftools-$(GPERFTOOLS_VERSION) GTEST = $(GMOCK)/gtest -LIBEV = 3rdparty/libev-$(LIBEV_VERSION) -PICOJSON = 3rdparty/picojson-$(PICOJSON_VERSION) +LIBEV = ../libev-$(LIBEV_VERSION) +PICOJSON = ../picojson-$(PICOJSON_VERSION) if WITH_BUNDLED_BOOST @@ -46,11 +46,10 @@ else LIB_GLOG = -lglog endif -# TODO(kapil): Handle unbundled GMOCK. if WITH_BUNDLED_GMOCK GMOCK_INCLUDE_FLAGS = -I$(GMOCK)/include GTEST_INCLUDE_FLAGS = -I$(GTEST)/include -LIB_GMOCK = 3rdparty/libgmock.la +LIB_GMOCK = ../libgmock.la endif if HAS_GPERFTOOLS @@ -59,9 +58,9 @@ LIB_GPERFTOOLS = $(GPERFTOOLS)/libprofiler.la endif if WITH_BUNDLED_HTTP_PARSER -HTTP_PARSER = 3rdparty/http-parser-$(HTTP_PARSER_VERSION) +HTTP_PARSER = ../http-parser-$(HTTP_PARSER_VERSION) HTTP_PARSER_INCLUDE_FLAGS = -I$(HTTP_PARSER) -LIB_HTTP_PARSER = 3rdparty/libry_http_parser.la +LIB_HTTP_PARSER = ../libry_http_parser.la else LIB_HTTP_PARSER = -lhttp_parser endif @@ -240,9 +239,10 @@ check-local: tests # Both libprocess-tests and benchmarks have a dependency on libgmock.la. $(LIB_GMOCK): - @cd 3rdparty && $(MAKE) $(AM_MAKEFLAGS) tests + @cd .. && $(MAKE) $(AM_MAKEFLAGS) libgmock.la tests: all libprocess-tests benchmarks + @cd 3rdparty && $(MAKE) $(AM_MAKEFLAGS) tests # TODO(benh): Fix shared builds (tests need libglog, libev, etc). diff --git a/3rdparty/libprocess/configure.ac b/3rdparty/libprocess/configure.ac index e67baa5da46..671c12f3b5b 100644 --- a/3rdparty/libprocess/configure.ac +++ b/3rdparty/libprocess/configure.ac @@ -62,7 +62,6 @@ AC_CONFIG_SUBDIRS([3rdparty/stout]) AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([include/Makefile]) AC_CONFIG_FILES([3rdparty/Makefile]) -AC_CONFIG_FILES([3rdparty/gmock_sources.cc]) ############################################################################### # Optional features. diff --git a/3rdparty/libprocess/3rdparty/picojson-1.3.0.tar.gz b/3rdparty/picojson-1.3.0.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/picojson-1.3.0.tar.gz rename to 3rdparty/picojson-1.3.0.tar.gz diff --git a/3rdparty/libprocess/3rdparty/protobuf-2.6.1.patch b/3rdparty/protobuf-2.6.1.patch similarity index 100% rename from 3rdparty/libprocess/3rdparty/protobuf-2.6.1.patch rename to 3rdparty/protobuf-2.6.1.patch diff --git a/3rdparty/libprocess/3rdparty/protobuf-2.6.1.tar.gz b/3rdparty/protobuf-2.6.1.tar.gz similarity index 100% rename from 3rdparty/libprocess/3rdparty/protobuf-2.6.1.tar.gz rename to 3rdparty/protobuf-2.6.1.tar.gz diff --git a/3rdparty/versions.am b/3rdparty/versions.am index a00c3b0f14b..7dcd6bf914d 100644 --- a/3rdparty/versions.am +++ b/3rdparty/versions.am @@ -19,8 +19,16 @@ # third-party packages in exactly one place. For now, however, we # still need to update version numbers in src/python/setup.py.in too! +BOOST_VERSION = 1.53.0 +GLOG_VERSION = 0.3.3 +GMOCK_VERSION = 1.7.0 +GPERFTOOLS_VERSION = 2.5 +HTTP_PARSER_VERSION = 2.6.2 LEVELDB_VERSION = 1.4 +LIBEV_VERSION = 4.22 +PICOJSON_VERSION = 1.3.0 PIP_VERSION = 7.1.2 +PROTOBUF_VERSION = 2.6.1 SETUPTOOLS_VERSION = 20.9.0 WHEEL_VERSION = 0.24.0 ZOOKEEPER_VERSION = 3.4.8 diff --git a/configure.ac b/configure.ac index 15bcd193f7b..3dc82c571bd 100644 --- a/configure.ac +++ b/configure.ac @@ -84,6 +84,7 @@ AC_CONFIG_SUBDIRS([3rdparty/libprocess]) AC_CONFIG_FILES([Makefile mesos.pc]) AC_CONFIG_FILES([src/Makefile]) AC_CONFIG_FILES([3rdparty/Makefile]) +AC_CONFIG_FILES([3rdparty/gmock_sources.cc]) AC_CONFIG_FILES([bin/mesos.sh], [chmod +x bin/mesos.sh]) AC_CONFIG_FILES([bin/mesos-agent.sh], [chmod +x bin/mesos-agent.sh]) diff --git a/src/Makefile.am b/src/Makefile.am index 90c2ea4a4c6..b384287c211 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,6 @@ AUTOMAKE_OPTIONS = subdir-objects MESOS_BUILD_DIR=@abs_top_builddir@ include ../3rdparty/versions.am -include ../3rdparty/libprocess/3rdparty/versions.am # TODO(charles): Move these into an included automakefile and have # them include $(top_builddir) as appropriate. @@ -33,12 +32,12 @@ ZOOKEEPER = 3rdparty/zookeeper-$(ZOOKEEPER_VERSION)/src/c ZOOKEEPER_JAR = 3rdparty/zookeeper-$(ZOOKEEPER_VERSION)/zookeeper-$(ZOOKEEPER_VERSION).jar LIBPROCESS = 3rdparty/libprocess STOUT = $(LIBPROCESS)/3rdparty/stout -BOOST = $(LIBPROCESS)/3rdparty/boost-$(BOOST_VERSION) -GLOG = $(LIBPROCESS)/3rdparty/glog-$(GLOG_VERSION) -GMOCK = $(LIBPROCESS)/3rdparty/gmock-$(GMOCK_VERSION) +BOOST = 3rdparty/boost-$(BOOST_VERSION) +GLOG = 3rdparty/glog-$(GLOG_VERSION) +GMOCK = 3rdparty/gmock-$(GMOCK_VERSION) GTEST = $(GMOCK)/gtest -PROTOBUF = $(LIBPROCESS)/3rdparty/protobuf-$(PROTOBUF_VERSION) -PICOJSON = $(LIBPROCESS)/3rdparty/picojson-$(PICOJSON_VERSION) +PROTOBUF = 3rdparty/protobuf-$(PROTOBUF_VERSION) +PICOJSON = 3rdparty/picojson-$(PICOJSON_VERSION) # Unfortunatley, 'pkglibexecdir' and 'pkgsysconfdir' are not set @@ -2036,14 +2035,14 @@ mesos_tests_CPPFLAGS += -I../$(GMOCK)/include mesos_tests_CPPFLAGS += -DTESTLIBEXECDIR=\"$(testlibexecdir)\" mesos_tests_CPPFLAGS += -DSBINDIR=\"$(sbindir)\" -mesos_tests_LDADD = ../$(LIBPROCESS)/3rdparty/libgmock.la libmesos.la $(LDADD) +mesos_tests_LDADD = ../3rdparty/libgmock.la libmesos.la $(LDADD) if !OS_FREEBSD mesos_tests_LDADD += -ldl # FreeBSD includes dynamic lib utils in libc. endif mesos_tests_DEPENDENCIES = \ - ../$(LIBPROCESS)/3rdparty/libgmock.la \ + ../3rdparty/libgmock.la \ libmesos.la \ $(MESOS_TEST_MODULES) @@ -2131,8 +2130,8 @@ dist_check_SCRIPTS += \ tests/python_framework_test.sh \ tests/test_framework_test.sh -../$(LIBPROCESS)/3rdparty/libgmock.la: - @cd ../$(LIBPROCESS)/3rdparty && $(MAKE) $(AM_MAKEFLAGS) libgmock.la +../3rdparty/libgmock.la: + @cd ../3rdparty && $(MAKE) $(AM_MAKEFLAGS) libgmock.la if INSTALL_TESTS testlibexec_PROGRAMS = $(check_PROGRAMS)