capnproto

FORK: Cap'n Proto serialization/RPC system - core tools and C++ library
git clone https://git.neptards.moe/neptards/capnproto.git
Log | Files | Refs | README | LICENSE

setup-ekam.sh (2919B)


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