| 81 "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;; |
91 "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;; |
| 82 "--localstatedir="*) LOCALSTATEDIR=${ARG#--localstatedir=} ;; |
92 "--localstatedir="*) LOCALSTATEDIR=${ARG#--localstatedir=} ;; |
| 83 "--includedir="*) INCLUDEDIR=${ARG#--includedir=} ;; |
93 "--includedir="*) INCLUDEDIR=${ARG#--includedir=} ;; |
| 84 "--infodir="*) INFODIR=${ARG#--infodir=} ;; |
94 "--infodir="*) INFODIR=${ARG#--infodir=} ;; |
| 85 "--mandir"*) MANDIR=${ARG#--mandir} ;; |
95 "--mandir"*) MANDIR=${ARG#--mandir} ;; |
| 86 "--help"*) printhelp; rm -Rf "$TEMP_DIR"; exit 1 ;; |
96 "--help"*) printhelp; abort_configure ;; |
| 87 "--debug") BUILD_TYPE="debug" ;; |
97 "--debug") BUILD_TYPE="debug" ;; |
| 88 "--release") BUILD_TYPE="release" ;; |
98 "--release") BUILD_TYPE="release" ;; |
| 89 "--enable-pg") FEATURE_PG=on ;; |
99 "--enable-pg") FEATURE_PG=on ;; |
| 90 "--disable-pg") unset FEATURE_PG ;; |
100 "--disable-pg") unset FEATURE_PG ;; |
| 91 "-"*) echo "unknown option: $ARG"; rm -Rf "$TEMP_DIR"; exit 1 ;; |
101 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
| 92 esac |
102 esac |
| 93 done |
103 done |
| 94 |
104 |
| |
105 |
| 95 # set dir variables |
106 # set dir variables |
| 96 if [ -z "$BINDIR" ]; then |
107 : ${BINDIR:="$EPREFIX/bin"} |
| 97 BINDIR=$EPREFIX/bin |
108 : ${SBINDIR:="$EPREFIX/sbin"} |
| 98 fi |
109 : ${LIBDIR:="$EPREFIX/lib"} |
| 99 if [ -z "$SBINDIR" ]; then |
110 : ${LIBEXECDIR:="$EPREFIX/libexec"} |
| 100 SBINDIR=$EPREFIX/sbin |
111 : ${DATADIR:="$PREFIX/share"} |
| 101 fi |
112 : ${SYSCONFDIR:="$PREFIX/etc"} |
| 102 if [ -z "$LIBDIR" ]; then |
113 : ${SHAREDSTATEDIR:="$PREFIX/com"} |
| 103 LIBDIR=$EPREFIX/lib |
114 : ${LOCALSTATEDIR:="$PREFIX/var"} |
| 104 fi |
115 : ${INCLUDEDIR:="$PREFIX/include"} |
| 105 if [ -z "$LIBEXEC" ]; then |
116 : ${INFODIR:="$PREFIX/info"} |
| 106 LIBEXECDIR=$EPREFIX/libexec |
117 : ${MANDIR:="$PREFIX/man"} |
| 107 fi |
118 |
| 108 if [ -z "$DATADIR" ]; then |
119 # Test for availability of pkg-config |
| 109 DATADIR=$PREFIX/share |
120 PKG_CONFIG=`command -v pkg-config` |
| 110 fi |
121 : ${PKG_CONFIG:="false"} |
| 111 if [ -z "$SYSCONFDIR" ]; then |
|
| 112 SYSCONFDIR=$PREFIX/etc |
|
| 113 fi |
|
| 114 if [ -z "$SHAREDSTATEDIR" ]; then |
|
| 115 SHAREDSTATEDIR=$PREFIX/com |
|
| 116 fi |
|
| 117 if [ -z "$LOCALSTATEDIR" ]; then |
|
| 118 LOCALSTATEDIR=$PREFIX/var |
|
| 119 fi |
|
| 120 if [ -z "$INCLUDEDIR" ]; then |
|
| 121 INCLUDEDIR=$PREFIX/include |
|
| 122 fi |
|
| 123 if [ -z "$INFODIR" ]; then |
|
| 124 INFODIR=$PREFIX/info |
|
| 125 fi |
|
| 126 if [ -z "$MANDIR" ]; then |
|
| 127 MANDIR=$PREFIX/man |
|
| 128 fi |
|
| 129 |
|
| 130 which pkg-config > /dev/null |
|
| 131 if [ $? -eq 0 ]; then |
|
| 132 PKG_CONFIG=pkg-config |
|
| 133 else |
|
| 134 PKG_CONFIG=false |
|
| 135 fi |
|
| 136 |
122 |
| 137 # Simple uname based platform detection |
123 # Simple uname based platform detection |
| 138 # $PLATFORM is used for platform dependent dependency selection |
124 # $PLATFORM is used for platform dependent dependency selection |
| |
125 OS=`uname -s` |
| |
126 OS_VERSION=`uname -r` |
| 139 printf "detect platform... " |
127 printf "detect platform... " |
| 140 if [ "$OS" = "SunOS" ]; then |
128 if [ "$OS" = "SunOS" ]; then |
| 141 PLATFORM="solaris sunos unix svr4" |
129 PLATFORM="solaris sunos unix svr4" |
| 142 fi |
130 fi |
| 143 if [ "$OS" = "Linux" ]; then |
131 if [ "$OS" = "Linux" ]; then |
| 208 SHAREDSTATEDIR=$SHAREDSTATEDIR |
180 SHAREDSTATEDIR=$SHAREDSTATEDIR |
| 209 LOCALSTATEDIR=$LOCALSTATEDIR |
181 LOCALSTATEDIR=$LOCALSTATEDIR |
| 210 INCLUDEDIR=$INCLUDEDIR |
182 INCLUDEDIR=$INCLUDEDIR |
| 211 INFODIR=$INFODIR |
183 INFODIR=$INFODIR |
| 212 MANDIR=$MANDIR |
184 MANDIR=$MANDIR |
| 213 |
185 HOST=$HOST |
| |
186 PREFIX=$PREFIX |
| |
187 INSTALL_DIR=$INSTALL_DIR |
| 214 __EOF__ |
188 __EOF__ |
| 215 |
189 cat > "$TEMP_DIR/config.mk" << __EOF__ |
| 216 echo > "$TEMP_DIR/make.mk" |
190 # |
| 217 |
191 # config.mk generated by configure |
| 218 ENV_CFLAGS=$CFLAGS |
192 # |
| 219 ENV_LDFLAGS=$LDFLAGS |
193 __EOF__ |
| 220 ENV_CXXFLAGS=$CXXFLAGS |
194 sort -u "$TEMP_DIR/vars.mk" >> "$TEMP_DIR/config.mk" |
| 221 |
195 |
| 222 # Toolchain detection |
196 |
| |
197 # toolchain detection |
| 223 # this will insert make vars to config.mk |
198 # this will insert make vars to config.mk |
| 224 . make/toolchain.sh |
199 . make/toolchain.sh |
| 225 |
200 if [ -n "$TOOLCHAIN_ERROR" ]; then |
| 226 # add user specified flags to config.mk |
201 echo "Toolchain error: $TOOLCHAIN_ERROR" |
| 227 echo "# project specific flags" >> "$TEMP_DIR/config.mk" |
202 echo "Abort." |
| 228 if [ -n "${ENV_CFLAGS}" ]; then |
203 abort_configure |
| 229 echo "CFLAGS += $ENV_CFLAGS" >> "$TEMP_DIR/config.mk" |
|
| 230 fi |
|
| 231 if [ -n "${ENV_CXXFLAGS}" ]; then |
|
| 232 echo "CXXFLAGS += $ENV_CXXFLAGS" >> "$TEMP_DIR/config.mk" |
|
| 233 fi |
|
| 234 if [ -n "${ENV_LDFLAGS}" ]; then |
|
| 235 echo "LDFLAGS += $ENV_LDFLAGS" >> "$TEMP_DIR/config.mk" |
|
| 236 fi |
204 fi |
| 237 |
205 |
| 238 # |
206 # |
| 239 # DEPENDENCIES |
207 # DEPENDENCIES |
| 240 # |
208 # |
| 241 |
209 |
| 242 dependency_libpq() |
210 # create buffer for make variables required by dependencies |
| |
211 echo > "$TEMP_DIR/make.mk" |
| |
212 |
| |
213 dependency_error_libpq() |
| 243 { |
214 { |
| 244 printf "checking for libpq... " |
215 printf "checking for libpq... " |
| 245 # dependency libpq |
216 # dependency libpq |
| 246 while true |
217 while true |
| 247 do |
218 do |
| 248 if [ -z "$PKG_CONFIG" ]; then |
219 if [ -z "$PKG_CONFIG" ]; then |
| 249 break |
220 break |
| 250 fi |
221 fi |
| 251 $PKG_CONFIG libpq |
222 if $PKG_CONFIG libpq ; then |
| 252 if [ $? -ne 0 ] ; then |
223 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libpq`" |
| 253 break |
224 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libpq`" |
| 254 fi |
225 else |
| 255 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags libpq`" |
226 break |
| 256 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs libpq`" |
227 fi |
| 257 echo yes |
228 echo yes |
| 258 return 0 |
229 return 1 |
| 259 done |
230 done |
| 260 |
231 |
| 261 echo no |
232 echo no |
| 262 return 1 |
233 return 0 |
| 263 } |
234 } |
| 264 dependency_openssl() |
235 dependency_error_openssl() |
| 265 { |
236 { |
| 266 printf "checking for openssl... " |
237 printf "checking for openssl... " |
| 267 # dependency openssl |
238 # dependency openssl |
| 268 while true |
239 while true |
| 269 do |
240 do |
| 270 if [ -z "$PKG_CONFIG" ]; then |
241 if [ -z "$PKG_CONFIG" ]; then |
| 271 break |
242 break |
| 272 fi |
243 fi |
| 273 $PKG_CONFIG openssl |
244 if $PKG_CONFIG openssl ; then |
| 274 if [ $? -ne 0 ] ; then |
245 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`" |
| 275 break |
246 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`" |
| 276 fi |
247 else |
| 277 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags openssl`" |
248 break |
| 278 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs openssl`" |
249 fi |
| 279 echo yes |
250 echo yes |
| 280 return 0 |
251 return 1 |
| 281 done |
252 done |
| 282 |
253 |
| 283 # dependency openssl platform="bsd" |
254 # dependency openssl platform="bsd" |
| 284 while true |
255 while true |
| 285 do |
256 do |
| 286 if isnotplatform "bsd"; then |
257 if notisplatform "bsd"; then |
| 287 break |
258 break |
| 288 fi |
259 fi |
| 289 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
260 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" |
| 290 echo yes |
261 echo yes |
| 291 return 0 |
262 return 1 |
| 292 done |
263 done |
| 293 |
264 |
| 294 echo no |
265 echo no |
| 295 return 1 |
266 return 0 |
| 296 } |
267 } |
| 297 dependency_libxml2() |
268 dependency_error_libxml2() |
| 298 { |
269 { |
| 299 printf "checking for libxml2... " |
270 printf "checking for libxml2... " |
| 300 # dependency libxml2 platform="macos" |
271 # dependency libxml2 platform="macos" |
| 301 while true |
272 while true |
| 302 do |
273 do |
| 303 if isnotplatform "macos"; then |
274 if notisplatform "macos"; then |
| 304 break |
275 break |
| 305 fi |
276 fi |
| 306 xml2-config --cflags > /dev/null |
277 if tmp_flags=`xml2-config --cflags` ; then |
| 307 if [ $? -eq 0 ]; then |
278 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" |
| 308 TEMP_CFLAGS="$TEMP_CFLAGS `xml2-config --cflags`" |
|
| 309 else |
279 else |
| 310 break |
280 break |
| 311 fi |
281 fi |
| 312 xml2-config --libs > /dev/null |
282 if tmp_flags=`xml2-config --libs` ; then |
| 313 if [ $? -eq 0 ]; then |
283 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" |
| 314 TEMP_LDFLAGS="$TEMP_LDFLAGS `xml2-config --libs`" |
|
| 315 else |
284 else |
| 316 break |
285 break |
| 317 fi |
286 fi |
| 318 echo yes |
287 echo yes |
| 319 return 0 |
288 return 1 |
| 320 done |
289 done |
| 321 |
290 |
| 322 # dependency libxml2 |
291 # dependency libxml2 |
| 323 while true |
292 while true |
| 324 do |
293 do |
| 325 if [ -z "$PKG_CONFIG" ]; then |
294 if [ -z "$PKG_CONFIG" ]; then |
| 326 break |
295 break |
| 327 fi |
296 fi |
| 328 $PKG_CONFIG libxml-2.0 |
297 if $PKG_CONFIG libxml-2.0 ; then |
| 329 if [ $? -ne 0 ] ; then |
298 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`" |
| 330 break |
299 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`" |
| 331 fi |
300 else |
| 332 TEMP_CFLAGS="$TEMP_CFLAGS `$PKG_CONFIG --cflags libxml-2.0`" |
301 break |
| 333 TEMP_LDFLAGS="$TEMP_LDFLAGS `$PKG_CONFIG --libs libxml-2.0`" |
302 fi |
| 334 echo yes |
303 echo yes |
| 335 return 0 |
304 return 1 |
| 336 done |
305 done |
| 337 |
306 |
| 338 echo no |
307 echo no |
| 339 return 1 |
308 return 0 |
| 340 } |
309 } |
| 341 |
310 |
| 342 DEPENDENCIES_FAILED= |
311 DEPENDENCIES_FAILED= |
| 343 ERROR=0 |
312 ERROR=0 |
| 344 # general dependencies |
313 # unnamed dependencies |
| 345 TEMP_CFLAGS= |
314 TEMP_CFLAGS= |
| 346 TEMP_LDFLAGS= |
315 TEMP_LDFLAGS= |
| 347 while true |
316 while true |
| 348 do |
317 do |
| 349 while true |
318 while true |
| 350 do |
319 do |
| 351 |
320 |
| 352 |
|
| 353 break |
321 break |
| 354 done |
322 done |
| 355 |
|
| 356 break |
323 break |
| 357 done |
324 done |
| 358 |
325 |
| 359 # add general dependency flags to config.mk |
326 # add unnamed dependency flags to config.mk |
| 360 echo >> "$TEMP_DIR/config.mk" |
327 echo >> "$TEMP_DIR/config.mk" |
| 361 if [ -n "${TEMP_CFLAGS}" ]; then |
328 if [ -n "${TEMP_CFLAGS}" ]; then |
| 362 echo "CFLAGS += $TEMP_CFLAGS" >> $TEMP_DIR/config.mk |
329 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/config.mk" |
| 363 fi |
|
| 364 if [ -n "${TEMP_CXXFLAGS}" ]; then |
|
| 365 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> $TEMP_DIR/config.mk |
|
| 366 fi |
330 fi |
| 367 if [ -n "${TEMP_LDFLAGS}" ]; then |
331 if [ -n "${TEMP_LDFLAGS}" ]; then |
| 368 echo "LDFLAGS += $TEMP_LDFLAGS" >> $TEMP_DIR/config.mk |
332 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/config.mk" |
| 369 fi |
333 fi |
| 370 |
334 |
| 371 # |
335 # |
| 372 # OPTION VALUES |
336 # OPTION VALUES |
| 373 # |
337 # |
| 374 |
338 |
| 375 # |
339 # |
| 376 # TARGETS |
340 # TARGETS |
| 377 # |
341 # |
| 378 TEMP_CFLAGS= |
|
| 379 TEMP_CXXFLAGS= |
|
| 380 TEMP_LDFLAGS= |
|
| 381 |
342 |
| 382 # Target |
343 # Target |
| 383 TEMP_CFLAGS= |
344 TEMP_CFLAGS= |
| 384 TEMP_LDFLAGS= |
345 TEMP_LDFLAGS= |
| 385 TEMP_CXXFLAGS= |
346 |
| 386 |
347 if dependency_error_libxml2; then |
| 387 dependency_libxml2 |
|
| 388 if [ $? -ne 0 ]; then |
|
| 389 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " |
348 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " |
| 390 ERROR=1 |
349 ERROR=1 |
| 391 fi |
350 fi |
| 392 dependency_openssl |
351 if dependency_error_openssl; then |
| 393 if [ $? -ne 0 ]; then |
|
| 394 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " |
352 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " |
| 395 ERROR=1 |
353 ERROR=1 |
| 396 fi |
354 fi |
| 397 |
355 |
| 398 # Features |
356 # Features |
| 399 if [ -n "$FEATURE_PG" ]; then |
357 if [ -n "$FEATURE_PG" ]; then |
| 400 # check dependency |
358 # check dependency |
| 401 dependency_libpq |
359 if dependency_error_libpq ; then |
| 402 if [ $? -ne 0 ]; then |
|
| 403 # "auto" features can fail and are just disabled in this case |
360 # "auto" features can fail and are just disabled in this case |
| 404 if [ "$FEATURE_PG" != "auto" ]; then |
361 if [ "$FEATURE_PG" = "auto" ]; then |
| |
362 unset FEATURE_PG |
| |
363 else |
| 405 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libpq " |
364 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libpq " |
| 406 ERROR=1 |
365 ERROR=1 |
| 407 else |
|
| 408 unset FEATURE_PG |
|
| 409 fi |
366 fi |
| 410 fi |
367 fi |
| 411 fi |
368 fi |
| 412 |
369 |
| 413 |
370 |
| 414 echo >> "$TEMP_DIR/config.mk" |
371 echo >> "$TEMP_DIR/config.mk" |
| 415 if [ -n "${TEMP_CFLAGS}" ]; then |
372 if [ -n "${TEMP_CFLAGS}" ]; then |
| 416 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/config.mk" |
373 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/config.mk" |
| 417 fi |
374 fi |
| 418 if [ -n "${TEMP_CXXFLAGS}" ]; then |
|
| 419 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/config.mk" |
|
| 420 fi |
|
| 421 if [ "$BUILD_TYPE" = "debug" ]; then |
375 if [ "$BUILD_TYPE" = "debug" ]; then |
| 422 echo 'CFLAGS += ${DEBUG_FLAGS}' >> "$TEMP_DIR/config.mk" |
376 echo 'CFLAGS += ${DEBUG_FLAGS}' >> "$TEMP_DIR/config.mk" |
| 423 echo 'CXXFLAGS += ${DEBUG_FLAGS}' >> "$TEMP_DIR/config.mk" |
|
| 424 fi |
377 fi |
| 425 if [ "$BUILD_TYPE" = "release" ]; then |
378 if [ "$BUILD_TYPE" = "release" ]; then |
| 426 echo 'CFLAGS += ${RELEASE_FLAGS}' >> "$TEMP_DIR/config.mk" |
379 echo 'CFLAGS += ${RELEASE_FLAGS}' >> "$TEMP_DIR/config.mk" |
| 427 echo 'CXXFLAGS += ${RELEASE_FLAGS}' >> "$TEMP_DIR/config.mk" |
|
| 428 fi |
380 fi |
| 429 if [ -n "${TEMP_LDFLAGS}" ]; then |
381 if [ -n "${TEMP_LDFLAGS}" ]; then |
| 430 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/config.mk" |
382 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/config.mk" |
| 431 fi |
383 fi |
| 432 |
384 |
| 433 if [ $ERROR -ne 0 ]; then |
385 if [ $ERROR -ne 0 ]; then |
| 434 echo |
386 echo |
| 435 echo "Error: Unresolved dependencies" |
387 echo "Error: Unresolved dependencies" |
| 436 echo "$DEPENDENCIES_FAILED" |
388 echo "$DEPENDENCIES_FAILED" |
| 437 rm -Rf "$TEMP_DIR" |
389 abort_configure |
| 438 exit 1 |
|
| 439 fi |
390 fi |
| 440 |
391 |
| 441 echo "configure finished" |
392 echo "configure finished" |
| 442 echo |
393 echo |
| 443 echo "Build Config:" |
394 echo "Build Config:" |