view src/capnproto-0.6.0/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 0994c39f1e94
children
line wrap: on
line source
#! /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"