blob: 7358b7111244d941140d05706f8f65da052b9177 [file] [log] [blame]
#!/bin/bash
# Copyright 2015 The Weave Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
ROOT_DIR=$(cd -P -- "$(dirname -- "$0")/.." && pwd -P)
sudo apt-get update && sudo apt-get install ${APT_GET_OPTS} \
autoconf \
automake \
binutils \
g++ \
gyp \
hostapd \
libavahi-client-dev \
libcurl4-openssl-dev \
libexpat1-dev \
libnl-3-dev \
libnl-route-3-dev \
libssl-dev \
libtool \
ninja-build \
|| exit 1
mkdir -p $ROOT_DIR/third_party/lib $ROOT_DIR/third_party/include 2> /dev/null
# Make gtest and gmock
cd $ROOT_DIR/third_party
rm -rf googletest
git clone https://github.com/google/googletest.git || exit 1
cd $ROOT_DIR/third_party/googletest
# gtest is in process of changing of dir structure and it has broken build
# files. So this is temporarily workaround to fix that.
git reset --hard d945d8c000a0ade73585d143532266968339bbb3
mv googletest googlemock/gtest
for SUB_DIR in googlemock/gtest googlemock; do
cd $ROOT_DIR/third_party/googletest/$SUB_DIR || exit 1
autoreconf -fvi || exit 1
./configure --disable-shared || exit 1
make || exit 1
cp -rf include/* $ROOT_DIR/third_party/include/ || exit 1
cp -rf lib/.libs/* $ROOT_DIR/third_party/lib/ || exit 1
done
rm -rf $ROOT_DIR/third_party/googletest
# Make libevent.
# Example uses libevent to implement HTTPS server. This capability is
# available only in version 2.1.x-alpha. Step could be replaced with apt-get
# in future.
cd $ROOT_DIR/third_party
rm -rf libevent
git clone https://github.com/libevent/libevent.git || exit 1
cd libevent || exit 1
./autogen.sh || exit 1
./configure --disable-shared || exit 1
make || exit 1
if [ -z "$DISABLE_LIBEVENT_TEST" ]; then
echo -e "\n\nTesting libevent...\nCan take several minutes.\n"
make verify || exit 1
fi
cp -rf include/* $ROOT_DIR/third_party/include/ || exit 1
cp -rf .libs/lib* $ROOT_DIR/third_party/lib/ || exit 1
rm -rf $ROOT_DIR/third_party/libevent