make/configure.vm

changeset 158
4bde241c49b1
parent 156
62f1a55535e7
child 159
84a6e7a7b457
equal deleted inserted replaced
157:0b33b9396851 158:4bde241c49b1
1 #!/bin/sh 1 #!/bin/sh
2 2
3 #foreach( $var in $vars )
4 #if( $var.exec )
5 ${var.name}=`${var.value}`
6 #else
7 ${var.name}=${var.value}
8 #end
9 #end
10
11 #if ( ! $project.hasVar("PREFIX") )
3 PREFIX=/usr 12 PREFIX=/usr
13 #end
14 #if ( ! $project.hasVar("EPREFIX") )
4 EPREFIX=$PREFIX 15 EPREFIX=$PREFIX
5 16 #end
17
18 #if ( ! $project.hasVar("BINDIR") )
6 BINDIR= 19 BINDIR=
20 #end
21 #if ( ! $project.hasVar("SBINDIR") )
7 SBINDIR= 22 SBINDIR=
23 #end
24 #if ( ! $project.hasVar("LIBDIR") )
8 LIBDIR= 25 LIBDIR=
26 #end
27 #if ( ! $project.hasVar("LIBEXECDIR") )
9 LIBEXECDIR= 28 LIBEXECDIR=
29 #end
30 #if ( ! $project.hasVar("DATADIR") )
10 DATADIR= 31 DATADIR=
32 #end
33 #if ( ! $project.hasVar("SYSCONFDIR") )
11 SYSCONFDIR= 34 SYSCONFDIR=
35 #end
36 #if ( ! $project.hasVar("SHAREDSTATEDIR") )
12 SHAREDSTATEDIR= 37 SHAREDSTATEDIR=
38 #end
39 #if ( ! $project.hasVar("LOCALSTATEDIR") )
13 LOCALSTATEDIR= 40 LOCALSTATEDIR=
41 #end
42 #if ( ! $project.hasVar("INCLUDEDIR") )
14 INCLUDEDIR= 43 INCLUDEDIR=
44 #end
45 #if ( ! $project.hasVar("INFODIR") )
15 INFODIR= 46 INFODIR=
47 #end
48 #if ( ! $project.hasVar("MANDIR") )
16 MANDIR= 49 MANDIR=
50 #end
17 51
18 OS=`uname -s` 52 OS=`uname -s`
19 OS_VERSION=`uname -r` 53 OS_VERSION=`uname -r`
20 54
21 TEMP_DIR=".tmp-`uname -n`" 55 TEMP_DIR=".tmp-`uname -n`"
83 # parse arguments 117 # parse arguments
84 # 118 #
85 #set( $D = '$' ) 119 #set( $D = '$' )
86 for ARG in $@ 120 for ARG in $@
87 do 121 do
88 if [[ $ARG == --prefix=* ]]; then 122 case "$ARG" in
89 PREFIX=${D}{ARG:9} 123 "--prefix="*) PREFIX=${D}{ARG#--prefix=} ;;
90 elif [[ $ARG = --exec-prefix=* ]]; then 124 "--exec-prefix="*) EPREFIX=${D}{ARG#--exec-prefix=} ;;
91 EPREFIX=${D}{ARG:14} 125 "--bindir="*) BINDIR=${D}{ARG#----bindir=} ;;
92 elif [[ $ARG = --bindir=* ]]; then 126 "--sbindir="*) SBINDIR=${D}{ARG#--sbindir=} ;;
93 BINDIR=${D}{ARG:9} 127 "--libdir="*) LIBDIR=${D}{ARG#--libdir=} ;;
94 elif [[ $ARG = --sbindir=* ]]; then 128 "--libexecdir="*) LIBEXECDIR=${D}{ARG#--libexecdir=} ;;
95 SBINDIR=${D}{ARG:10} 129 "--datadir="*) DATADIR=${D}{ARG#--datadir=} ;;
96 elif [[ $ARG = --libdir=* ]]; then 130 "--sysconfdir="*) SYSCONFDIR=${D}{ARG#--sysconfdir=} ;;
97 LIBDIR=${D}{ARG:9} 131 "--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;;
98 elif [[ $ARG = --libexecdir=* ]]; then 132 "--localstatedir="*) LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;;
99 LIBEXECDIR=${D}{ARG:13} 133 "--includedir="*) INCLUDEDIR=${D}{ARG#--includedir=} ;;
100 elif [[ $ARG = --datadir=* ]]; then 134 "--infodir="*) INFODIR=${D}{ARG#--infodir=} ;;
101 DATADIR=${D}{ARG:10} 135 "--mandir"*) MANDIR=${D}{ARG#--mandir} ;;
102 elif [[ $ARG = --sysconfdir=* ]]; then 136 "--help"*) printhelp; exit 1 ;;
103 SYSCONFDIR=${D}{ARG:13} 137 #foreach( $opt in $options )
104 elif [[ $ARG = --sharedstatedir=* ]]; then 138 "--${opt.getArgument()}="*) ${opt.getVarName()}={ARG#${opt.getArgument()}=} ;;
105 SHAREDSTATEDIR=${D}{ARG:17}
106 elif [[ $ARG = --localstatedir=* ]]; then
107 LOCALSTATEDIR=${D}{ARG:16}
108 elif [[ $ARG = --includedir=* ]]; then
109 INCLUDEDIR=${D}{ARG:12}
110 elif [[ $ARG = --infodir=* ]]; then
111 INFODIR=${D}{ARG:10}
112 elif [[ $ARG = --mandir=* ]]; then
113 MANDIR=${D}{ARG:9}
114 elif [ $ARG = "--help" ]; then
115 printhelp
116 exit 0
117 #foreach( $opt in $options )
118 elif [[ $ARG == --${opt.getArgument()}=* ]]; then
119 ${opt.getVarName()}=${opt.getArgValue()}
120 #end 139 #end
121 #foreach( $feature in $features ) 140 #foreach( $feature in $features )
122 elif [[ $ARG == --enable-${feature.arg} ]]; then 141 "--enable-${feature.arg}") ${feature.getVarName()}=on ;;
123 ${feature.getVarName()}=on 142 "--disable-${feature.arg}") unset ${feature.getVarName()} ;;
124 elif [[ $ARG == --disable-${feature.arg} ]]; then 143 #end
125 unset ${feature.getVarName()} 144 "-"*) echo "unknown option: $ARG"; exit 1 ;;
126 #end 145 esac
127 fi
128 done 146 done
129 147
130 # set dir variables 148 # set dir variables
131 if [ -z $BINDIR ]; then 149 if [ -z "$BINDIR" ]; then
132 BINDIR=$EPREFIX/bin 150 BINDIR=$EPREFIX/bin
133 fi 151 fi
134 if [ -z $SBINDIR ]; then 152 if [ -z "$SBINDIR" ]; then
135 SBINDIR=$EPREFIX/sbin 153 SBINDIR=$EPREFIX/sbin
136 fi 154 fi
137 if [ -z $LIBDIR ]; then 155 if [ -z "$LIBDIR" ]; then
138 LIBDIRDIR=$EPREFIX/lib 156 LIBDIR=$EPREFIX/lib
139 fi 157 fi
140 if [ -z $LIBEXEC ]; then 158 if [ -z "$LIBEXEC" ]; then
141 LIBExECDIR=$EPREFIX/libexec 159 LIBEXECDIR=$EPREFIX/libexec
142 fi 160 fi
143 if [ -z $DATADIR ]; then 161 if [ -z "$DATADIR" ]; then
144 DATADIR=$PREFIX/share 162 DATADIR=$PREFIX/share
145 fi 163 fi
146 if [ -z $SYSCONFDIR]; then 164 if [ -z "$SYSCONFDIR" ]; then
147 SYSCONFDIR=$PREFIX/etc 165 SYSCONFDIR=$PREFIX/etc
148 fi 166 fi
149 if [ -z $SHAREDSTATEDIR ]; then 167 if [ -z "$SHAREDSTATEDIR" ]; then
150 SHAREDSTATEDIR=$PREFIX/com 168 SHAREDSTATEDIR=$PREFIX/com
151 fi 169 fi
152 if [ -z $LOCALSTATEDIR ]; then 170 if [ -z "$LOCALSTATEDIR" ]; then
153 LOCALSTATEDIR=$PREFIX/var 171 LOCALSTATEDIR=$PREFIX/var
154 fi 172 fi
155 if [ -z $INCLUDEDIR ]; then 173 if [ -z "$INCLUDEDIR" ]; then
156 INCLUDEDIR=$PREFIX/include 174 INCLUDEDIR=$PREFIX/include
157 fi 175 fi
158 if [ -z $INFODIR ]; then 176 if [ -z "$INFODIR" ]; then
159 INFODIR=$PREFIX/info 177 INFODIR=$PREFIX/info
160 fi 178 fi
161 if [ -z $MANDIR ]; then 179 if [ -z "$MANDIR" ]; then
162 MANDIR=$PREFIX/man 180 MANDIR=$PREFIX/man
163 fi 181 fi
164 182
165 which pkg-config > /dev/null 183 which pkg-config > /dev/null
166 if [ $? -ne 0 ]; then 184 if [ $? -eq 0 ]; then
167 PKG_CONFIG=pkg-config 185 PKG_CONFIG=pkg-config
168 else 186 else
169 PKG_CONFIG=false 187 PKG_CONFIG=false
170 fi 188 fi
171 189
208 return 0 226 return 0
209 fi 227 fi
210 done 228 done
211 return 1 229 return 1
212 } 230 }
231 isnotplatform()
232 {
233 for p in $PLATFORM
234 do
235 if [ $p = $1 ]; then
236 return 1
237 fi
238 done
239 return 0
240 }
213 241
214 # generate config.mk and config.h 242 # generate config.mk and config.h
215 cat > $TEMP_DIR/config.mk << __EOF__ 243 cat > $TEMP_DIR/config.mk << __EOF__
216 # 244 #
217 # config.mk generated by configure 245 # config.mk generated by configure
218 # 246 #
247
248 # general vars
249 #foreach( $var in $vars )
250 ${var.name}=$${var.name}
251 #end
252
253 #if ( ! $project.hasVar("PREFIX") )
254 PREFIX=$PREFIX
255 #end
256 #if ( ! $project.hasVar("EPREFIX") )
257 EPREFIX=$EPREFIX
258 #end
259
260 #if ( ! $project.hasVar("BINDIR") )
261 BINDIR=$BINDIR
262 #end
263 #if ( ! $project.hasVar("SBINDIR") )
264 SBINDIR=$SBINDIR
265 #end
266 #if ( ! $project.hasVar("LIBDIR") )
267 LIBDIR=$LIBDIR
268 #end
269 #if ( ! $project.hasVar("LIBEXECDIR") )
270 LIBEXECDIR=$LIBEXECDIR
271 #end
272 #if ( ! $project.hasVar("DATADIR") )
273 DATADIR=$DATADIR
274 #end
275 #if ( ! $project.hasVar("SYSCONFDIR") )
276 SYSCONFDIR=$SYSCONFDIR
277 #end
278 #if ( ! $project.hasVar("SHAREDSTATEDIR") )
279 SHAREDSTATEDIR=$SHAREDSTATEDIR
280 #end
281 #if ( ! $project.hasVar("LOCALSTATEDIR") )
282 LOCALSTATEDIR=$LOCALSTATEDIR
283 #end
284 #if ( ! $project.hasVar("INCLUDEDIR") )
285 INCLUDEDIR=$INCLUDEDIR
286 #end
287 #if ( ! $project.hasVar("INFODIR") )
288 INFODIR=$INFODIR
289 #end
290 #if ( ! $project.hasVar("MANDIR") )
291 MANDIR=$MANDIR
292 #end
293
219 __EOF__ 294 __EOF__
220 295
221 echo > $TEMP_DIR/make.mk 296 echo > $TEMP_DIR/make.mk
222 297
223 ENV_CFLAGS=$CFLAGS 298 ENV_CFLAGS=$CFLAGS
224 ENV_LDFLAGS=$LDFLAGS 299 ENV_LDFLAGS=$LDFLAGS
225 ENV_CXXFLAGS=$CXXFLAGS 300 ENV_CXXFLAGS=$CXXFLAGS
226 301
227 # Toolchain detection 302 # Toolchain detection
228 # this will insert make vars to config.mk 303 # this will insert make vars to config.mk
229 source make/toolchain.sh 304 . make/toolchain.sh
230 305
231 # add user specified flags to config.mk 306 # add user specified flags to config.mk
232 echo >> $TEMP_DIR/config.mk 307 echo >> $TEMP_DIR/config.mk
233 if [[ ! -z ${ENV_CFLAGS} ]]; then 308 if [ ! -z "${ENV_CFLAGS}" ]; then
234 echo "CFLAGS += $ENV_CFLAGS" >> $TEMP_DIR/config.mk 309 echo "CFLAGS += $ENV_CFLAGS" >> $TEMP_DIR/config.mk
235 fi 310 fi
236 if [[ ! -z ${ENV_CXXFLAGS} ]]; then 311 if [ ! -z "${ENV_CXXFLAGS}" ]; then
237 echo "CXXFLAGS += $ENV_CXXFLAGS" >> $TEMP_DIR/config.mk 312 echo "CXXFLAGS += $ENV_CXXFLAGS" >> $TEMP_DIR/config.mk
238 fi 313 fi
239 if [[ ! -z ${ENV_LDFLAGS} ]]; then 314 if [ ! -z "${ENV_LDFLAGS}" ]; then
240 echo "LDFLAGS += $ENV_LDFLAGS" >> $TEMP_DIR/config.mk 315 echo "LDFLAGS += $ENV_LDFLAGS" >> $TEMP_DIR/config.mk
241 fi 316 fi
242 317
243 # 318 #
244 # DEPENDENCIES 319 # DEPENDENCIES
251 #foreach( $sub in $dependency.getSubdependencies() ) 326 #foreach( $sub in $dependency.getSubdependencies() )
252 # dependency $sub.name $sub.getPlatformString() 327 # dependency $sub.name $sub.getPlatformString()
253 while true 328 while true
254 do 329 do
255 #if( $sub.platform ) 330 #if( $sub.platform )
256 if ! isplatform "${sub.platform}"; then 331 if isnotplatform "${sub.platform}"; then
257 break 332 break
258 fi 333 fi
259 #end 334 #end
335 #foreach( $not in $sub.getNotList() )
336 if isplatform "${not}"; then
337 break
338 fi
339 #end
260 #if( $sub.pkgconfig.size() > 0 ) 340 #if( $sub.pkgconfig.size() > 0 )
261 if [ -z "PKG_CONFIG" ]; then 341 if [ -z "$PKG_CONFIG" ]; then
262 break 342 break
263 fi 343 fi
264 #end 344 #end
265 #foreach( $pkg in $sub.pkgconfig ) 345 #foreach( $pkg in $sub.pkgconfig )
266 if ! pkg-config $pkg.getPkgConfigParam() ; then 346 $PKG_CONFIG $pkg.getPkgConfigParam()
347 if [ $? -ne 0 ] ; then
267 break 348 break
268 fi 349 fi
269 CFLAGS+=" `pkg-config --cflags $pkg.getPkgConfigParam()`" 350 CFLAGS="$CFLAGS `$PKG_CONFIG --cflags $pkg.getPkgConfigParam()`"
270 LDFLAGS+=" `pkg-config --libs $pkg.getPkgConfigParam()`" 351 LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs $pkg.getPkgConfigParam()`"
271 #end 352 #end
272 #foreach( $flags in $sub.flags ) 353 #foreach( $flags in $sub.flags )
273 #if( $flags.exec ) 354 #if( $flags.exec )
274 $flags.value > /dev/null 355 $flags.value > /dev/null
275 if [ $? -eq 0 ]; then 356 if [ $? -eq 0 ]; then
276 $flags.varName+=" `$flags.value`" 357 $flags.varName="$$flags.varName `$flags.value`"
277 else 358 else
278 break 359 break
279 fi 360 fi
280 #else 361 #else
281 $flags.varName+="$flags.value" 362 $flags.varName="$$flags.varName $flags.value"
282 #end 363 #end
283 #end 364 #end
284 #foreach( $test in $sub.tests ) 365 #foreach( $test in $sub.tests )
285 $test > /dev/null 366 $test > /dev/null
286 if [ $? -ne 0 ]; then 367 if [ $? -ne 0 ]; then
287 break 368 break
288 fi 369 fi
289 #end 370 #end
290 echo yes 371 #if ( $sub.make.length() > 0 )
372 cat >> $TEMP_DIR/make.mk << __EOF__
373 # Dependency: $dependency.name
374 $sub.make
375 __EOF__
376 #end
377 echo yes
291 return 0 378 return 0
292 done 379 done
293 380
294 #end 381 #end
295 echo no 382 echo no
305 LDFLAGS= 392 LDFLAGS=
306 #foreach( $dependency in $dependencies ) 393 #foreach( $dependency in $dependencies )
307 while true 394 while true
308 do 395 do
309 #if( $dependency.platform ) 396 #if( $dependency.platform )
310 if ! isplatform "${sub.platform}"; then 397 if isnotplatform "${dependency.platform}"; then
311 break 398 break
312 fi 399 fi
313 #end 400 #end
401 #foreach( $not in $dependency.getNotList() )
402 if isplatform "${not}"; then
403 break
404 fi
405 #end
314 while true 406 while true
315 do 407 do
316 #if( $dependency.pkgconfig.size() > 0 ) 408 #if( $dependency.pkgconfig.size() > 0 )
317 if [ -z "PKG_CONFIG" ]; then 409 if [ -z "$PKG_CONFIG" ]; then
318 ERROR=1 410 ERROR=1
319 break 411 break
320 fi 412 fi
321 #end 413 #end
322 #foreach( $pkg in $dependency.pkgconfig ) 414 #foreach( $pkg in $dependency.pkgconfig )
323 printf "checking for pkg-config package $pkg.getPkgConfigParam()... " 415 printf "checking for pkg-config package $pkg.getPkgConfigParam()... "
324 if ! pkg-config $pkg.getPkgConfigParam() ; then 416 $PKG_CONFIG $pkg.getPkgConfigParam()
417 if [ $? -ne 0 ]; then
325 echo no 418 echo no
326 ERROR=1 419 ERROR=1
327 break 420 break
328 fi 421 fi
329 echo yes 422 echo yes
330 CFLAGS+=" `pkg-config --cflags $pkg.getPkgConfigParam()`" 423 CFLAGS="$CFLAGS `$PKG_CONFIG --cflags $pkg.getPkgConfigParam()`"
331 LDFLAGS+=" `pkg-config --libs $pkg.getPkgConfigParam()`" 424 LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs $pkg.getPkgConfigParam()`"
332 #end 425 #end
333 426
334 #foreach( $flags in $dependency.flags ) 427 #foreach( $flags in $dependency.flags )
335 #if( $flags.exec ) 428 #if( $flags.exec )
336 $flags.value > /dev/null 429 $flags.value > /dev/null
337 if [ $? -ne 0 ]; then 430 if [ $? -ne 0 ]; then
338 $flags.varName+=" `$flags.value`" 431 $flags.varName="$$flags.varName `$flags.value`"
339 else 432 else
340 ERROR=1 433 ERROR=1
341 break 434 break
342 fi 435 fi
343 #else 436 #else
344 $flags.varName+="$flags.value" 437 $flags.varName="$$flags.varName $flags.value"
345 #end 438 #end
439 #end
440 #if ( $dependency.make.length() > 0 )
441 cat >> $TEMP_DIR/make.mk << __EOF__
442 $dependency.make
443 __EOF__
346 #end 444 #end
347 445
348 break 446 break
349 done 447 done
350 448
352 done 450 done
353 #end 451 #end
354 452
355 # add general dependency flags to config.mk 453 # add general dependency flags to config.mk
356 echo >> $TEMP_DIR/config.mk 454 echo >> $TEMP_DIR/config.mk
357 if [[ ! -z ${CFLAGS} ]]; then 455 if [ ! -z "${CFLAGS}" ]; then
358 echo "CFLAGS += $CFLAGS" >> $TEMP_DIR/config.mk 456 echo "CFLAGS += $CFLAGS" >> $TEMP_DIR/config.mk
359 fi 457 fi
360 if [[ ! -z ${CXXFLAGS} ]]; then 458 if [ ! -z "${CXXFLAGS}" ]; then
361 echo "CXXFLAGS += $CXXFLAGS" >> $TEMP_DIR/config.mk 459 echo "CXXFLAGS += $CXXFLAGS" >> $TEMP_DIR/config.mk
362 fi 460 fi
363 if [[ ! -z ${LDFLAGS} ]]; then 461 if [ ! -z "${LDFLAGS}" ]; then
364 echo "LDFLAGS += $LDFLAGS" >> $TEMP_DIR/config.mk 462 echo "LDFLAGS += $LDFLAGS" >> $TEMP_DIR/config.mk
365 fi 463 fi
366 #end 464 #end
367 465
368 # 466 #
381 #end 479 #end
382 if [ $VERR -ne 0 ]; then 480 if [ $VERR -ne 0 ]; then
383 return 1 481 return 1
384 fi 482 fi
385 #foreach( $def in $val.defines ) 483 #foreach( $def in $val.defines )
386 CFLAGS+=" ${def.toFlags()}" 484 CFLAGS="$CFLAGS ${def.toFlags()}"
387 #end 485 #end
388 #if( $val.hasMake() ) 486 #if( $val.hasMake() )
389 cat >> $TEMP_DIR/make.mk << __EOF__ 487 cat >> $TEMP_DIR/make.mk << __EOF__
390 $val.make 488 $val.make
391 __EOF__ 489 __EOF__
413 CXXFLAGS= 511 CXXFLAGS=
414 512
415 #foreach( $dependency in $target.dependencies ) 513 #foreach( $dependency in $target.dependencies )
416 dependency_$dependency 514 dependency_$dependency
417 if [ $? -ne 0 ]; then 515 if [ $? -ne 0 ]; then
418 DEPENDENCIES_FAILED+="${dependency} " 516 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
419 ERROR=1 517 ERROR=1
518 fi
519 #end
520
521 # Features
522 #foreach( $feature in $target.features )
523 if [ ! -z "$${feature.getVarName()}" ]; then
524 #foreach( $dependency in $feature.dependencies )
525 # check dependency
526 dependency_$dependency
527 if [ $? -ne 0 ]; then
528 # "auto" features can fail and are just disabled in this case
529 if [ $${feature.getVarName()} != "auto" ]; then
530 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
531 ERROR=1
532 fi
533 fi
534 #end
420 fi 535 fi
421 #end 536 #end
422 537
423 #foreach( $opt in $target.options ) 538 #foreach( $opt in $target.options )
424 # Option: --${opt.argument} 539 # Option: --${opt.argument}
463 fi 578 fi
464 fi 579 fi
465 #end 580 #end
466 581
467 echo >> $TEMP_DIR/config.mk 582 echo >> $TEMP_DIR/config.mk
468 if [[ ! -z ${CFLAGS} ]]; then 583 if [ ! -z "${CFLAGS}" ]; then
469 echo "${target.getCFlags()} += $CFLAGS" >> $TEMP_DIR/config.mk 584 echo "${target.getCFlags()} += $CFLAGS" >> $TEMP_DIR/config.mk
470 fi 585 fi
471 if [[ ! -z ${CXXFLAGS} ]]; then 586 if [ ! -z "${CXXFLAGS}" ]; then
472 echo "${target.getCXXFlags()} += $CXXFLAGS" >> $TEMP_DIR/config.mk 587 echo "${target.getCXXFlags()} += $CXXFLAGS" >> $TEMP_DIR/config.mk
473 fi 588 fi
474 if [[ ! -z ${LDFLAGS} ]]; then 589 if [ ! -z "${LDFLAGS}" ]; then
475 echo "${target.getLDFlags()} += $LDFLAGS" >> $TEMP_DIR/config.mk 590 echo "${target.getLDFlags()} += $LDFLAGS" >> $TEMP_DIR/config.mk
476 fi 591 fi
477 592
478 #end 593 #end
479 if [ $ERROR -ne 0 ]; then 594 if [ $ERROR -ne 0 ]; then
480 echo 595 echo
481 echo "Error: Unresolved dependencies" 596 echo "Error: Unresolved dependencies"
482 echo $DEPENCIES_FAILED 597 echo $DEPENDENCIES_FAILED
483 rm -Rf $TEMP_DIR 598 rm -Rf $TEMP_DIR
484 exit 1 599 exit 1
485 fi 600 fi
486 601
487 echo "configure finished" 602 echo "configure finished"

mercurial