comparison 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
comparison
equal deleted inserted replaced
132:42a73082be24 133:1ac99bfc383d
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"