FreeBSD: Enable mesos build. Review: https://reviews.apache.org/r/39634/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6196fb42 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6196fb42 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6196fb42 Branch: refs/heads/master Commit: 6196fb42ee6c8cf6e262bb2cf80520a60fc6ce3d Parents: ef38ec3 Author: David Forsythe <[email protected]> Authored: Mon Dec 14 09:33:25 2015 -0800 Committer: Ian Downes <[email protected]> Committed: Mon Dec 14 09:34:08 2015 -0800 ---------------------------------------------------------------------- configure.ac | 33 +++++++++++++++++++++++++++++++-- src/Makefile.am | 6 +++++- 2 files changed, 36 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/6196fb42/configure.ac ---------------------------------------------------------------------- diff --git a/configure.ac b/configure.ac index b30a8d3..40d60a6 100644 --- a/configure.ac +++ b/configure.ac @@ -298,6 +298,9 @@ case "${target_os}" in darwin*) OS_NAME=darwin ;; + freebsd*) + OS_NAME=freebsd + ;; *) AC_MSG_ERROR("Mesos is currently unsupported on your platform.") esac @@ -305,6 +308,7 @@ esac # Used for conditionally including source files. AM_CONDITIONAL([OS_LINUX], [test "x$OS_NAME" = "xlinux"]) +AM_CONDITIONAL([OS_FREEBSD], [test "x$OS_NAME" = "xfreebsd"]) # Default to gcc toolchain (we rely on some atomic builtins for now, @@ -602,11 +606,22 @@ case "$host_os" in CXXFLAGS="$CXXFLAGS -stdlib=libc++" fi - # GTEST on OSX needs its own tr1 tuple. + # GTEST on OSX and FreeBSD needs its own tr1 tuple. CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11" ;; + freebsd* ) + # If we're using clang, we need to pass -stdlib=libc++ too. + if test "x$ax_cv_cxx_compiler_vendor" = "xclang"; then + CXXFLAGS="$CXXFLAGS -stdlib=libc++" + fi + + # FreeBSD needs GTEST_HAS_PTHREAD for this version of gmock/gtest and + # _WITH_GETLINE for getline(). + CXXFLAGS="$CXXFLAGS -DGTEST_HAS_PTHREAD -D_WITH_GETLINE" + ;; esac + # Also pass the flags to 3rdparty libraries. CONFIGURE_ARGS="$CONFIGURE_ARGS CXXFLAGS='$CXXFLAGS'" @@ -616,7 +631,11 @@ AX_PTHREAD([], [AC_MSG_ERROR([failed to find pthreads])]) # Check for libunwind, and link it in if present. -AC_CHECK_LIB(unwind, backtrace, LIBS="$LIBS -lunwind") +if test "x$OS_NAME" = "xfreebsd"; then + AC_CHECK_LIB(execinfo, backtrace, LIBS="$LIBS -lexecinfo") +else + AC_CHECK_LIB(unwind, backtrace, LIBS="$LIBS -lunwind") +fi # Check if zlib prefix path was provided, and if so, add it to @@ -992,6 +1011,16 @@ __EOF__ break; fi done + elif test "$OS_NAME" = "freebsd"; then + for arch in amd64 i386 arm; do + dir="$JAVA_HOME/jre/lib/$arch/server" + if test -e "$dir"; then + # Note that these are libtool specific flags. + JAVA_TEST_LDFLAGS="-L$dir -R$dir -Wl,-ljvm" + JAVA_JVM_LIBRARY=$dir/libjvm.so + break; + fi + done fi if test -z "$JAVA_TEST_LDFLAGS"; then http://git-wip-us.apache.org/repos/asf/mesos/blob/6196fb42/src/Makefile.am ---------------------------------------------------------------------- diff --git a/src/Makefile.am b/src/Makefile.am index 9762f85..acd17de 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1757,7 +1757,11 @@ mesos_tests_CPPFLAGS += -DBUILD_DIR=\"$(abs_top_builddir)\" mesos_tests_CPPFLAGS += -I../$(GTEST)/include mesos_tests_CPPFLAGS += -I../$(GMOCK)/include -mesos_tests_LDADD = ../$(LIBPROCESS)/3rdparty/libgmock.la libmesos.la -ldl $(LDADD) +mesos_tests_LDADD = ../$(LIBPROCESS)/3rdparty/libgmock.la libmesos.la $(LDADD) + +if !OS_FREEBSD + mesos_tests_LDADD += -ldl # FreeBSD includes dynamic lib utils in libc. +endif mesos_tests_DEPENDENCIES = # Initialized to allow += below.
