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:" |