annotate src/capnproto-0.6.0/c++/setup-ekam.sh @ 147:45360b968bf4

Cap'n Proto v0.6 + build for OSX
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 22 May 2017 10:01:37 +0100
parents
children
rev   line source
cannam@147 1 #! /usr/bin/env bash
cannam@147 2
cannam@147 3 set -euo pipefail
cannam@147 4
cannam@147 5 if ! uname | grep -iq Linux; then
cannam@147 6 echo "Sorry, Ekam only works on Linux right now." >&2
cannam@147 7 exit 1
cannam@147 8 fi
cannam@147 9
cannam@147 10 echo -n "Looking for compiler... "
cannam@147 11 if [ "x${CXX:-}" == "x" ]; then
cannam@147 12 if ! (g++ --version | grep -q ' 4[.][789][.]'); then
cannam@147 13 if which g++-4.7 > /dev/null; then
cannam@147 14 CXX=g++-4.7
cannam@147 15 elif which g++-4.8 > /dev/null; then
cannam@147 16 CXX=g++-4.8
cannam@147 17 else
cannam@147 18 echo "none"
cannam@147 19 echo "Please install G++ 4.7 or better. Or, set the environment variable CXX " >&2
cannam@147 20 echo "to a compiler that you think will work." >&2
cannam@147 21 exit 1
cannam@147 22 fi
cannam@147 23 else
cannam@147 24 CXX=g++
cannam@147 25 fi
cannam@147 26 fi
cannam@147 27
cannam@147 28 echo "$CXX"
cannam@147 29 export CXX
cannam@147 30
cannam@147 31 if [ ! -e .ekam ]; then
cannam@147 32 echo "================================================================================"
cannam@147 33 echo "Fetching Ekam and Protobuf code..."
cannam@147 34 echo "================================================================================"
cannam@147 35 hg clone https://code.google.com/p/kentons-code/ .ekam
cannam@147 36
cannam@147 37 # You don't want these.
cannam@147 38 rm -rf .ekam/src/modc .ekam/src/evlan
cannam@147 39 fi
cannam@147 40
cannam@147 41 if [ ! -e .ekam/src/protobuf ]; then
cannam@147 42 echo "================================================================================"
cannam@147 43 echo "Fetching Protobuf code..."
cannam@147 44 echo "================================================================================"
cannam@147 45 svn checkout http://protobuf.googlecode.com/svn/tags/2.5.0/ .ekam/src/protobuf
cannam@147 46 fi
cannam@147 47
cannam@147 48 if [ ! -e .ekam/src/protobuf/src/config.h ]; then
cannam@147 49 echo "================================================================================"
cannam@147 50 echo "Configuring Protobuf..."
cannam@147 51 echo "================================================================================"
cannam@147 52 pushd .ekam/src/protobuf > /dev/null
cannam@147 53 ./autogen.sh
cannam@147 54 ./configure
cannam@147 55 cp config.h src
cannam@147 56 make maintainer-clean
cannam@147 57 popd
cannam@147 58 fi
cannam@147 59
cannam@147 60 if ! which ekam > /dev/null; then
cannam@147 61 if [ ! -e .ekam/bin/ekam ]; then
cannam@147 62 echo "================================================================================"
cannam@147 63 echo "Bootstrapping Ekam..."
cannam@147 64 echo "================================================================================"
cannam@147 65 pushd .ekam > /dev/null
cannam@147 66 ./bootstrap.sh
cannam@147 67 popd
cannam@147 68 fi
cannam@147 69 else
cannam@147 70 echo "================================================================================"
cannam@147 71 echo "Using already-installed ekam binary: $(which ekam)"
cannam@147 72 echo "================================================================================"
cannam@147 73 fi
cannam@147 74
cannam@147 75 if [ ! -e src/base ]; then
cannam@147 76 ln -s ../.ekam/src/base src/base
cannam@147 77 fi
cannam@147 78 if [ ! -e src/os ]; then
cannam@147 79 ln -s ../.ekam/src/os src/os
cannam@147 80 fi
cannam@147 81 if [ ! -e src/ekam ]; then
cannam@147 82 ln -s ../.ekam/src/ekam src/ekam
cannam@147 83 fi
cannam@147 84 if [ ! -e src/protobuf ]; then
cannam@147 85 ln -s ../.ekam/src/protobuf src/protobuf
cannam@147 86 fi
cannam@147 87
cannam@147 88 echo "================================================================================"
cannam@147 89 echo "All done..."
cannam@147 90 echo "================================================================================"
cannam@147 91 echo "Try:"
cannam@147 92 echo " make -f Makefile.ekam once"
cannam@147 93 echo " make -f Makefile.ekam continuous"
cannam@147 94 echo " make -f Makefile.ekam continuous-opt"