Mercurial > hg > sv-dependency-builds
diff src/capnproto-git-20161025/c++/setup-ekam.sh @ 133:1ac99bfc383d
Add Cap'n Proto source
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Tue, 25 Oct 2016 11:17:01 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/capnproto-git-20161025/c++/setup-ekam.sh Tue Oct 25 11:17:01 2016 +0100 @@ -0,0 +1,94 @@ +#! /usr/bin/env bash + +set -euo pipefail + +if ! uname | grep -iq Linux; then + echo "Sorry, Ekam only works on Linux right now." >&2 + exit 1 +fi + +echo -n "Looking for compiler... " +if [ "x${CXX:-}" == "x" ]; then + if ! (g++ --version | grep -q ' 4[.][789][.]'); then + if which g++-4.7 > /dev/null; then + CXX=g++-4.7 + elif which g++-4.8 > /dev/null; then + CXX=g++-4.8 + else + echo "none" + echo "Please install G++ 4.7 or better. Or, set the environment variable CXX " >&2 + echo "to a compiler that you think will work." >&2 + exit 1 + fi + else + CXX=g++ + fi +fi + +echo "$CXX" +export CXX + +if [ ! -e .ekam ]; then + echo "================================================================================" + echo "Fetching Ekam and Protobuf code..." + echo "================================================================================" + hg clone https://code.google.com/p/kentons-code/ .ekam + + # You don't want these. + rm -rf .ekam/src/modc .ekam/src/evlan +fi + +if [ ! -e .ekam/src/protobuf ]; then + echo "================================================================================" + echo "Fetching Protobuf code..." + echo "================================================================================" + svn checkout http://protobuf.googlecode.com/svn/tags/2.5.0/ .ekam/src/protobuf +fi + +if [ ! -e .ekam/src/protobuf/src/config.h ]; then + echo "================================================================================" + echo "Configuring Protobuf..." + echo "================================================================================" + pushd .ekam/src/protobuf > /dev/null + ./autogen.sh + ./configure + cp config.h src + make maintainer-clean + popd +fi + +if ! which ekam > /dev/null; then + if [ ! -e .ekam/bin/ekam ]; then + echo "================================================================================" + echo "Bootstrapping Ekam..." + echo "================================================================================" + pushd .ekam > /dev/null + ./bootstrap.sh + popd + fi +else + echo "================================================================================" + echo "Using already-installed ekam binary: $(which ekam)" + echo "================================================================================" +fi + +if [ ! -e src/base ]; then + ln -s ../.ekam/src/base src/base +fi +if [ ! -e src/os ]; then + ln -s ../.ekam/src/os src/os +fi +if [ ! -e src/ekam ]; then + ln -s ../.ekam/src/ekam src/ekam +fi +if [ ! -e src/protobuf ]; then + ln -s ../.ekam/src/protobuf src/protobuf +fi + +echo "================================================================================" +echo "All done..." +echo "================================================================================" +echo "Try:" +echo " make -f Makefile.ekam once" +echo " make -f Makefile.ekam continuous" +echo " make -f Makefile.ekam continuous-opt"