test/make/configure.vm

changeset 165
f4f11f755ee7
parent 162
79eeb33c738f
child 167
fa31a6d0ec56
equal deleted inserted replaced
164:099448bcc943 165:f4f11f755ee7
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 )
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( $var.overridable )
176 ${var.varName}=`${var.value}` 162 if test -z "${D}${var.varName}__initialized__"; then
177 #else 163 ${var.varName}__initialized__=1
178 ${var.varName}="${var.value}" 164 #if( $var.exec )
165 ${var.varName}=`${var.value}`
166 #else
167 ${var.varName}="${var.value}"
168 #end
169 fi
179 #end 170 #end
180 #end 171 #end
181 fi 172 fi
182 #end 173 #end
183 174
193 # 184 #
194 BUILD_TYPE="default" 185 BUILD_TYPE="default"
195 for ARG in "$@" 186 for ARG in "$@"
196 do 187 do
197 case "$ARG" in 188 case "$ARG" in
198 "--prefix="*) prefix=${D}{ARG#--prefix=} ;; 189 #foreach( $var in $vars )
199 "--exec-prefix="*) exec_prefix=${D}{ARG#--exec-prefix=} ;; 190 #if ($var.overridable)
200 "--bindir="*) bindir=${D}{ARG#----bindir=} ;; 191 "--${var.arg}="*) ${var.varName}=${D}{ARG#--${var.arg}=} ;;
201 "--sbindir="*) sbindir=${D}{ARG#--sbindir=} ;; 192 #end
202 "--libdir="*) libdir=${D}{ARG#--libdir=} ;; 193 #end
203 "--libexecdir="*) libexecdir=${D}{ARG#--libexecdir=} ;; 194 "--help"*) printhelp ;;
204 "--datarootdir="*) datarootdir=${D}{ARG#--datarootdir=} ;; 195 "--debug") BUILD_TYPE="debug" ;;
205 "--datadir="*) datadir=${D}{ARG#--datadir=} ;; 196 "--release") BUILD_TYPE="release" ;;
206 "--sysconfdir="*) sysconfdir=${D}{ARG#--sysconfdir=} ;;
207 "--sharedstatedir="*) sharedstatedir=${D}{ARG#--sharedstatedir=} ;;
208 "--localstatedir="*) localstatedir=${D}{ARG#--localstatedir=} ;;
209 "--runstatedir="*) runstatedir=${D}{ARG#--runstatedir=} ;;
210 "--includedir="*) includedir=${D}{ARG#--includedir=} ;;
211 "--infodir="*) infodir=${D}{ARG#--infodir=} ;;
212 "--mandir"*) mandir=${D}{ARG#--mandir} ;;
213 "--localedir"*) localedir=${D}{ARG#--localedir} ;;
214 "--help"*) printhelp; abort_configure ;;
215 "--debug") BUILD_TYPE="debug" ;;
216 "--release") BUILD_TYPE="release" ;;
217 #foreach( $opt in $options ) 197 #foreach( $opt in $options )
218 "--${opt.arg}="*) ${opt.varName}=${D}{ARG#--${opt.arg}=} ;; 198 "--${opt.arg}="*) ${opt.varName}=${D}{ARG#--${opt.arg}=} ;;
219 "--${opt.arg}") echo "option '$ARG' needs a value:"; echo " $ARG=${opt.valuesString}"; abort_configure ;; 199 "--${opt.arg}") echo "option '$ARG' needs a value:"; echo " $ARG=${opt.valuesString}"; abort_configure ;;
220 #end 200 #end
221 #foreach( $feature in $features ) 201 #foreach( $feature in $features )
222 "--enable-${feature.arg}") ${feature.varName}=on ;; 202 "--enable-${feature.arg}") ${feature.varName}=on ;;
223 "--disable-${feature.arg}") unset ${feature.varName} ;; 203 "--disable-${feature.arg}") unset ${feature.varName} ;;
224 #end 204 #end
261 fi 241 fi
262 : ${includedir:='${prefix}/include'} 242 : ${includedir:='${prefix}/include'}
263 : ${infodir:='${datarootdir}/info'} 243 : ${infodir:='${datarootdir}/info'}
264 : ${mandir:='${datarootdir}/man'} 244 : ${mandir:='${datarootdir}/man'}
265 : ${localedir:='${datarootdir}/locale'} 245 : ${localedir:='${datarootdir}/locale'}
266
267 # remember the above values and compare them later
268 orig_bindir="$bindir"
269 orig_sbindir="$sbindir"
270 orig_libdir="$libdir"
271 orig_libexecdir="$libexecdir"
272 orig_datarootdir="$datarootdir"
273 orig_datadir="$datadir"
274 orig_sysconfdir="$sysconfdir"
275 orig_sharedstatedir="$sharedstatedir"
276 orig_localstatedir="$localstatedir"
277 orig_runstatedir="$runstatedir"
278 orig_includedir="$includedir"
279 orig_infodir="$infodir"
280 orig_mandir="$mandir"
281 orig_localedir="$localedir"
282 246
283 # check if a config.site exists and load it 247 # check if a config.site exists and load it
284 if [ -n "$CONFIG_SITE" ]; then 248 if [ -n "$CONFIG_SITE" ]; then
285 # CONFIG_SITE may contain space separated file names 249 # CONFIG_SITE may contain space separated file names
286 for cs in $CONFIG_SITE; do 250 for cs in $CONFIG_SITE; do
322 ]]# 286 ]]#
323 ## End of unparsed content ** 287 ## End of unparsed content **
324 288
325 # generate vars.mk 289 # generate vars.mk
326 cat > "$TEMP_DIR/vars.mk" << __EOF__ 290 cat > "$TEMP_DIR/vars.mk" << __EOF__
327 prefix=$prefix
328 exec_prefix=$exec_prefix
329 bindir=$bindir
330 sbindir=$sbindir
331 libdir=$libdir
332 libexecdir=$libexecdir
333 datarootdir=$datarootdir
334 datadir=$datadir
335 sysconfdir=$sysconfdir
336 sharedstatedir=$sharedstatedir
337 localstatedir=$localstatedir
338 runstatedir=$runstatedir
339 includedir=$includedir
340 infodir=$infodir
341 mandir=$mandir
342 localedir=$localedir
343 #foreach( $var in $vars ) 291 #foreach( $var in $vars )
344 ${var.varName}=${D}${var.varName} 292 ${var.varName}=${D}${var.varName}
345 #end 293 #end
346 __EOF__ 294 __EOF__
347 295
742 abort_configure 690 abort_configure
743 fi 691 fi
744 692
745 echo "configure finished" 693 echo "configure finished"
746 echo 694 echo
747 echo "Toolchain" 695 echo "Toolchain:"
748 echo " name: $TOOLCHAIN_NAME" 696 echo " name: $TOOLCHAIN_NAME"
749 if [ -n "$TOOLCHAIN_CC" ]; then 697 if [ -n "$TOOLCHAIN_CC" ]; then
750 echo " cc: $TOOLCHAIN_CC" 698 echo " cc: $TOOLCHAIN_CC"
751 fi 699 fi
752 if [ -n "$TOOLCHAIN_CXX" ]; then 700 if [ -n "$TOOLCHAIN_CXX" ]; then
757 fi 705 fi
758 if [ -n "$TOOLCHAIN_CSTD" ]; then 706 if [ -n "$TOOLCHAIN_CSTD" ]; then
759 echo " default C std: $TOOLCHAIN_CSTD" 707 echo " default C std: $TOOLCHAIN_CSTD"
760 fi 708 fi
761 echo 709 echo
762 echo "Build Config:" 710 echo "Config:"
763 echo " prefix: $prefix" 711 #foreach( $var in $vars )
764 echo " exec_prefix: $exec_prefix" 712 #if ($var.overridable)
765 if [ "$orig_bindir" != "$bindir" ]; then 713 printf ' %-16s' '${var.arg}:'
766 echo " bindir: $bindir" 714 echo "${D}${var.varName}"
767 fi 715 #end
768 if [ "$orig_sbindir" != "$sbindir" ]; then 716 #end
769 echo " sbindir: $sbindir"
770 fi
771 if [ "$orig_libdir" != "$libdir" ]; then
772 echo " libdir: $libdir"
773 fi
774 if [ "$orig_libexecdir" != "$libexecdir" ]; then
775 echo " libexecdir: $libexecdir"
776 fi
777 if [ "$orig_datarootdir" != "$datarootdir" ]; then
778 echo " datarootdir: $datarootdir"
779 fi
780 if [ "$orig_datadir" != "$datadir" ]; then
781 echo " datadir: $datadir"
782 fi
783 if [ "$orig_sysconfdir" != "$sysconfdir" ]; then
784 echo " sysconfdir: $sysconfdir"
785 fi
786 if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then
787 echo " sharedstatedir: $sharedstatedir"
788 fi
789 if [ "$orig_localstatedir" != "$localstatedir" ]; then
790 echo " localstatedir: $localstatedir"
791 fi
792 if [ "$orig_runstatedir" != "$runstatedir" ]; then
793 echo " runstatedir: $runstatedir"
794 fi
795 if [ "$orig_includedir" != "$includedir" ]; then
796 echo " includedir: $includedir"
797 fi
798 if [ "$orig_infodir" != "$infodir" ]; then
799 echo " infodir: $infodir"
800 fi
801 if [ "$orig_mandir" != "$mandir" ]; then
802 echo " mandir: $mandir"
803 fi
804 if [ "$orig_localedir" != "$localedir" ]; then
805 echo " localedir: $localedir"
806 fi
807 #if ( $options.size() > 0 ) 717 #if ( $options.size() > 0 )
808 echo 718 echo
809 echo "Options:" 719 echo "Options:"
810 cat "$TEMP_DIR/options" 720 cat "$TEMP_DIR/options"
811 #end 721 #end
812 #if ( $features.size() > 0 ) 722 #if ( $features.size() > 0 )
813 echo 723 echo
814 echo "Features:" 724 echo "Features:"
815 #foreach( $feature in $features ) 725 #foreach( $feature in $features )
726 printf ' %-16s' '$feature.name:'
816 if [ -n "${D}${feature.varName}" ]; then 727 if [ -n "${D}${feature.varName}" ]; then
817 echo " $feature.name: on" 728 echo 'on'
818 else 729 else
819 echo " $feature.name: off" 730 echo 'off'
820 fi 731 fi
821 #end 732 #end
822 #end 733 #end
823 echo 734 echo
824 735

mercurial