| 83 |
84 |
| 84 # help text |
85 # help text |
| 85 printhelp() |
86 printhelp() |
| 86 { |
87 { |
| 87 echo "Usage: $0 [OPTIONS]..." |
88 echo "Usage: $0 [OPTIONS]..." |
| 88 cat << __EOF__ |
89 echo 'Configuration:' |
| 89 Installation directories: |
90 #foreach( $cfg in $config ) |
| 90 --prefix=PREFIX path prefix for architecture-independent files |
91 if true \ |
| 91 [${D}prefix] |
92 #if( $cfg.platform ) |
| 92 --exec-prefix=EPREFIX path prefix for architecture-dependent files |
93 && isplatform "${cfg.platform}" \ |
| 93 [PREFIX] |
94 #end |
| 94 |
95 #foreach( $np in $cfg.notList ) |
| 95 --bindir=DIR user executables [EPREFIX/bin] |
96 && notisplatform "${np}" \ |
| 96 --sbindir=DIR system admin executables [EPREFIX/sbin] |
97 #end |
| 97 --libexecdir=DIR program executables [EPREFIX/libexec] |
98 ; then |
| 98 --sysconfdir=DIR system configuration files [PREFIX/etc] |
99 : |
| 99 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] |
100 #foreach( $var in $cfg.vars ) |
| 100 --localstatedir=DIR modifiable single-machine data [PREFIX/var] |
101 #if( $var.overridable ) |
| 101 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] |
102 if test -z "${D}${var.varName}__described__"; then |
| 102 --libdir=DIR object code libraries [EPREFIX/lib] |
103 ${var.varName}__described__=1 |
| 103 --includedir=DIR C header files [PREFIX/include] |
104 cat << '__EOF__' |
| 104 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] |
105 ${var.helpText} |
| 105 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] |
106 __EOF__ |
| 106 --infodir=DIR info documentation [DATAROOTDIR/info] |
107 fi |
| 107 --mandir=DIR man documentation [DATAROOTDIR/man] |
108 #end |
| 108 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] |
109 #end |
| |
110 fi |
| |
111 #end |
| |
112 cat << '__EOF__' |
| 109 |
113 |
| 110 Build Types: |
114 Build Types: |
| 111 --debug add extra compile flags for debug builds |
115 --debug add extra compile flags for debug builds |
| 112 --release add extra compile flags for release builds |
116 --release add extra compile flags for release builds |
| 113 #if( $options.size() > 0 ) |
117 #if( $options.size() > 0 ) |
| 114 |
118 |
| 115 Options: |
119 Options: |
| 116 #foreach( $opt in $options ) |
120 #foreach( $opt in $options ) |
| 117 --${opt.argument}=${opt.valuesString} |
121 ${opt.helpText} |
| 118 #end |
122 #end |
| 119 #end |
123 #end |
| 120 #if( $features.size() > 0 ) |
124 #if( $features.size() > 0 ) |
| 121 |
125 |
| 122 Optional Features: |
126 Optional Features: |
| 192 # |
182 # |
| 193 BUILD_TYPE="default" |
183 BUILD_TYPE="default" |
| 194 for ARG in "$@" |
184 for ARG in "$@" |
| 195 do |
185 do |
| 196 case "$ARG" in |
186 case "$ARG" in |
| 197 "--prefix="*) prefix=${D}{ARG#--prefix=} ;; |
187 #foreach( $var in $vars ) |
| 198 "--exec-prefix="*) exec_prefix=${D}{ARG#--exec-prefix=} ;; |
188 #if ($var.overridable) |
| 199 "--bindir="*) bindir=${D}{ARG#----bindir=} ;; |
189 "--${var.arg}="*) ${var.varName}=${D}{ARG#--${var.arg}=} ;; |
| 200 "--sbindir="*) sbindir=${D}{ARG#--sbindir=} ;; |
190 #end |
| 201 "--libdir="*) libdir=${D}{ARG#--libdir=} ;; |
191 #end |
| 202 "--libexecdir="*) libexecdir=${D}{ARG#--libexecdir=} ;; |
192 "--help"*) printhelp ;; |
| 203 "--datarootdir="*) datarootdir=${D}{ARG#--datarootdir=} ;; |
193 "--debug") BUILD_TYPE="debug" ;; |
| 204 "--datadir="*) datadir=${D}{ARG#--datadir=} ;; |
194 "--release") BUILD_TYPE="release" ;; |
| 205 "--sysconfdir="*) sysconfdir=${D}{ARG#--sysconfdir=} ;; |
|
| 206 "--sharedstatedir="*) sharedstatedir=${D}{ARG#--sharedstatedir=} ;; |
|
| 207 "--localstatedir="*) localstatedir=${D}{ARG#--localstatedir=} ;; |
|
| 208 "--includedir="*) includedir=${D}{ARG#--includedir=} ;; |
|
| 209 "--infodir="*) infodir=${D}{ARG#--infodir=} ;; |
|
| 210 "--mandir"*) mandir=${D}{ARG#--mandir} ;; |
|
| 211 "--localedir"*) localedir=${D}{ARG#--localedir} ;; |
|
| 212 "--help"*) printhelp; abort_configure ;; |
|
| 213 "--debug") BUILD_TYPE="debug" ;; |
|
| 214 "--release") BUILD_TYPE="release" ;; |
|
| 215 #foreach( $opt in $options ) |
195 #foreach( $opt in $options ) |
| 216 "--${opt.argument}="*) ${opt.varName}=${D}{ARG#--${opt.argument}=} ;; |
196 "--${opt.arg}="*) ${opt.varName}=${D}{ARG#--${opt.arg}=} ;; |
| 217 "--${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 ;; |
| 218 #end |
198 #end |
| 219 #foreach( $feature in $features ) |
199 #foreach( $feature in $features ) |
| 220 "--enable-${feature.arg}") ${feature.varName}=on ;; |
200 "--enable-${feature.arg}") ${feature.varName}=on ;; |
| 221 "--disable-${feature.arg}") unset ${feature.varName} ;; |
201 "--disable-${feature.arg}") unset ${feature.varName} ;; |
| 222 #end |
202 #end |
| 223 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
203 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
| 224 esac |
204 esac |
| 225 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 |
| 226 |
218 |
| 227 ## Begin unparsed content. ** |
219 ## Begin unparsed content. ** |
| 228 #[[ |
220 #[[ |
| 229 |
221 |
| 230 # set defaults for dir variables |
222 # set defaults for dir variables |
| 233 : ${sbindir:='${exec_prefix}/sbin'} |
225 : ${sbindir:='${exec_prefix}/sbin'} |
| 234 : ${libdir:='${exec_prefix}/lib'} |
226 : ${libdir:='${exec_prefix}/lib'} |
| 235 : ${libexecdir:='${exec_prefix}/libexec'} |
227 : ${libexecdir:='${exec_prefix}/libexec'} |
| 236 : ${datarootdir:='${prefix}/share'} |
228 : ${datarootdir:='${prefix}/share'} |
| 237 : ${datadir:='${datarootdir}'} |
229 : ${datadir:='${datarootdir}'} |
| 238 : ${sysconfdir:='${prefix}/etc'} |
|
| 239 : ${sharedstatedir:='${prefix}/com'} |
230 : ${sharedstatedir:='${prefix}/com'} |
| 240 : ${localstatedir:='${prefix}/var'} |
231 if [ -z "$sysconfdir" ]; then |
| 241 : ${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 |
| 242 : ${includedir:='${prefix}/include'} |
252 : ${includedir:='${prefix}/include'} |
| 243 : ${infodir:='${datarootdir}/info'} |
253 : ${infodir:='${datarootdir}/info'} |
| 244 : ${mandir:='${datarootdir}/man'} |
254 : ${mandir:='${datarootdir}/man'} |
| 245 : ${localedir:='${datarootdir}/locale'} |
255 : ${localedir:='${datarootdir}/locale'} |
| 246 |
256 |
| 247 # remember the above values and compare them later |
|
| 248 orig_bindir="$bindir" |
|
| 249 orig_sbindir="$sbindir" |
|
| 250 orig_libdir="$libdir" |
|
| 251 orig_libexecdir="$libexecdir" |
|
| 252 orig_datarootdir="$datarootdir" |
|
| 253 orig_datadir="$datadir" |
|
| 254 orig_sysconfdir="$sysconfdir" |
|
| 255 orig_sharedstatedir="$sharedstatedir" |
|
| 256 orig_localstatedir="$localstatedir" |
|
| 257 orig_runstatedir="$runstatedir" |
|
| 258 orig_includedir="$includedir" |
|
| 259 orig_infodir="$infodir" |
|
| 260 orig_mandir="$mandir" |
|
| 261 orig_localedir="$localedir" |
|
| 262 |
257 |
| 263 # check if a config.site exists and load it |
258 # check if a config.site exists and load it |
| |
259 CONFIG_SITE_OK=0 |
| 264 if [ -n "$CONFIG_SITE" ]; then |
260 if [ -n "$CONFIG_SITE" ]; then |
| 265 # CONFIG_SITE may contain space separated file names |
261 # CONFIG_SITE may contain space separated file names |
| 266 for cs in $CONFIG_SITE; do |
262 for cs in $CONFIG_SITE; do |
| 267 printf "loading defaults from $cs... " |
263 printf "loading defaults from $cs... " |
| 268 . "$cs" |
264 if [ -f "$cs" ]; then |
| 269 echo ok |
265 . "$cs" |
| |
266 echo ok |
| |
267 CONFIG_SITE_OK=1 |
| |
268 break |
| |
269 else |
| |
270 echo "not found" |
| |
271 fi |
| 270 done |
272 done |
| 271 elif [ -f "$prefix/share/config.site" ]; then |
273 elif [ -f "$prefix/share/config.site" ]; then |
| 272 printf "loading site defaults... " |
274 printf "loading site defaults... " |
| 273 . "$prefix/share/config.site" |
275 . "$prefix/share/config.site" |
| 274 echo ok |
276 echo ok |
| |
277 CONFIG_SITE_OK=1 |
| 275 elif [ -f "$prefix/etc/config.site" ]; then |
278 elif [ -f "$prefix/etc/config.site" ]; then |
| 276 printf "loading site defaults... " |
279 printf "loading site defaults... " |
| 277 . "$prefix/etc/config.site" |
280 . "$prefix/etc/config.site" |
| 278 echo ok |
281 echo ok |
| |
282 CONFIG_SITE_OK=1 |
| |
283 fi |
| |
284 |
| |
285 if [ $CONFIG_SITE_OK -eq 0 ]; then |
| |
286 # try to detect the correct libdir on our own, except it was changed by the user |
| |
287 if [ "$libdir" = '${exec_prefix}/lib' ] ; then |
| |
288 if [ "$TOOLCHAIN_WSIZE" = "64" ] ; then |
| |
289 if [ "$OS" = "SunOS" ]; then |
| |
290 [ -d "${exec_prefix}/lib/64" ] && libdir='${exec_prefix}/lib/64' |
| |
291 else |
| |
292 [ -d "${exec_prefix}/lib64" ] && libdir='${exec_prefix}/lib64' |
| |
293 fi |
| |
294 elif [ "$TOOLCHAIN_WSIZE" = "32" ] ; then |
| |
295 if [ "$OS" = "SunOS" ]; then |
| |
296 [ -d "${exec_prefix}/lib/32" ] && libdir='${exec_prefix}/lib/32' |
| |
297 else |
| |
298 [ -d "${exec_prefix}/lib32" ] && libdir='${exec_prefix}/lib32' |
| |
299 fi |
| |
300 fi |
| |
301 fi |
| 279 fi |
302 fi |
| 280 ]]# |
303 ]]# |
| 281 ## End of unparsed content ** |
304 ## End of unparsed content ** |
| 282 |
305 |
| 283 # generate vars.mk |
306 # generate vars.mk |
| 284 cat > "$TEMP_DIR/vars.mk" << __EOF__ |
307 cat > "$TEMP_DIR/vars.mk" << __EOF__ |
| 285 prefix=$prefix |
|
| 286 exec_prefix=$exec_prefix |
|
| 287 bindir=$bindir |
|
| 288 sbindir=$sbindir |
|
| 289 libdir=$libdir |
|
| 290 libexecdir=$libexecdir |
|
| 291 datarootdir=$datarootdir |
|
| 292 datadir=$datadir |
|
| 293 sysconfdir=$sysconfdir |
|
| 294 sharedstatedir=$sharedstatedir |
|
| 295 localstatedir=$localstatedir |
|
| 296 runstatedir=$runstatedir |
|
| 297 includedir=$includedir |
|
| 298 infodir=$infodir |
|
| 299 mandir=$mandir |
|
| 300 localedir=$localedir |
|
| 301 #foreach( $var in $vars ) |
308 #foreach( $var in $vars ) |
| 302 ${var.varName}=${D}${var.varName} |
309 ${var.varName}=${D}${var.varName} |
| 303 #end |
310 #end |
| 304 __EOF__ |
311 __EOF__ |
| 305 |
312 |
| 306 # toolchain detection utilities |
|
| 307 . make/toolchain.sh |
|
| 308 |
313 |
| 309 # |
314 # |
| 310 # DEPENDENCIES |
315 # DEPENDENCIES |
| 311 # |
316 # |
| 312 |
317 |
| 313 # check languages |
318 |
| 314 lang_c= |
|
| 315 lang_cpp= |
|
| 316 #foreach( $lang in $languages ) |
|
| 317 if detect_${lang}_compiler ; then |
|
| 318 lang_${lang}=1 |
|
| 319 fi |
|
| 320 #end |
|
| 321 |
319 |
| 322 # create buffer for make variables required by dependencies |
320 # create buffer for make variables required by dependencies |
| 323 echo > "$TEMP_DIR/make.mk" |
321 echo > "$TEMP_DIR/make.mk" |
| 324 |
322 |
| 325 test_pkg_config() |
323 test_pkg_config() |
| 627 #end |
624 #end |
| 628 fi |
625 fi |
| 629 #end |
626 #end |
| 630 |
627 |
| 631 #foreach( $opt in $target.options ) |
628 #foreach( $opt in $target.options ) |
| 632 # Option: --${opt.argument} |
629 # Option: --${opt.arg} |
| 633 if [ -z "${D}${opt.varName}" ]; then |
630 if [ -z "${D}${opt.varName}" ]; then |
| 634 echo "auto-detecting option '${opt.argument}'" |
631 echo "auto-detecting option '${opt.arg}'" |
| 635 SAVED_ERROR="$ERROR" |
632 SAVED_ERROR="$ERROR" |
| 636 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" |
633 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED" |
| 637 ERROR=1 |
634 ERROR=1 |
| 638 while true |
635 while true |
| 639 do |
636 do |
| 640 #foreach( $optdef in $opt.defaults ) |
637 #foreach( $optdef in $opt.defaults ) |
| 641 #if( $optdef.platform ) |
638 #if( $optdef.platform ) |
| 642 if isplatform "$optdef.platform"; then |
639 if isplatform "$optdef.platform"; then |
| 643 #end |
640 #end |
| 644 if $optdef.func ; then |
641 if $optdef.func ; then |
| 645 echo " ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options" |
642 echo " ${opt.arg}: ${optdef.valueName}" >> "$TEMP_DIR/options" |
| 646 ERROR=0 |
643 ERROR=0 |
| 647 break |
644 break |
| 648 fi |
645 fi |
| 649 #if( $optdef.platform ) |
646 #if( $optdef.platform ) |
| 650 fi |
647 fi |
| 652 #end |
649 #end |
| 653 break |
650 break |
| 654 done |
651 done |
| 655 if [ $ERROR -ne 0 ]; then |
652 if [ $ERROR -ne 0 ]; then |
| 656 SAVED_ERROR=1 |
653 SAVED_ERROR=1 |
| 657 SAVED_DEPENDENCIES_FAILED="option '${opt.argument}' $SAVED_DEPENDENCIES_FAILED" |
654 SAVED_DEPENDENCIES_FAILED="option '${opt.arg}' $SAVED_DEPENDENCIES_FAILED" |
| 658 fi |
655 fi |
| 659 ERROR="$SAVED_ERROR" |
656 ERROR="$SAVED_ERROR" |
| 660 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" |
657 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED" |
| 661 else |
658 else |
| 662 echo "checking option ${opt.argument} = ${D}${opt.varName}" |
659 echo "checking option ${opt.arg} = ${D}${opt.varName}" |
| 663 if false; then |
660 if false; then |
| 664 false |
661 false |
| 665 #foreach( $optval in $opt.values ) |
662 #foreach( $optval in $opt.values ) |
| 666 elif [ "${D}${opt.varName}" = "${optval.value}" ]; then |
663 elif [ "${D}${opt.varName}" = "${optval.value}" ]; then |
| 667 echo " ${opt.argument}: ${D}${opt.varName}" >> $TEMP_DIR/options |
664 echo " ${opt.arg}: ${D}${opt.varName}" >> $TEMP_DIR/options |
| 668 if $optval.func ; then |
665 if $optval.func ; then |
| 669 : |
666 : |
| 670 else |
667 else |
| 671 ERROR=1 |
668 ERROR=1 |
| 672 DEPENDENCIES_FAILED="option '${opt.argument}' $DEPENDENCIES_FAILED" |
669 DEPENDENCIES_FAILED="option '${opt.arg}' $DEPENDENCIES_FAILED" |
| 673 fi |
670 fi |
| 674 #end |
671 #end |
| 675 else |
672 else |
| 676 echo |
673 echo |
| 677 echo "Invalid option value - usage:" |
674 echo "Invalid option value - usage:" |
| 678 echo " --${opt.argument}=${opt.valuesString}" |
675 echo " --${opt.arg}=${opt.valuesString}" |
| 679 abort_configure |
676 abort_configure |
| 680 fi |
677 fi |
| 681 fi |
678 fi |
| 682 #end |
679 #end |
| 683 |
680 |
| 716 fi |
713 fi |
| 717 if [ -n "$TOOLCHAIN_CSTD" ]; then |
714 if [ -n "$TOOLCHAIN_CSTD" ]; then |
| 718 echo " default C std: $TOOLCHAIN_CSTD" |
715 echo " default C std: $TOOLCHAIN_CSTD" |
| 719 fi |
716 fi |
| 720 echo |
717 echo |
| 721 echo "Build Config:" |
718 echo "Config:" |
| 722 echo " prefix: $prefix" |
719 #foreach( $var in $vars ) |
| 723 echo " exec_prefix: $exec_prefix" |
720 #if ($var.overridable) |
| 724 if [ "$orig_bindir" != "$bindir" ]; then |
721 printf ' %-16s' '${var.arg}:' |
| 725 echo " bindir: $bindir" |
722 echo "${D}${var.varName}" |
| 726 fi |
723 #end |
| 727 if [ "$orig_sbindir" != "$sbindir" ]; then |
724 #end |
| 728 echo " sbindir: $sbindir" |
|
| 729 fi |
|
| 730 if [ "$orig_libdir" != "$libdir" ]; then |
|
| 731 echo " libdir: $libdir" |
|
| 732 fi |
|
| 733 if [ "$orig_libexecdir" != "$libexecdir" ]; then |
|
| 734 echo " libexecdir: $libexecdir" |
|
| 735 fi |
|
| 736 if [ "$orig_datarootdir" != "$datarootdir" ]; then |
|
| 737 echo " datarootdir: $datarootdir" |
|
| 738 fi |
|
| 739 if [ "$orig_datadir" != "$datadir" ]; then |
|
| 740 echo " datadir: $datadir" |
|
| 741 fi |
|
| 742 if [ "$orig_sysconfdir" != "$sysconfdir" ]; then |
|
| 743 echo " sysconfdir: $sysconfdir" |
|
| 744 fi |
|
| 745 if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then |
|
| 746 echo " sharedstatedir: $sharedstatedir" |
|
| 747 fi |
|
| 748 if [ "$orig_localstatedir" != "$localstatedir" ]; then |
|
| 749 echo " localstatedir: $localstatedir" |
|
| 750 fi |
|
| 751 if [ "$orig_runstatedir" != "$runstatedir" ]; then |
|
| 752 echo " runstatedir: $runstatedir" |
|
| 753 fi |
|
| 754 if [ "$orig_includedir" != "$includedir" ]; then |
|
| 755 echo " includedir: $includedir" |
|
| 756 fi |
|
| 757 if [ "$orig_infodir" != "$infodir" ]; then |
|
| 758 echo " infodir: $infodir" |
|
| 759 fi |
|
| 760 if [ "$orig_mandir" != "$mandir" ]; then |
|
| 761 echo " mandir: $mandir" |
|
| 762 fi |
|
| 763 if [ "$orig_localedir" != "$localedir" ]; then |
|
| 764 echo " localedir: $localedir" |
|
| 765 fi |
|
| 766 #if ( $options.size() > 0 ) |
725 #if ( $options.size() > 0 ) |
| 767 echo |
726 echo |
| 768 echo "Options:" |
727 echo "Options:" |
| 769 cat "$TEMP_DIR/options" |
728 cat "$TEMP_DIR/options" |
| 770 #end |
729 #end |
| 771 #if ( $features.size() > 0 ) |
730 #if ( $features.size() > 0 ) |
| 772 echo |
731 echo |
| 773 echo "Features:" |
732 echo "Features:" |
| 774 #foreach( $feature in $features ) |
733 #foreach( $feature in $features ) |
| |
734 printf ' %-16s' '$feature.name:' |
| 775 if [ -n "${D}${feature.varName}" ]; then |
735 if [ -n "${D}${feature.varName}" ]; then |
| 776 echo " $feature.name: on" |
736 echo 'on' |
| 777 else |
737 else |
| 778 echo " $feature.name: off" |
738 echo 'off' |
| 779 fi |
739 fi |
| 780 #end |
740 #end |
| 781 #end |
741 #end |
| 782 echo |
742 echo |
| 783 |
743 |