cosmetics and off-by-one errors
[couchdbimport.git] / CouchProjects / build.sh
blobda48acc60afa15ab02ff0065750fe47950779094
1 #!/bin/sh
2 HOST=`uname`
3 export HOST
5 GCC=`which gcc`
6 export GCC
8 CPP=`which g++`
9 export CPP
11 MAKE=`which make`
12 export MAKE
14 JAVA=`which java`
15 export JAVA
17 BUILD_DIR=build
18 export BUILD_DIR
20 COUCHDB_VERSION=`cat ./version`
21 export COUCHDB_VERSION
23 COUCH_DIR=build/couch-$COUCHDB_VERSION/ebin
24 COUCHDB_INSTALL_DIR=/usr/local/
28 ERLANG_LIB_DIR=false
29 INSTALL_COUCHDB=false
30 BUILD_FABRIC_TESTS=false
31 # taken from autoconf
32 while test $# != 0; do
33 case $1 in
34 --*=*)
35 ac_option=`expr "x$1" : 'x\([^=]*\)='`
36 ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
37 ac_shift=:
39 -*)
40 ac_option=$1
41 ac_optarg=$2
42 ac_shift=shift
44 *) # This is not an option, so the user has probably given explicit
45 # arguments.
46 ac_option=$1
47 ac_need_defaults=false;;
48 esac
50 case $ac_option in
51 --with-fabric-tests)
52 echo "Building CouchDb with Fabric Tests"
53 BUILD_FABRIC_TESTS=true
56 --install)
57 INSTALL_COUCHDB=true
58 COUCHDB_INSTALL_DIR=$ac_optarg
59 if [ -z "$COUCHDB_INSTALL_DIR" ]; then
60 COUCHDB_INSTALL_DIR=/usr/local
61 export COUCHDB_INSTALL_DIR
65 --with-erlang)
66 ERLANG_LIB_DIR=$ac_optarg
67 export ERLANG_LIB_DIR
68 ;;
70 --help)
71 echo "The only available options at the moment are --install which installs CouchDb and --with-fabric-tests that additionally builds the FabricTests"
72 exit 0;
75 -*)
76 echo "Unkown option $ac_option. Try --help"
77 exit 1;
78 esac
79 shift
80 done
84 if [ -z "$ERLC" ]; then
85 ERLC=`which erlc`
86 export ERLC
89 if [ ! -x "$ERLC" ]; then
90 echo "Cannot find erlc. Please set ERLC manually. (e.g. export ERLC=/usr/local/erlang/bin/erlc)"
91 exit 1
94 if [ ! -x "$JAVA" ]; then
95 echo "Cannot find java. Please put the directory where java resides into your PATH. (e.g. export PATH=$PATH:/usr/local/java/bin/)"
96 exit 1
99 if [ -z "$ERLANG_INCLUDE_DIR" ]; then
100 ERLANG_INCLUDE_DIR=/usr/include
101 export ERLANG_INCLUDE_DIR
104 if [ ! -e "$ERLANG_INCLUDE_DIR/erl_driver.h" ]; then
105 echo "Cannot find erl_driver.h. Please set ERLANG_INCLUDE_DIR manually. (e.g. export ERLANG_INCLUDE_DIR=/usr/local/erlang/lib/usr/include)"
106 exit 1
109 if [ ! -d "$COUCH_DIR" ]; then
110 mkdir -p $COUCH_DIR
113 COUCH_BIG_ENDIAN=`uname -a|grep powerpc`;
115 if [ ! -z "$COUCH_BIG_ENDIAN" ]; then
116 COUCH_BIG_ENDIAN=true
117 export COUCH_BIG_ENDIAN
122 if [ "$BUILD_FABRIC_TESTS" = "true" ]; then
123 $MAKE $BUILD_DIR/FabricTests
124 exit 0
127 if [ "$INSTALL_COUCHDB" = "true" ]; then
129 if [ $ERLANG_LIB_DIR = "false" ]; then
130 echo "Please specify the Erlang lib directory with the --with-erlang=/path/to/erlang option"
131 exit 1;
133 echo $ERLANG_LIB_DIR
135 echo "Installing CouchDb into $COUCHDB_INSTALL_DIR"
137 if [ -d "$COUCHDB_INSTALL_DIR/couchdb" ]; then
138 rm -rf "$COUCHDB_INSTALL_DIR/old.couchdb"
139 mv "$COUCHDB_INSTALL_DIR/couchdb" "$COUCHDB_INSTALL_DIR/old.couchdb"
142 mkdir -p $COUCHDB_INSTALL_DIR/couchdb
145 COUCHDB_INSTALL_DIR=$COUCHDB_INSTALL_DIR/couchdb
146 export COUCHDB_INSTALL_DIR
148 $MAKE install
149 exit 0
152 $MAKE couchdb