fix bootstrap on osx
[folly.git] / folly / build / bootstrap-osx-homebrew.sh
index c7c350c33b7759ff4eb49090bd234905baf1a73a..af8c20111b5bdea1f5bbc465a9efbaf1a2c98f9b 100755 (executable)
@@ -8,22 +8,53 @@ set -e
 BASE_DIR="$(cd "$(dirname -- "$0")"/.. ; pwd)"  # folly/folly
 cd "$BASE_DIR"
 
-brewget() {
+# brew install alias
+brew_install() {
     brew install $@ || brew upgrade $@
 }
 
-# tool dependencies: autotools and scons (for double-conversion)
-brewget autoconf automake libtool
+# install deps
+install_deps() {
+       # folly deps
+       dependencies=(autoconf automake libtool pkg-config double-conversion glog gflags boost libevent xz snappy lz4 jemalloc openssl)
 
-# dependencies
-brewget glog gflags boost libevent double-conversion
+       # fetch deps
+       for dependency in ${dependencies[@]}; do
+               brew_install ${dependency}
+       done
+}
 
-autoreconf -i
-./configure
+# set env flags
+export_flags() {
+       # fetch opt dirs
+       OPT_GFLAGS=$(brew --prefix gflags)
+       OPT_OPENSSL=$(brew --prefix openssl)
 
-pushd test
-test -e gtest-1.7.0.zip || {
-    curl -O https://googletest.googlecode.com/files/gtest-1.7.0.zip
-    unzip gtest-1.7.0.zip
+       # export LDFLAGS
+       export LDFLAGS=-L${OPT_OPENSSL}/lib
+       export CPPFLAGS=-I${OPT_OPENSSL}/include
+       export GFLAGS_LIBS=-L${OPT_GFLAGS}/lib
+       export GFLAGS_CFLAGS=-I${OPT_GFLAGS}/include
 }
+
+# now the fun part
+install_deps
+export_flags
+autoreconf -ivf
+./configure --disable-silent-rules --disable-dependency-tracking
+
+# fetch googletest, if doesn't exist
+pushd test
+GTEST_VER=1.7.0
+GTEST_DIR=gtest-${GTEST_VER}
+if [ ! -d ${GTEST_DIR} ]; then
+       mkdir ${GTEST_DIR}
+    curl -SL \
+       https://github.com/google/googletest/archive/release-${GTEST_VER}.tar.gz | \
+       tar -xvzf - --strip-components=1 -C ${GTEST_DIR}
+fi
 popd
+
+# make, test, install
+make
+make install