1 #!/bin/sh
2
3
4 # some utility functions
5 isplatform()
6 {
7 for p in $PLATFORM
8 do
9 if [ "$p" = "$1" ]; then
10 return 0
11 fi
12 done
13 return 1
14 }
15 notisplatform()
16 {
17 for p in $PLATFORM
18 do
19 if [ "$p" = "$1" ]; then
20 return 1
21 fi
22 done
23 return 0
24 }
25 istoolchain()
26 {
27 for t in $TOOLCHAIN
28 do
29 if [ "$t" = "$1" ]; then
30 return 0
31 fi
32 done
33 return 1
34 }
35 notistoolchain()
36 {
37 for t in $TOOLCHAIN
38 do
39 if [ "$t" = "$1" ]; then
40 return 1
41 fi
42 done
43 return 0
44 }
45
46 # clean abort
47 abort_configure()
48 {
49 rm -Rf "$TEMP_DIR"
50 exit 1
51 }
52
53 # Test for availability of pkg-config
54 PKG_CONFIG=`command -v pkg-config`
55 : ${PKG_CONFIG:="false"}
56
57 # Simple uname based platform detection
58 # $PLATFORM is used for platform dependent dependency selection
59 OS=`uname -s`
60 OS_VERSION=`uname -r`
61 ARCH=`uname -m`
62 printf "Configure script for platform: "
63 if [ "$OS" = "SunOS" ]; then
64 PLATFORM="solaris sunos unix svr4"
65 elif [ "$OS" = "Linux" ]; then
66 PLATFORM="linux unix"
67 elif [ "$OS" = "FreeBSD" ]; then
68 PLATFORM="freebsd bsd unix"
69 elif [ "$OS" = "OpenBSD" ]; then
70 PLATFORM="openbsd bsd unix"
71 elif [ "$OS" = "NetBSD" ]; then
72 PLATFORM="netbsd bsd unix"
73 elif [ "$OS" = "Darwin" ]; then
74 PLATFORM="macos osx bsd unix"
75 elif echo "$OS" | grep -i "MINGW" > /dev/null; then
76 PLATFORM="windows mingw"
77 else
78 PLATFORM="unix"
79 fi
80 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -`
81 echo "$PLATFORM_NAME"
82
83
84 # help text
85 printhelp()
86 {
87 echo "Usage: $0 [OPTIONS]..."
88 if [ $has_overridable_config_vars__ -eq 1 ] ; then
89 echo
90 echo "Configuration:"
91 fi
92 if true \
93 ; then
94 :
95 if [ -z "$prefix__described__" ] ; then
96 prefix__described__=1
97 cat << '__EOF__'
98 --prefix path prefix for architecture-independent files
99 [`pwd`/work]
100 __EOF__
101 fi
102 fi
103 cat << '__EOF__'
104
105 Build Types:
106 --debug add extra compile flags for debug builds
107 --release add extra compile flags for release builds
108
109 Optional Features:
110 --disable-defaultplugins
111 --enable-postgresql
112
113 __EOF__
114 abort_configure
115 }
116
117 # create temporary directory
118 TEMP_DIR=".tmp-`uname -n`"
119 rm -Rf "$TEMP_DIR"
120 if mkdir -p "$TEMP_DIR"; then
121 :
122 else
123 echo "Cannot create tmp dir $TEMP_DIR"
124 echo "Abort"
125 exit 1
126 fi
127 touch "$TEMP_DIR/options"
128 touch "$TEMP_DIR/features"
129
130 # config variables
131 has_overridable_config_vars__=0
132 if true \
133 ; then
134 :
135 if [ -z "$prefix__initialized__" ] ; then
136 has_overridable_config_vars__=1
137 prefix__initialized__=1
138 prefix=`pwd`/work
139 fi
140 if [ -z "$host__initialized__" ] ; then
141 host__initialized__=1
142 host=`uname -n`
143 fi
144 fi
145
146 # features
147 FEATURE_DEFAULTPLUGINS=auto
148
149 #
150 # parse arguments
151 #
152 BUILD_TYPE="default"
153 for ARG in "$@"
154 do
155 case "$ARG" in
156 "--prefix="*) prefix=${ARG#--prefix=} ;;
157 "--help"*) printhelp ;;
158 "--debug") BUILD_TYPE="debug" ;;
159 "--release") BUILD_TYPE="release" ;;
160 "--enable-defaultplugins") FEATURE_DEFAULTPLUGINS=on ;;
161 "--disable-defaultplugins") unset FEATURE_DEFAULTPLUGINS ;;
162 "--enable-postgresql") FEATURE_POSTGRESQL=on ;;
163 "--disable-postgresql") unset FEATURE_POSTGRESQL ;;
164 "-"*) echo "unknown option: $ARG"; abort_configure ;;
165 esac
166 done
167
168 # toolchain detection utilities
169 . make/toolchain.sh
170
171 # check languages
172 lang_c=
173 lang_cpp=
174 if detect_c_compiler ; then
175 lang_c=1
176 fi
177
178
179
180 # set defaults for dir variables
181 : ${exec_prefix:="$prefix"}
182 : ${bindir:='${exec_prefix}/bin'}
183 : ${sbindir:='${exec_prefix}/sbin'}
184 : ${libdir:='${exec_prefix}/lib'}
185 : ${libexecdir:='${exec_prefix}/libexec'}
186 : ${datarootdir:='${prefix}/share'}
187 : ${datadir:='${datarootdir}'}
188 : ${sharedstatedir:='${prefix}/com'}
189 if [ -z "$sysconfdir" ]; then
190 if [ "$prefix" = '/usr' ]; then
191 sysconfdir='/etc'
192 else
193 sysconfdir='${prefix}/etc'
194 fi
195 fi
196 if [ -z "$localstatedir" ]; then
197 if [ "$prefix" = '/usr' ]; then
198 localstatedir='/var'
199 else
200 localstatedir='${prefix}/var'
201 fi
202 fi
203 if [ -z "$runstatedir" ]; then
204 if [ "$prefix" = '/usr' ]; then
205 runstatedir='/var/run'
206 else
207 runstatedir='${prefix}/var'
208 fi
209 fi
210 : ${includedir:='${prefix}/include'}
211 : ${infodir:='${datarootdir}/info'}
212 : ${mandir:='${datarootdir}/man'}
213 : ${localedir:='${datarootdir}/locale'}
214
215
216 # check if a config.site exists and load it
217 CONFIG_SITE_OK=0
218 if [ -n "$CONFIG_SITE" ]; then
219 # CONFIG_SITE may contain space separated file names
220 for cs in $CONFIG_SITE; do
221 printf "loading defaults from $cs... "
222 if [ -f "$cs" ]; then
223 . "$cs"
224 echo ok
225 CONFIG_SITE_OK=1
226 break
227 else
228 echo "not found"
229 fi
230 done
231 elif [ -f "$prefix/share/config.site" ]; then
232 printf "loading site defaults... "
233 . "$prefix/share/config.site"
234 echo ok
235 CONFIG_SITE_OK=1
236 elif [ -f "$prefix/etc/config.site" ]; then
237 printf "loading site defaults... "
238 . "$prefix/etc/config.site"
239 echo ok
240 CONFIG_SITE_OK=1
241 fi
242
243 if [ $CONFIG_SITE_OK -eq 0 ]; then
244 # try to detect the correct libdir on our own, except it was changed by the user
245 if [ "$libdir" = '${exec_prefix}/lib' ] ; then
246 if [ "$TOOLCHAIN_WSIZE" = "64" ] ; then
247 if [ "$OS" = "SunOS" ]; then
248 [ -d "${exec_prefix}/lib/64" ] && libdir='${exec_prefix}/lib/64'
249 else
250 [ -d "${exec_prefix}/lib64" ] && libdir='${exec_prefix}/lib64'
251 fi
252 elif [ "$TOOLCHAIN_WSIZE" = "32" ] ; then
253 if [ "$OS" = "SunOS" ]; then
254 [ -d "${exec_prefix}/lib/32" ] && libdir='${exec_prefix}/lib/32'
255 else
256 [ -d "${exec_prefix}/lib32" ] && libdir='${exec_prefix}/lib32'
257 fi
258 fi
259 fi
260 fi
261
262
263 # generate vars.mk
264 echo '# configuration' > "$TEMP_DIR/vars.mk"
265 echo "prefix=$prefix" >> "$TEMP_DIR/vars.mk"
266 echo "host=$host" >> "$TEMP_DIR/vars.mk"
267 echo >> "$TEMP_DIR/vars.mk"
268
269 #
270 # DEPENDENCIES
271 #
272
273 # create buffer for make variables required by dependencies
274 echo > "$TEMP_DIR/make.mk"
275
276 test_pkg_config()
277 {
278 if "$PKG_CONFIG" --exists "$1" ; then :
279 else return 1 ; fi
280 if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then :
281 else return 1 ; fi
282 if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then :
283 else return 1 ; fi
284 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then :
285 else return 1 ; fi
286 return 0
287 }
288
289 print_check_msg()
290 {
291 if [ -z "$1" ]; then
292 shift
293 printf "$@"
294 fi
295 }
296
297 dependency_error_libpq()
298 {
299 print_check_msg "$dep_checked_libpq" "checking for libpq... "
300 # dependency libpq
301 while true
302 do
303 if [ -z "$PKG_CONFIG" ]; then
304 break
305 fi
306 if test_pkg_config "libpq" "" "" "" ; then
307 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libpq`"
308 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libpq`"
309 else
310 break
311 fi
312 cat >> $TEMP_DIR/make.mk << __EOF__
313
314 # dependency: libpq
315 CFLAGS += -DENABLE_POSTGRESQL
316 PLUGINS += postgresql
317 TEST_PLUGIN_LDFLAGS += -lwspgtest
318 __EOF__
319 print_check_msg "$dep_checked_libpq" "yes\n"
320 dep_checked_libpq=1
321 return 1
322 done
323
324 print_check_msg "$dep_checked_libpq" "no\n"
325 dep_checked_libpq=1
326 return 0
327 }
328 dependency_error_openssl()
329 {
330 print_check_msg "$dep_checked_openssl" "checking for openssl... "
331 # dependency openssl
332 while true
333 do
334 if [ -z "$PKG_CONFIG" ]; then
335 break
336 fi
337 if test_pkg_config "openssl" "" "" "" ; then
338 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`"
339 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`"
340 else
341 break
342 fi
343 print_check_msg "$dep_checked_openssl" "yes\n"
344 dep_checked_openssl=1
345 return 1
346 done
347
348 # dependency openssl
349 while true
350 do
351 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto"
352 print_check_msg "$dep_checked_openssl" "yes\n"
353 dep_checked_openssl=1
354 return 1
355 done
356
357 print_check_msg "$dep_checked_openssl" "no\n"
358 dep_checked_openssl=1
359 return 0
360 }
361 dependency_error_libxml2()
362 {
363 print_check_msg "$dep_checked_libxml2" "checking for libxml2... "
364 # dependency libxml2
365 while true
366 do
367 if [ -z "$PKG_CONFIG" ]; then
368 break
369 fi
370 if test_pkg_config "libxml-2.0" "" "" "" ; then
371 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`"
372 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`"
373 else
374 break
375 fi
376 print_check_msg "$dep_checked_libxml2" "yes\n"
377 dep_checked_libxml2=1
378 return 1
379 done
380
381 # dependency libxml2
382 while true
383 do
384 if tmp_flags=`xml2-config --cflags` ; then
385 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags"
386 else
387 break
388 fi
389 if tmp_flags=`xml2-config --libs` ; then
390 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags"
391 else
392 break
393 fi
394 print_check_msg "$dep_checked_libxml2" "yes\n"
395 dep_checked_libxml2=1
396 return 1
397 done
398
399 print_check_msg "$dep_checked_libxml2" "no\n"
400 dep_checked_libxml2=1
401 return 0
402 }
403 dependency_error_defaultplugins()
404 {
405 print_check_msg "$dep_checked_defaultplugins" "checking for defaultplugins... "
406 # dependency defaultplugins
407 while true
408 do
409 cat >> $TEMP_DIR/make.mk << __EOF__
410
411 # dependency: defaultplugins
412 PLUGINS += simple-anti-bot
413 TEST_PLUGIN_LDFLAGS += -lsabtest
414 __EOF__
415 print_check_msg "$dep_checked_defaultplugins" "yes\n"
416 dep_checked_defaultplugins=1
417 return 1
418 done
419
420 print_check_msg "$dep_checked_defaultplugins" "no\n"
421 dep_checked_defaultplugins=1
422 return 0
423 }
424
425 # start collecting dependency information
426 echo > "$TEMP_DIR/flags.mk"
427
428 DEPENDENCIES_FAILED=
429 ERROR=0
430 # unnamed dependencies
431 cat >> "$TEMP_DIR/make.mk" << __EOF__
432
433 # definitions from unnamed dependencies
434 __EOF__
435 TEMP_CFLAGS="$CFLAGS"
436 TEMP_CXXFLAGS="$CXXFLAGS"
437 TEMP_LDFLAGS="$LDFLAGS"
438 while true
439 do
440 while true
441 do
442 if [ -z "$lang_c" ] ; then
443 ERROR=1
444 break
445 fi
446
447 break
448 done
449 break
450 done
451 while true
452 do
453 if notisplatform "linux"; then
454 break
455 fi
456 while true
457 do
458
459 TEMP_CFLAGS="$TEMP_CFLAGS -DLINUX"
460 TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread -ldl -lm -lldap -llber"
461 cat >> "$TEMP_DIR/make.mk" << __EOF__
462 # platform dependend source files
463 PLATFORM_DAEMONOBJ = event_linux.o
464
465 # platform dependend vars
466 OBJ_EXT = .o
467 LIB_EXT = .so
468 APP_EXT =
469
470 # ld flags
471 UCX_SO_NAME =
472 RPATH_WS_LIB_FLAG = -Wl,-rpath,'\$\$ORIGIN/../lib'
473 __EOF__
474 break
475 done
476 break
477 done
478 while true
479 do
480 if notisplatform "bsd"; then
481 break
482 fi
483 if isplatform "macos" || istoolchain "macos"; then
484 break
485 fi
486 while true
487 do
488
489 TEMP_CFLAGS="$TEMP_CFLAGS -DBSD -I/usr/local/include"
490 TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread -lm -lldap -llber"
491 cat >> "$TEMP_DIR/make.mk" << __EOF__
492 # platform dependend source files
493 PLATFORM_DAEMONOBJ = event_bsd.o
494
495 # platform dependend vars
496 OBJ_EXT = .o
497 LIB_EXT = .so
498 APP_EXT =
499
500 # ld flags
501 UCX_SO_NAME =
502 RPATH_WS_LIB_FLAG = -Wl,-rpath,'\$\$ORIGIN/../lib'
503 __EOF__
504 break
505 done
506 break
507 done
508 while true
509 do
510 if notisplatform "macos"; then
511 break
512 fi
513 while true
514 do
515
516 TEMP_CFLAGS="$TEMP_CFLAGS -DBSD -DOSX"
517 TEMP_LDFLAGS="$TEMP_LDFLAGS -lpthread -ldl -lm -lldap -llber"
518 cat >> "$TEMP_DIR/make.mk" << __EOF__
519 # platform dependend source files
520 PLATFORM_DAEMONOBJ = event_bsd.o
521
522 # platform dependend vars
523 OBJ_EXT = .o
524 LIB_EXT = .dylib
525 APP_EXT =
526
527 # ld flags
528 SHLIB_LDFLAGS = -dynamiclib
529 UCX_SO_NAME = -install_name @rpath/libucx.dylib
530 RPATH_WS_LIB_FLAG = -rpath @loader_path/../lib
531 __EOF__
532 break
533 done
534 break
535 done
536 while true
537 do
538 if notisplatform "solaris"; then
539 break
540 fi
541 while true
542 do
543
544 TEMP_CFLAGS="$TEMP_CFLAGS -DSOLARIS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS"
545 TEMP_LDFLAGS="$TEMP_LDFLAGS -lsocket -lnsl -lsendfile -lposix4 -lpthread -ldl -lm -lmd -lldap"
546 cat >> "$TEMP_DIR/make.mk" << __EOF__
547 # platform dependend source files
548 PLATFORM_DAEMONOBJ = event_solaris.o
549
550 # platform dependend vars
551 OBJ_EXT = .o
552 LIB_EXT = .so
553 APP_EXT =
554 __EOF__
555 break
556 done
557 break
558 done
559 while true
560 do
561 while true
562 do
563
564 cat >> "$TEMP_DIR/make.mk" << __EOF__
565 HOST = $host
566 INSTALL_DIR = $prefix
567 __EOF__
568 break
569 done
570 break
571 done
572
573 # build type
574 if [ "$BUILD_TYPE" = "debug" ]; then
575 TEMP_CFLAGS="\${DEBUG_CFLAGS} $TEMP_CFLAGS"
576 TEMP_CXXFLAGS="\${DEBUG_CXXFLAGS} $TEMP_CXXFLAGS"
577 fi
578 if [ "$BUILD_TYPE" = "release" ]; then
579 TEMP_CFLAGS="\${RELEASE_CFLAGS} $TEMP_CFLAGS"
580 TEMP_CXXFLAGS="\${RELEASE_CXXFLAGS} $TEMP_CXXFLAGS"
581 fi
582
583 # add general dependency flags to flags.mk
584 echo "# general flags" >> "$TEMP_DIR/flags.mk"
585 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
586 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
587 fi
588 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
589 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
590 fi
591 if [ -n "${TEMP_LDFLAGS}" ]; then
592 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
593 fi
594
595 #
596 # OPTION VALUES
597 #
598
599 #
600 # TARGETS
601 #
602
603 echo >> "$TEMP_DIR/flags.mk"
604 echo "configuring global target"
605 echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk"
606 TEMP_CFLAGS=
607 TEMP_CXXFLAGS=
608 TEMP_LDFLAGS=
609
610 if dependency_error_libxml2; then
611 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 "
612 ERROR=1
613 fi
614 if dependency_error_openssl; then
615 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl "
616 ERROR=1
617 fi
618
619 # Features
620 if [ -n "$FEATURE_DEFAULTPLUGINS" ]; then
621 # check dependency
622 if dependency_error_defaultplugins ; then
623 # "auto" features can fail and are just disabled in this case
624 if [ "$FEATURE_DEFAULTPLUGINS" = "auto" ]; then
625 DISABLE_FEATURE_DEFAULTPLUGINS=1
626 else
627 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED defaultplugins "
628 ERROR=1
629 fi
630 fi
631 if [ -n "$DISABLE_FEATURE_DEFAULTPLUGINS" ]; then
632 unset FEATURE_DEFAULTPLUGINS
633 fi
634 fi
635 if [ -n "$FEATURE_DEFAULTPLUGINS" ]; then
636 :
637 else
638 :
639 fi
640
641 OPTIONS_UNSELECTED=
642
643 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
644 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
645 fi
646 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
647 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
648 fi
649 if [ -n "${TEMP_LDFLAGS}" ]; then
650 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
651 fi
652
653 echo >> "$TEMP_DIR/flags.mk"
654 echo "configuring target: postgresql"
655 echo "# flags for target postgresql" >> "$TEMP_DIR/flags.mk"
656 TEMP_CFLAGS=
657 TEMP_CXXFLAGS=
658 TEMP_LDFLAGS=
659
660
661 # Features
662 if [ -n "$FEATURE_POSTGRESQL" ]; then
663 # check dependency
664 if dependency_error_libpq ; then
665 # "auto" features can fail and are just disabled in this case
666 if [ "$FEATURE_POSTGRESQL" = "auto" ]; then
667 DISABLE_FEATURE_POSTGRESQL=1
668 else
669 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libpq "
670 ERROR=1
671 fi
672 fi
673 if [ -n "$DISABLE_FEATURE_POSTGRESQL" ]; then
674 unset FEATURE_POSTGRESQL
675 fi
676 fi
677 if [ -n "$FEATURE_POSTGRESQL" ]; then
678 :
679 else
680 :
681 fi
682
683 OPTIONS_UNSELECTED=
684
685 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
686 echo "POSTGRESQL_CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
687 fi
688 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
689 echo "POSTGRESQL_CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
690 fi
691 if [ -n "${TEMP_LDFLAGS}" ]; then
692 echo "POSTGRESQL_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
693 fi
694
695
696 # final result
697 echo "configure finished"
698 echo
699
700 if [ $ERROR -ne 0 ]; then
701 echo "Error:"
702 if [ -n "$DEPENDENCIES_FAILED" ]; then
703 echo "Unresolved dependencies: $DEPENDENCIES_FAILED"
704 fi
705 if [ -n "$OPTIONS_UNSELECTED" ]; then
706 echo "Unselected options: $OPTIONS_UNSELECTED"
707 fi
708 abort_configure
709 fi
710
711 echo "Toolchain:"
712 echo " name: $TOOLCHAIN_NAME"
713 if [ -n "$TOOLCHAIN_CC" ]; then
714 echo " cc: $TOOLCHAIN_CC"
715 fi
716 if [ -n "$TOOLCHAIN_CXX" ]; then
717 echo " cxx: $TOOLCHAIN_CXX"
718 fi
719 if [ -n "$TOOLCHAIN_WSIZE" ]; then
720 echo " word size: $TOOLCHAIN_WSIZE bit"
721 fi
722 if [ -n "$TOOLCHAIN_CSTD" ]; then
723 echo " default C std: $TOOLCHAIN_CSTD"
724 fi
725 if [ $has_overridable_config_vars__ -eq 1 ]; then
726 echo
727 echo "Config:"
728 if [ -n "$prefix__initialized__" ]; then
729 printf ' %-16s' 'prefix:'
730 echo "$prefix"
731 fi
732 fi
733 echo
734 echo "Features:"
735 printf ' %-16s' 'defaultplugins:'
736 if [ -n "$FEATURE_DEFAULTPLUGINS" ]; then
737 echo 'on'
738 else
739 echo 'off'
740 fi
741 printf ' %-16s' 'postgresql:'
742 if [ -n "$FEATURE_POSTGRESQL" ]; then
743 echo 'on'
744 else
745 echo 'off'
746 fi
747 echo
748
749 # generate the config.mk file
750 pwd=`pwd`
751 cat > "$TEMP_DIR/config.mk" << __EOF__
752 #
753 # config.mk generated by:
754 # pwd: $pwd
755 # $0 $@
756 #
757
758 __EOF__
759 write_toolchain_defaults "$TEMP_DIR/toolchain.mk"
760 cat "$TEMP_DIR/config.mk" "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk
761 rm -Rf "$TEMP_DIR"
762