Updates from ddm4
[awesomized/libmemcached] / bootstrap.sh
1 #!/bin/bash
2 #
3 # Copyright (C) 2012 Brian Aker
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are
8 # met:
9 #
10 # * Redistributions of source code must retain the above copyright
11 # notice, this list of conditions and the following disclaimer.
12 #
13 # * Redistributions in binary form must reproduce the above
14 # copyright notice, this list of conditions and the following disclaimer
15 # in the documentation and/or other materials provided with the
16 # distribution.
17 #
18 # * The names of its contributors may not be used to endorse or
19 # promote products derived from this software without specific prior
20 # written permission.
21 #
22 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
34 die() { echo "$@"; exit 1; }
35
36 run() {
37 echo "\`$@' $ARGS"
38 $@ $ARGS
39 }
40
41 if [ -d .git ]
42 then
43 AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror"
44 elif [ -d .bzr ]
45 then
46 AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror"
47 elif [ -d .svn ]
48 then
49 AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror"
50 elif [ -d .hg ]
51 then
52 AUTORECONF_FLAGS="--install --force --verbose -Wall -Werror"
53 else
54 AUTORECONF_FLAGS="--install --force --verbose -Wall"
55 fi
56
57 LIBTOOLIZE_FLAGS="--force --verbose"
58
59 if [ $(uname) = "Darwin" ]
60 then
61 LIBTOOLIZE=glibtoolize
62 elif [ -z "$LIBTOOLIZE" ]
63 then
64 LIBTOOLIZE=libtoolize
65 fi
66
67 AUTORECONF=autoreconf
68
69 # Set ENV DEBUG in order to enable debugging
70 if [ -n "$DEBUG" ]
71 then
72 DEBUG="--enable-debug"
73 fi
74
75 # Set ENV ASSERT in order to enable assert
76 if [ -n "$ASSERT" ]
77 then
78 ASSERT="--enable-assert"
79 fi
80
81 # Set ENV MAKE in order to override "make"
82 if [ -z "$MAKE" ]
83 then
84 MAKE="make"
85 fi
86
87 # Set ENV MAKE_J in order to override "-j2"
88 if [ -z "$MAKE_J" ]
89 then
90 MAKE_J="-j2"
91 fi
92
93 # Set ENV PREFIX in order to set --prefix for ./configure
94 if [ -n "$PREFIX" ]
95 then
96 PREFIX="--prefix=$PREFIX"
97 fi
98
99 if [ -f Makefile ]
100 then
101 $MAKE $MAKE_J distclean
102 fi
103
104 run $LIBTOOLIZE $LIBTOOLIZE_FLAGS || die "Can't execute $LIBTOOLIZE"
105 run $AUTORECONF $AUTORECONF_FLAGS || die "Can't execute $AUTORECONF"
106
107 # If we are executing on OSX use CLANG, otherwise only use it if we find it in the ENV
108 if [ $(uname) = "Darwin" ]
109 then
110 CC=clang CXX=clang++ ./configure $DEBUG $ASSERT $PREFIX || die "configure failed to run"
111 else
112 ./configure $DEBUG $ASSERT $PREFIX || die "configure failed to run"
113 fi
114
115 # Set ENV MAKE_TARGET in order to override default of "all"
116 if [ -z "$MAKE_TARGET" ]
117 then
118 MAKE_TARGET="all"
119 fi
120
121 run $MAKE $MAKE_J $MAKE_TARGET || die "Can't execute make"