annotate src/capnproto-git-20161025/c++/setup-ekam.sh @ 83:ae30d91d2ffe

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