From 13e8eb6347f3c594f512e5f5afd0e7be713cfa74 Mon Sep 17 00:00:00 2001 From: Igor Peshansky Date: Thu, 22 Jun 2017 08:42:15 -0400 Subject: [PATCH] Support building on MacOS. --- README.md | 13 +++++++++++++ src/Makefile | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ceaea027..198230f8 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,19 @@ This is the Stackdriver metadata agent. curl -O ${VENDOR_URL}/boost-static-1.54.0-1.el7.x86_64.rpm) $ sudo rpm --nodeps -ivp /tmp/boost-{devel,static}-1.54.0-1.el7.x86_64.rpm +## MacOS 10.12 special edition + +1. Install runtime dependencies (MacOS 10.12 special edition): + + $ brew install boost -c++11 && \ + (cd /usr/local/lib && ln -s libboost_thread-mt.a libboost_thread.a && \ + ln -s libboost_thread-mt.dylib libboost_thread.dylib) + $ brew install yajl + +2. Install build dependencies (MacOS 10.12 special edition): + + $ brew install cmake + # Building 1. Build the metadata agent: diff --git a/src/Makefile b/src/Makefile index 28ced52e..40f61b66 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,12 +4,22 @@ CPP_NETLIB_LIBDIR=$(CPP_NETLIB_DIR)/libs/network/src YAML_CPP_DIR=$(LIBDIR)/yaml-cpp YAML_CPP_LIBDIR=$(YAML_CPP_DIR) -SED=/usr/bin/env sed +SED_I=/usr/bin/env sed -i CMAKE=cmake CXXFLAGS=-std=c++11 -g -DENABLE_KUBERNETES_METADATA -I$(CPP_NETLIB_DIR) -I$(YAML_CPP_DIR)/include LDFLAGS=-L$(CPP_NETLIB_LIBDIR) -L$(YAML_CPP_LIBDIR) LDLIBS=-lcppnetlib-uri -lcppnetlib-client-connections -lboost_system \ -lboost_thread -lpthread -lyajl -lssl -lcrypto -lyaml-cpp +SED_EXTRA= + +UNAME_S=$(shell uname -s) +ifeq ($(UNAME_S),Darwin) + CXXFLAGS+= -Wno-deprecated-declarations -I/usr/local/include + LDFLAGS+= -L/usr/local/lib + SED_I+= '' + SED_EXTRA+=-e \ + 's/-Wall/-Wall -Wno-deprecated-declarations -Wno-unused-local-typedef/' +endif SRCS=\ metadatad.cc \ @@ -109,7 +119,7 @@ init-submodules: $(CPP_NETLIB_DIR)/Makefile: init-submodules cd $(CPP_NETLIB_DIR) && \ - $(SED) -i -e 's/unit_test_framework //' CMakeLists.txt && \ + $(SED_I) -e 's/unit_test_framework //' $(SED_EXTRA) CMakeLists.txt && \ $(CMAKE) -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS=-std=c++11 \ -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ \ -DCPP-NETLIB_BUILD_TESTS=OFF -DCPP-NETLIB_BUILD_EXAMPLES=OFF