test/configure

branch
configure-evo
changeset 60
43d6680e6410
parent 54
2b8f40c58944
child 63
ac47c2fb2c4a
equal deleted inserted replaced
59:410e4f942ce7 60:43d6680e6410
1 #!/bin/sh 1 #!/bin/sh
2
3 failed()
4 {
5 $@
6 if [ $? -ne 0 ]; then
7 return 0
8 else
9 return 1
10 fi
11 }
12
13 2
14 # create temporary directory 3 # create temporary directory
15 TEMP_DIR=".tmp-`uname -n`" 4 TEMP_DIR=".tmp-`uname -n`"
16 rm -Rf "$TEMP_DIR" 5 rm -Rf "$TEMP_DIR"
17 if failed mkdir -p "$TEMP_DIR"; then 6 if mkdir -p "$TEMP_DIR"; then
7 :
8 else
18 echo "Cannot create tmp dir $TEMP_DIR" 9 echo "Cannot create tmp dir $TEMP_DIR"
19 echo "Abort" 10 echo "Abort"
20 exit 1 11 exit 1
21 fi 12 fi
22 touch "$TEMP_DIR/options" 13 touch "$TEMP_DIR/options"
111 esac 102 esac
112 done 103 done
113 104
114 105
115 # set dir variables 106 # set dir variables
116 BINDIR=${BINDIR:-"$EPREFIX/bin"} 107 : ${BINDIR:="$EPREFIX/bin"}
117 SBINDIR=${SBINDIR:-"$EPREFIX/sbin"} 108 : ${SBINDIR:="$EPREFIX/sbin"}
118 LIBDIR=${LIBDIR:-"$EPREFIX/lib"} 109 : ${LIBDIR:="$EPREFIX/lib"}
119 LIBEXECDIR=${LIBEXECDIR:-"$EPREFIX/libexec"} 110 : ${LIBEXECDIR:="$EPREFIX/libexec"}
120 DATADIR=${DATADIR:-"$PREFIX/share"} 111 : ${DATADIR:="$PREFIX/share"}
121 SYSCONFDIR=${SYSCONFDIR:-"$PREFIX/etc"} 112 : ${SYSCONFDIR:="$PREFIX/etc"}
122 SHAREDSTATEDIR=${SHAREDSTATEDIR:-"$PREFIX/com"} 113 : ${SHAREDSTATEDIR:="$PREFIX/com"}
123 LOCALSTATEDIR=${LOCALSTATEDIR:-"$PREFIX/var"} 114 : ${LOCALSTATEDIR:="$PREFIX/var"}
124 INCLUDEDIR=${INCLUDEDIR:-"$PREFIX/include"} 115 : ${INCLUDEDIR:="$PREFIX/include"}
125 INFODIR=${INFODIR:-"$PREFIX/info"} 116 : ${INFODIR:="$PREFIX/info"}
126 MANDIR=${MANDIR:-"$PREFIX/man"} 117 : ${MANDIR:="$PREFIX/man"}
127 118
128 # Test for availability of pkg-config 119 # Test for availability of pkg-config
129 PKG_CONFIG=`command -v pkg-config` 120 PKG_CONFIG=`command -v pkg-config`
130 PKG_CONFIG=${PKG_CONFIG:-"false"} 121 : ${PKG_CONFIG:="false"}
131 122
132 # Simple uname based platform detection 123 # Simple uname based platform detection
133 # $PLATFORM is used for platform dependent dependency selection 124 # $PLATFORM is used for platform dependent dependency selection
134 OS=`uname -s` 125 OS=`uname -s`
135 OS_VERSION=`uname -r` 126 OS_VERSION=`uname -r`
147 PLATFORM="macos osx bsd unix" 138 PLATFORM="macos osx bsd unix"
148 fi 139 fi
149 if echo "$OS" | grep -i "MINGW" > /dev/null; then 140 if echo "$OS" | grep -i "MINGW" > /dev/null; then
150 PLATFORM="windows mingw" 141 PLATFORM="windows mingw"
151 fi 142 fi
152 PLATFORM=${PLATFORM:-"unix"} 143 : ${PLATFORM:="unix"}
153 144
154 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` 145 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -`
155 echo "$PLATFORM_NAME" 146 echo "$PLATFORM_NAME"
156 147
157 isplatform() 148 isplatform()
161 if [ "$p" = "$1" ]; then 152 if [ "$p" = "$1" ]; then
162 return 0 153 return 0
163 fi 154 fi
164 done 155 done
165 return 1 156 return 1
157 }
158 notisplatform()
159 {
160 for p in $PLATFORM
161 do
162 if [ "$p" = "$1" ]; then
163 return 1
164 fi
165 done
166 return 0
166 } 167 }
167 168
168 169
169 # generate config.mk 170 # generate config.mk
170 cat > "$TEMP_DIR/vars.mk" << __EOF__ 171 cat > "$TEMP_DIR/vars.mk" << __EOF__
200 echo "Toolchain error: $TOOLCHAIN_ERROR" 201 echo "Toolchain error: $TOOLCHAIN_ERROR"
201 echo "Abort." 202 echo "Abort."
202 abort_configure 203 abort_configure
203 fi 204 fi
204 205
205
206 # 206 #
207 # DEPENDENCIES 207 # DEPENDENCIES
208 # 208 #
209 209
210 # create buffer for make variables required by dependencies 210 # create buffer for make variables required by dependencies
211 echo > "$TEMP_DIR/make.mk" 211 echo > "$TEMP_DIR/make.mk"
212 212
213 dependency_libpq() 213 dependency_error_libpq()
214 { 214 {
215 printf "checking for libpq... " 215 printf "checking for libpq... "
216 # dependency libpq 216 # dependency libpq
217 while true 217 while true
218 do 218 do
219 if [ -z "$PKG_CONFIG" ]; then 219 if [ -z "$PKG_CONFIG" ]; then
220 break 220 break
221 fi 221 fi
222 if failed $PKG_CONFIG libpq ; then 222 if $PKG_CONFIG libpq ; then
223 break 223 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libpq`"
224 fi 224 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libpq`"
225 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libpq`" 225 else
226 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libpq`" 226 break
227 fi
227 echo yes 228 echo yes
228 return 0 229 return 1
229 done 230 done
230 231
231 echo no 232 echo no
232 return 1 233 return 0
233 } 234 }
234 dependency_openssl() 235 dependency_error_openssl()
235 { 236 {
236 printf "checking for openssl... " 237 printf "checking for openssl... "
237 # dependency openssl 238 # dependency openssl
238 while true 239 while true
239 do 240 do
240 if [ -z "$PKG_CONFIG" ]; then 241 if [ -z "$PKG_CONFIG" ]; then
241 break 242 break
242 fi 243 fi
243 if failed $PKG_CONFIG openssl ; then 244 if $PKG_CONFIG openssl ; then
244 break 245 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`"
245 fi 246 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`"
246 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`" 247 else
247 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`" 248 break
249 fi
248 echo yes 250 echo yes
249 return 0 251 return 1
250 done 252 done
251 253
252 # dependency openssl platform="bsd" 254 # dependency openssl platform="bsd"
253 while true 255 while true
254 do 256 do
255 if failed isplatform "bsd"; then 257 if notisplatform "bsd"; then
256 break 258 break
257 fi 259 fi
258 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" 260 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto"
259 echo yes 261 echo yes
260 return 0 262 return 1
261 done 263 done
262 264
263 echo no 265 echo no
264 return 1 266 return 0
265 } 267 }
266 dependency_libxml2() 268 dependency_error_libxml2()
267 { 269 {
268 printf "checking for libxml2... " 270 printf "checking for libxml2... "
269 # dependency libxml2 platform="macos" 271 # dependency libxml2 platform="macos"
270 while true 272 while true
271 do 273 do
272 if failed isplatform "macos"; then 274 if notisplatform "macos"; then
273 break 275 break
274 fi 276 fi
275 if tmp_flags=`xml2-config --cflags` ; then 277 if tmp_flags=`xml2-config --cflags` ; then
276 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 278 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags"
277 else 279 else
281 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 283 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags"
282 else 284 else
283 break 285 break
284 fi 286 fi
285 echo yes 287 echo yes
286 return 0 288 return 1
287 done 289 done
288 290
289 # dependency libxml2 291 # dependency libxml2
290 while true 292 while true
291 do 293 do
292 if [ -z "$PKG_CONFIG" ]; then 294 if [ -z "$PKG_CONFIG" ]; then
293 break 295 break
294 fi 296 fi
295 if failed $PKG_CONFIG libxml-2.0 ; then 297 if $PKG_CONFIG libxml-2.0 ; then
296 break 298 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`"
297 fi 299 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`"
298 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`" 300 else
299 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`" 301 break
302 fi
300 echo yes 303 echo yes
301 return 0 304 return 1
302 done 305 done
303 306
304 echo no 307 echo no
305 return 1 308 return 0
306 } 309 }
307 310
308 DEPENDENCIES_FAILED= 311 DEPENDENCIES_FAILED=
309 ERROR=0 312 ERROR=0
310 # unnamed dependencies 313 # unnamed dependencies
339 342
340 # Target 343 # Target
341 TEMP_CFLAGS= 344 TEMP_CFLAGS=
342 TEMP_LDFLAGS= 345 TEMP_LDFLAGS=
343 346
344 if failed dependency_libxml2; then 347 if dependency_error_libxml2; then
345 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " 348 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 "
346 ERROR=1 349 ERROR=1
347 fi 350 fi
348 if failed dependency_openssl; then 351 if dependency_error_openssl; then
349 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " 352 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl "
350 ERROR=1 353 ERROR=1
351 fi 354 fi
352 355
353 # Features 356 # Features
354 if [ -n "$FEATURE_PG" ]; then 357 if [ -n "$FEATURE_PG" ]; then
355 # check dependency 358 # check dependency
356 if failed dependency_libpq ; then 359 if dependency_error_libpq ; then
357 # "auto" features can fail and are just disabled in this case 360 # "auto" features can fail and are just disabled in this case
358 if [ "$FEATURE_PG" = "auto" ]; then 361 if [ "$FEATURE_PG" = "auto" ]; then
359 unset FEATURE_PG 362 unset FEATURE_PG
360 else 363 else
361 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libpq " 364 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libpq "

mercurial