Mercurial > hg > sv-dependency-builds
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" |