make/configure.vm

changeset 944
cc23aad6335e
parent 607
cfcc3fb12d7d
equal deleted inserted replaced
943:9b5948aa5b90 944:cc23aad6335e
84 84
85 # help text 85 # help text
86 printhelp() 86 printhelp()
87 { 87 {
88 echo "Usage: $0 [OPTIONS]..." 88 echo "Usage: $0 [OPTIONS]..."
89 cat << __EOF__ 89 echo 'Configuration:'
90 Installation directories: 90 #foreach( $cfg in $config )
91 --prefix=PREFIX path prefix for architecture-independent files 91 if true \
92 [${D}prefix] 92 #if( $cfg.platform )
93 --exec-prefix=EPREFIX path prefix for architecture-dependent files 93 && isplatform "${cfg.platform}" \
94 [PREFIX] 94 #end
95 95 #foreach( $np in $cfg.notList )
96 --bindir=DIR user executables [EPREFIX/bin] 96 && notisplatform "${np}" \
97 --sbindir=DIR system admin executables [EPREFIX/sbin] 97 #end
98 --libexecdir=DIR program executables [EPREFIX/libexec] 98 ; then
99 --sysconfdir=DIR system configuration files [PREFIX/etc] 99 :
100 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 100 #foreach( $var in $cfg.vars )
101 --localstatedir=DIR modifiable single-machine data [PREFIX/var] 101 #if( $var.overridable )
102 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] 102 if test -z "${D}${var.varName}__described__"; then
103 --libdir=DIR object code libraries [EPREFIX/lib] 103 ${var.varName}__described__=1
104 --includedir=DIR C header files [PREFIX/include] 104 cat << '__EOF__'
105 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] 105 ${var.helpText}
106 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] 106 __EOF__
107 --infodir=DIR info documentation [DATAROOTDIR/info] 107 fi
108 --mandir=DIR man documentation [DATAROOTDIR/man] 108 #end
109 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] 109 #end
110 fi
111 #end
112 cat << '__EOF__'
110 113
111 Build Types: 114 Build Types:
112 --debug add extra compile flags for debug builds 115 --debug add extra compile flags for debug builds
113 --release add extra compile flags for release builds 116 --release add extra compile flags for release builds
114 #if( $options.size() > 0 ) 117 #if( $options.size() > 0 )
115 118
116 Options: 119 Options:
117 #foreach( $opt in $options ) 120 #foreach( $opt in $options )
118 --${opt.argument}=${opt.valuesString} 121 ${opt.helpText}
119 #end 122 #end
120 #end 123 #end
121 #if( $features.size() > 0 ) 124 #if( $features.size() > 0 )
122 125
123 Optional Features: 126 Optional Features:
125 ${feature.helpText} 128 ${feature.helpText}
126 #end 129 #end
127 #end 130 #end
128 131
129 __EOF__ 132 __EOF__
133 abort_configure
130 } 134 }
131 135
132 # create temporary directory 136 # create temporary directory
133 TEMP_DIR=".tmp-`uname -n`" 137 TEMP_DIR=".tmp-`uname -n`"
134 rm -Rf "$TEMP_DIR" 138 rm -Rf "$TEMP_DIR"
140 exit 1 144 exit 1
141 fi 145 fi
142 touch "$TEMP_DIR/options" 146 touch "$TEMP_DIR/options"
143 touch "$TEMP_DIR/features" 147 touch "$TEMP_DIR/features"
144 148
145 # define standard variables 149 # config variables
146 # also define standard prefix (this is where we will search for config.site)
147 prefix=/usr
148 exec_prefix=
149 bindir=
150 sbindir=
151 libdir=
152 libexecdir=
153 datarootdir=
154 datadir=
155 sysconfdir=
156 sharedstatedir=
157 localstatedir=
158 runstatedir=
159 includedir=
160 infodir=
161 localedir=
162 mandir=
163
164 # custom variables
165 #foreach( $cfg in $config ) 150 #foreach( $cfg in $config )
166 if true \ 151 if true \
167 #if( $cfg.platform ) 152 #if( $cfg.platform )
168 && isplatform "${cfg.platform}" \ 153 && isplatform "${cfg.platform}" \
169 #end 154 #end
170 #foreach( $np in $cfg.notList ) 155 #foreach( $np in $cfg.notList )
171 && notisplatform "${np}" \ 156 && notisplatform "${np}" \
172 #end 157 #end
173 ; then 158 ; then
159 :
174 #foreach( $var in $cfg.vars ) 160 #foreach( $var in $cfg.vars )
175 #if( $var.exec ) 161 if test -z "${D}${var.varName}__initialized__"; then
176 ${var.varName}=`${var.value}` 162 ${var.varName}__initialized__=1
177 #else 163 #if( $var.exec )
178 ${var.varName}="${var.value}" 164 ${var.varName}=`${var.value}`
179 #end 165 #else
166 ${var.varName}='${var.value}'
167 #end
168 fi
180 #end 169 #end
181 fi 170 fi
182 #end 171 #end
183 172
184 # features 173 # features
193 # 182 #
194 BUILD_TYPE="default" 183 BUILD_TYPE="default"
195 for ARG in "$@" 184 for ARG in "$@"
196 do 185 do
197 case "$ARG" in 186 case "$ARG" in
198 "--prefix="*) prefix=${D}{ARG#--prefix=} ;; 187 #foreach( $var in $vars )
199 "--exec-prefix="*) exec_prefix=${D}{ARG#--exec-prefix=} ;; 188 #if ($var.overridable)
200 "--bindir="*) bindir=${D}{ARG#----bindir=} ;; 189 "--${var.arg}="*) ${var.varName}=${D}{ARG#--${var.arg}=} ;;
201 "--sbindir="*) sbindir=${D}{ARG#--sbindir=} ;; 190 #end
202 "--libdir="*) libdir=${D}{ARG#--libdir=} ;; 191 #end
203 "--libexecdir="*) libexecdir=${D}{ARG#--libexecdir=} ;; 192 "--help"*) printhelp ;;
204 "--datarootdir="*) datarootdir=${D}{ARG#--datarootdir=} ;; 193 "--debug") BUILD_TYPE="debug" ;;
205 "--datadir="*) datadir=${D}{ARG#--datadir=} ;; 194 "--release") BUILD_TYPE="release" ;;
206 "--sysconfdir="*) sysconfdir=${D}{ARG#--sysconfdir=} ;;
207 "--sharedstatedir="*) sharedstatedir=${D}{ARG#--sharedstatedir=} ;;
208 "--localstatedir="*) localstatedir=${D}{ARG#--localstatedir=} ;;
209 "--includedir="*) includedir=${D}{ARG#--includedir=} ;;
210 "--infodir="*) infodir=${D}{ARG#--infodir=} ;;
211 "--mandir"*) mandir=${D}{ARG#--mandir} ;;
212 "--localedir"*) localedir=${D}{ARG#--localedir} ;;
213 "--help"*) printhelp; abort_configure ;;
214 "--debug") BUILD_TYPE="debug" ;;
215 "--release") BUILD_TYPE="release" ;;
216 #foreach( $opt in $options ) 195 #foreach( $opt in $options )
217 "--${opt.argument}="*) ${opt.varName}=${D}{ARG#--${opt.argument}=} ;; 196 "--${opt.arg}="*) ${opt.varName}=${D}{ARG#--${opt.arg}=} ;;
218 "--${opt.argument}") echo "option '$ARG' needs a value:"; echo " $ARG=${opt.valuesString}"; abort_configure ;; 197 "--${opt.arg}") echo "option '$ARG' needs a value:"; echo " $ARG=${opt.valuesString}"; abort_configure ;;
219 #end 198 #end
220 #foreach( $feature in $features ) 199 #foreach( $feature in $features )
221 "--enable-${feature.arg}") ${feature.varName}=on ;; 200 "--enable-${feature.arg}") ${feature.varName}=on ;;
222 "--disable-${feature.arg}") unset ${feature.varName} ;; 201 "--disable-${feature.arg}") unset ${feature.varName} ;;
223 #end 202 #end
224 "-"*) echo "unknown option: $ARG"; abort_configure ;; 203 "-"*) echo "unknown option: $ARG"; abort_configure ;;
225 esac 204 esac
226 done 205 done
206
207 # toolchain detection utilities
208 . make/toolchain.sh
209
210 # check languages
211 lang_c=
212 lang_cpp=
213 #foreach( $lang in $languages )
214 if detect_${lang}_compiler ; then
215 lang_${lang}=1
216 fi
217 #end
227 218
228 ## Begin unparsed content. ** 219 ## Begin unparsed content. **
229 #[[ 220 #[[
230 221
231 # set defaults for dir variables 222 # set defaults for dir variables
234 : ${sbindir:='${exec_prefix}/sbin'} 225 : ${sbindir:='${exec_prefix}/sbin'}
235 : ${libdir:='${exec_prefix}/lib'} 226 : ${libdir:='${exec_prefix}/lib'}
236 : ${libexecdir:='${exec_prefix}/libexec'} 227 : ${libexecdir:='${exec_prefix}/libexec'}
237 : ${datarootdir:='${prefix}/share'} 228 : ${datarootdir:='${prefix}/share'}
238 : ${datadir:='${datarootdir}'} 229 : ${datadir:='${datarootdir}'}
239 : ${sysconfdir:='${prefix}/etc'}
240 : ${sharedstatedir:='${prefix}/com'} 230 : ${sharedstatedir:='${prefix}/com'}
241 : ${localstatedir:='${prefix}/var'} 231 if [ -z "$sysconfdir" ]; then
242 : ${runstatedir:='${localstatedir}/run'} 232 if [ "$prefix" = '/usr' ]; then
233 sysconfdir='/etc'
234 else
235 sysconfdir='${prefix}/etc'
236 fi
237 fi
238 if [ -z "$localstatedir" ]; then
239 if [ "$prefix" = '/usr' ]; then
240 localstatedir='/var'
241 else
242 localstatedir='${prefix}/var'
243 fi
244 fi
245 if [ -z "$runstatedir" ]; then
246 if [ "$prefix" = '/usr' ]; then
247 runstatedir='/var/run'
248 else
249 runstatedir='${prefix}/var'
250 fi
251 fi
243 : ${includedir:='${prefix}/include'} 252 : ${includedir:='${prefix}/include'}
244 : ${infodir:='${datarootdir}/info'} 253 : ${infodir:='${datarootdir}/info'}
245 : ${mandir:='${datarootdir}/man'} 254 : ${mandir:='${datarootdir}/man'}
246 : ${localedir:='${datarootdir}/locale'} 255 : ${localedir:='${datarootdir}/locale'}
247 256
248 # remember the above values and compare them later
249 orig_bindir="$bindir"
250 orig_sbindir="$sbindir"
251 orig_libdir="$libdir"
252 orig_libexecdir="$libexecdir"
253 orig_datarootdir="$datarootdir"
254 orig_datadir="$datadir"
255 orig_sysconfdir="$sysconfdir"
256 orig_sharedstatedir="$sharedstatedir"
257 orig_localstatedir="$localstatedir"
258 orig_runstatedir="$runstatedir"
259 orig_includedir="$includedir"
260 orig_infodir="$infodir"
261 orig_mandir="$mandir"
262 orig_localedir="$localedir"
263 257
264 # check if a config.site exists and load it 258 # check if a config.site exists and load it
259 CONFIG_SITE_OK=0
265 if [ -n "$CONFIG_SITE" ]; then 260 if [ -n "$CONFIG_SITE" ]; then
266 # CONFIG_SITE may contain space separated file names 261 # CONFIG_SITE may contain space separated file names
267 for cs in $CONFIG_SITE; do 262 for cs in $CONFIG_SITE; do
268 printf "loading defaults from $cs... " 263 printf "loading defaults from $cs... "
269 . "$cs" 264 if [ -f "$cs" ]; then
270 echo ok 265 . "$cs"
266 echo ok
267 CONFIG_SITE_OK=1
268 break
269 else
270 echo "not found"
271 fi
271 done 272 done
272 elif [ -f "$prefix/share/config.site" ]; then 273 elif [ -f "$prefix/share/config.site" ]; then
273 printf "loading site defaults... " 274 printf "loading site defaults... "
274 . "$prefix/share/config.site" 275 . "$prefix/share/config.site"
275 echo ok 276 echo ok
277 CONFIG_SITE_OK=1
276 elif [ -f "$prefix/etc/config.site" ]; then 278 elif [ -f "$prefix/etc/config.site" ]; then
277 printf "loading site defaults... " 279 printf "loading site defaults... "
278 . "$prefix/etc/config.site" 280 . "$prefix/etc/config.site"
279 echo ok 281 echo ok
280 else 282 CONFIG_SITE_OK=1
283 fi
284
285 if [ $CONFIG_SITE_OK -eq 0 ]; then
281 # try to detect the correct libdir on our own, except it was changed by the user 286 # try to detect the correct libdir on our own, except it was changed by the user
282 if test "$libdir" = '${exec_prefix}/lib'; then 287 if [ "$libdir" = '${exec_prefix}/lib' ] ; then
283 if [ "$OS" = "SunOS" ]; then 288 if [ "$TOOLCHAIN_WSIZE" = "64" ] ; then
284 test -d "${exec_prefix}/lib/amd64" && libdir='${exec_prefix}/lib/amd64' 289 if [ "$OS" = "SunOS" ]; then
285 else 290 [ -d "${exec_prefix}/lib/64" ] && libdir='${exec_prefix}/lib/64'
286 # check if the standard libdir even exists
287 if test -d "${exec_prefix}/lib" ; then
288 :
289 else 291 else
290 # if it does not, maybe a lib32 exists 292 [ -d "${exec_prefix}/lib64" ] && libdir='${exec_prefix}/lib64'
291 test -d "${exec_prefix}/lib32" && libdir='${exec_prefix}/lib32'
292 fi 293 fi
293 # now check if there is a special 64bit libdir that we should use 294 elif [ "$TOOLCHAIN_WSIZE" = "32" ] ; then
294 for i in x86_64 ppc64 s390x aarch64 aarch64_be arm64 ; do 295 if [ "$OS" = "SunOS" ]; then
295 if [ $ARCH = $i ]; then 296 [ -d "${exec_prefix}/lib/32" ] && libdir='${exec_prefix}/lib/32'
296 test -d "${exec_prefix}/lib64" && libdir='${exec_prefix}/lib64' 297 else
297 break 298 [ -d "${exec_prefix}/lib32" ] && libdir='${exec_prefix}/lib32'
298 fi 299 fi
299 done
300 fi 300 fi
301 fi 301 fi
302 fi 302 fi
303 ]]# 303 ]]#
304 ## End of unparsed content ** 304 ## End of unparsed content **
305 305
306 # generate vars.mk 306 # generate vars.mk
307 cat > "$TEMP_DIR/vars.mk" << __EOF__ 307 cat > "$TEMP_DIR/vars.mk" << __EOF__
308 prefix=$prefix
309 exec_prefix=$exec_prefix
310 bindir=$bindir
311 sbindir=$sbindir
312 libdir=$libdir
313 libexecdir=$libexecdir
314 datarootdir=$datarootdir
315 datadir=$datadir
316 sysconfdir=$sysconfdir
317 sharedstatedir=$sharedstatedir
318 localstatedir=$localstatedir
319 runstatedir=$runstatedir
320 includedir=$includedir
321 infodir=$infodir
322 mandir=$mandir
323 localedir=$localedir
324 #foreach( $var in $vars ) 308 #foreach( $var in $vars )
325 ${var.varName}=${D}${var.varName} 309 ${var.varName}=${D}${var.varName}
326 #end 310 #end
327 __EOF__ 311 __EOF__
328 312
329 # toolchain detection utilities
330 . make/toolchain.sh
331 313
332 # 314 #
333 # DEPENDENCIES 315 # DEPENDENCIES
334 # 316 #
335 317
336 # check languages 318
337 lang_c=
338 lang_cpp=
339 #foreach( $lang in $languages )
340 if detect_${lang}_compiler ; then
341 lang_${lang}=1
342 fi
343 #end
344 319
345 # create buffer for make variables required by dependencies 320 # create buffer for make variables required by dependencies
346 echo > "$TEMP_DIR/make.mk" 321 echo > "$TEMP_DIR/make.mk"
347 322
348 test_pkg_config() 323 test_pkg_config()
398 if [ -z "$PKG_CONFIG" ]; then 373 if [ -z "$PKG_CONFIG" ]; then
399 break 374 break
400 fi 375 fi
401 #end 376 #end
402 #foreach( $test in $sub.tests ) 377 #foreach( $test in $sub.tests )
403 if $test > /dev/null ; then 378 if $test > /dev/null 2>&1 ; then
404 : 379 :
405 else 380 else
406 break 381 break
407 fi 382 fi
408 #end 383 #end
500 fi 475 fi
501 #end 476 #end
502 477
503 #foreach( $flags in $dependency.flags ) 478 #foreach( $flags in $dependency.flags )
504 #if( $flags.exec ) 479 #if( $flags.exec )
505 $flags.value > /dev/null
506 if tmp_flags=`$flags.value` ; then 480 if tmp_flags=`$flags.value` ; then
507 TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags" 481 TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags"
508 else 482 else
509 ERROR=1 483 ERROR=1
510 break 484 break
650 #end 624 #end
651 fi 625 fi
652 #end 626 #end
653 627
654 #foreach( $opt in $target.options ) 628 #foreach( $opt in $target.options )
655 # Option: --${opt.argument} 629 # Option: --${opt.arg}
656 if [ -z "${D}${opt.varName}" ]; then 630 if [ -z "${D}${opt.varName}" ]; then
657 echo "auto-detecting option '${opt.argument}'" 631 echo "auto-detecting option '${opt.arg}'"
658 SAVED_ERROR="$ERROR" 632 SAVED_ERROR="$ERROR"
659 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" 633 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED"
660 ERROR=1 634 ERROR=1
661 while true 635 while true
662 do 636 do
663 #foreach( $optdef in $opt.defaults ) 637 #foreach( $optdef in $opt.defaults )
664 #if( $optdef.platform ) 638 #if( $optdef.platform )
665 if isplatform "$optdef.platform"; then 639 if isplatform "$optdef.platform"; then
666 #end 640 #end
667 if $optdef.func ; then 641 if $optdef.func ; then
668 echo " ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options" 642 echo " ${opt.arg}: ${optdef.valueName}" >> "$TEMP_DIR/options"
669 ERROR=0 643 ERROR=0
670 break 644 break
671 fi 645 fi
672 #if( $optdef.platform ) 646 #if( $optdef.platform )
673 fi 647 fi
675 #end 649 #end
676 break 650 break
677 done 651 done
678 if [ $ERROR -ne 0 ]; then 652 if [ $ERROR -ne 0 ]; then
679 SAVED_ERROR=1 653 SAVED_ERROR=1
680 SAVED_DEPENDENCIES_FAILED="option '${opt.argument}' $SAVED_DEPENDENCIES_FAILED" 654 SAVED_DEPENDENCIES_FAILED="option '${opt.arg}' $SAVED_DEPENDENCIES_FAILED"
681 fi 655 fi
682 ERROR="$SAVED_ERROR" 656 ERROR="$SAVED_ERROR"
683 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" 657 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED"
684 else 658 else
685 echo "checking option ${opt.argument} = ${D}${opt.varName}" 659 echo "checking option ${opt.arg} = ${D}${opt.varName}"
686 if false; then 660 if false; then
687 false 661 false
688 #foreach( $optval in $opt.values ) 662 #foreach( $optval in $opt.values )
689 elif [ "${D}${opt.varName}" = "${optval.value}" ]; then 663 elif [ "${D}${opt.varName}" = "${optval.value}" ]; then
690 echo " ${opt.argument}: ${D}${opt.varName}" >> $TEMP_DIR/options 664 echo " ${opt.arg}: ${D}${opt.varName}" >> $TEMP_DIR/options
691 if $optval.func ; then 665 if $optval.func ; then
692 : 666 :
693 else 667 else
694 ERROR=1 668 ERROR=1
695 DEPENDENCIES_FAILED="option '${opt.argument}' $DEPENDENCIES_FAILED" 669 DEPENDENCIES_FAILED="option '${opt.arg}' $DEPENDENCIES_FAILED"
696 fi 670 fi
697 #end 671 #end
698 else 672 else
699 echo 673 echo
700 echo "Invalid option value - usage:" 674 echo "Invalid option value - usage:"
701 echo " --${opt.argument}=${opt.valuesString}" 675 echo " --${opt.arg}=${opt.valuesString}"
702 abort_configure 676 abort_configure
703 fi 677 fi
704 fi 678 fi
705 #end 679 #end
706 680
724 abort_configure 698 abort_configure
725 fi 699 fi
726 700
727 echo "configure finished" 701 echo "configure finished"
728 echo 702 echo
729 echo "Toolchain" 703 echo "Toolchain:"
730 echo " name: $TOOLCHAIN_NAME" 704 echo " name: $TOOLCHAIN_NAME"
731 if [ -n "$TOOLCHAIN_CC" ]; then 705 if [ -n "$TOOLCHAIN_CC" ]; then
732 echo " cc: $TOOLCHAIN_CC" 706 echo " cc: $TOOLCHAIN_CC"
733 fi 707 fi
734 if [ -n "$TOOLCHAIN_CXX" ]; then 708 if [ -n "$TOOLCHAIN_CXX" ]; then
739 fi 713 fi
740 if [ -n "$TOOLCHAIN_CSTD" ]; then 714 if [ -n "$TOOLCHAIN_CSTD" ]; then
741 echo " default C std: $TOOLCHAIN_CSTD" 715 echo " default C std: $TOOLCHAIN_CSTD"
742 fi 716 fi
743 echo 717 echo
744 echo "Build Config:" 718 echo "Config:"
745 echo " prefix: $prefix" 719 #foreach( $var in $vars )
746 echo " exec_prefix: $exec_prefix" 720 #if ($var.overridable)
747 if [ "$orig_bindir" != "$bindir" ]; then 721 printf ' %-16s' '${var.arg}:'
748 echo " bindir: $bindir" 722 echo "${D}${var.varName}"
749 fi 723 #end
750 if [ "$orig_sbindir" != "$sbindir" ]; then 724 #end
751 echo " sbindir: $sbindir"
752 fi
753 if [ "$orig_libdir" != "$libdir" ]; then
754 echo " libdir: $libdir"
755 fi
756 if [ "$orig_libexecdir" != "$libexecdir" ]; then
757 echo " libexecdir: $libexecdir"
758 fi
759 if [ "$orig_datarootdir" != "$datarootdir" ]; then
760 echo " datarootdir: $datarootdir"
761 fi
762 if [ "$orig_datadir" != "$datadir" ]; then
763 echo " datadir: $datadir"
764 fi
765 if [ "$orig_sysconfdir" != "$sysconfdir" ]; then
766 echo " sysconfdir: $sysconfdir"
767 fi
768 if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then
769 echo " sharedstatedir: $sharedstatedir"
770 fi
771 if [ "$orig_localstatedir" != "$localstatedir" ]; then
772 echo " localstatedir: $localstatedir"
773 fi
774 if [ "$orig_runstatedir" != "$runstatedir" ]; then
775 echo " runstatedir: $runstatedir"
776 fi
777 if [ "$orig_includedir" != "$includedir" ]; then
778 echo " includedir: $includedir"
779 fi
780 if [ "$orig_infodir" != "$infodir" ]; then
781 echo " infodir: $infodir"
782 fi
783 if [ "$orig_mandir" != "$mandir" ]; then
784 echo " mandir: $mandir"
785 fi
786 if [ "$orig_localedir" != "$localedir" ]; then
787 echo " localedir: $localedir"
788 fi
789 #if ( $options.size() > 0 ) 725 #if ( $options.size() > 0 )
790 echo 726 echo
791 echo "Options:" 727 echo "Options:"
792 cat "$TEMP_DIR/options" 728 cat "$TEMP_DIR/options"
793 #end 729 #end
794 #if ( $features.size() > 0 ) 730 #if ( $features.size() > 0 )
795 echo 731 echo
796 echo "Features:" 732 echo "Features:"
797 #foreach( $feature in $features ) 733 #foreach( $feature in $features )
734 printf ' %-16s' '$feature.name:'
798 if [ -n "${D}${feature.varName}" ]; then 735 if [ -n "${D}${feature.varName}" ]; then
799 echo " $feature.name: on" 736 echo 'on'
800 else 737 else
801 echo " $feature.name: off" 738 echo 'off'
802 fi 739 fi
803 #end 740 #end
804 #end 741 #end
805 echo 742 echo
806 743

mercurial