make/configure.vm

Sun, 24 Sep 2023 18:43:58 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 24 Sep 2023 18:43:58 +0200
changeset 72
b533da8e7411
permissions
-rw-r--r--

use uwproj for build config generation

universe@72 1 #!/bin/sh
universe@72 2
universe@72 3 # create temporary directory
universe@72 4 TEMP_DIR=".tmp-`uname -n`"
universe@72 5 rm -Rf "$TEMP_DIR"
universe@72 6 if mkdir -p "$TEMP_DIR"; then
universe@72 7 :
universe@72 8 else
universe@72 9 echo "Cannot create tmp dir $TEMP_DIR"
universe@72 10 echo "Abort"
universe@72 11 exit 1
universe@72 12 fi
universe@72 13 touch "$TEMP_DIR/options"
universe@72 14 touch "$TEMP_DIR/features"
universe@72 15
universe@72 16 # define standard variables
universe@72 17 PREFIX=/usr
universe@72 18 EPREFIX=
universe@72 19 BINDIR=
universe@72 20 SBINDIR=
universe@72 21 LIBDIR=
universe@72 22 LIBEXECDIR=
universe@72 23 DATADIR=
universe@72 24 SYSCONFDIR=
universe@72 25 SHAREDSTATEDIR=
universe@72 26 LOCALSTATEDIR=
universe@72 27 INCLUDEDIR=
universe@72 28 INFODIR=
universe@72 29 MANDIR=
universe@72 30
universe@72 31 # custom variables
universe@72 32 #foreach( $var in $vars )
universe@72 33 #if( $var.exec )
universe@72 34 ${var.varName}=`${var.value}`
universe@72 35 #else
universe@72 36 ${var.varName}="${var.value}"
universe@72 37 #end
universe@72 38 #end
universe@72 39
universe@72 40 # features
universe@72 41 #foreach( $feature in $features )
universe@72 42 #if( ${feature.isDefault()} )
universe@72 43 ${feature.getVarName()}=auto
universe@72 44 #end
universe@72 45 #end
universe@72 46
universe@72 47 # clean abort
universe@72 48 abort_configure()
universe@72 49 {
universe@72 50 rm -Rf "$TEMP_DIR"
universe@72 51 exit 1
universe@72 52 }
universe@72 53
universe@72 54 # help text
universe@72 55 printhelp()
universe@72 56 {
universe@72 57 echo "Usage: $0 [OPTIONS]..."
universe@72 58 cat << __EOF__
universe@72 59 Installation directories:
universe@72 60 --prefix=PREFIX path prefix for architecture-independent files
universe@72 61 [/usr]
universe@72 62 --exec-prefix=EPREFIX path prefix for architecture-dependent files
universe@72 63 [PREFIX]
universe@72 64
universe@72 65 --bindir=DIR user executables [EPREFIX/bin]
universe@72 66 --sbindir=DIR system admin executables [EPREFIX/sbin]
universe@72 67 --libexecdir=DIR program executables [EPREFIX/libexec]
universe@72 68 --sysconfdir=DIR system configuration files [PREFIX/etc]
universe@72 69 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
universe@72 70 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
universe@72 71 --libdir=DIR object code libraries [EPREFIX/lib]
universe@72 72 --includedir=DIR C header files [PREFIX/include]
universe@72 73 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
universe@72 74 --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
universe@72 75 --infodir=DIR info documentation [DATAROOTDIR/info]
universe@72 76 --mandir=DIR man documentation [DATAROOTDIR/man]
universe@72 77
universe@72 78 #if( $options.size() > 0 )
universe@72 79 Options:
universe@72 80 --debug add extra compile flags for debug builds
universe@72 81 --release add extra compile flags for release builds
universe@72 82 #foreach( $opt in $options )
universe@72 83 --${opt.getArgument()}=${opt.getValuesString()}
universe@72 84 #end
universe@72 85
universe@72 86 #end
universe@72 87 #if( $features.size() > 0 )
universe@72 88 Optional Features:
universe@72 89 #foreach( $feature in $features )
universe@72 90 #if( $feature.default )
universe@72 91 --disable-${feature.arg}
universe@72 92 #else
universe@72 93 --enable-${feature.arg}
universe@72 94 #end
universe@72 95 #end
universe@72 96
universe@72 97 #end
universe@72 98 __EOF__
universe@72 99 }
universe@72 100
universe@72 101 #
universe@72 102 # parse arguments
universe@72 103 #
universe@72 104 BUILD_TYPE="default"
universe@72 105 #set( $D = '$' )
universe@72 106 for ARG in "$@"
universe@72 107 do
universe@72 108 case "$ARG" in
universe@72 109 "--prefix="*) PREFIX=${D}{ARG#--prefix=} ;;
universe@72 110 "--exec-prefix="*) EPREFIX=${D}{ARG#--exec-prefix=} ;;
universe@72 111 "--bindir="*) BINDIR=${D}{ARG#----bindir=} ;;
universe@72 112 "--sbindir="*) SBINDIR=${D}{ARG#--sbindir=} ;;
universe@72 113 "--libdir="*) LIBDIR=${D}{ARG#--libdir=} ;;
universe@72 114 "--libexecdir="*) LIBEXECDIR=${D}{ARG#--libexecdir=} ;;
universe@72 115 "--datadir="*) DATADIR=${D}{ARG#--datadir=} ;;
universe@72 116 "--sysconfdir="*) SYSCONFDIR=${D}{ARG#--sysconfdir=} ;;
universe@72 117 "--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;;
universe@72 118 "--localstatedir="*) LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;;
universe@72 119 "--includedir="*) INCLUDEDIR=${D}{ARG#--includedir=} ;;
universe@72 120 "--infodir="*) INFODIR=${D}{ARG#--infodir=} ;;
universe@72 121 "--mandir"*) MANDIR=${D}{ARG#--mandir} ;;
universe@72 122 "--help"*) printhelp; abort_configure ;;
universe@72 123 "--debug") BUILD_TYPE="debug" ;;
universe@72 124 "--release") BUILD_TYPE="release" ;;
universe@72 125 #foreach( $opt in $options )
universe@72 126 "--${opt.getArgument()}="*) ${opt.getVarName()}=${D}{ARG#--${opt.getArgument()}=} ;;
universe@72 127 #end
universe@72 128 #foreach( $feature in $features )
universe@72 129 "--enable-${feature.arg}") ${feature.getVarName()}=on ;;
universe@72 130 "--disable-${feature.arg}") unset ${feature.getVarName()} ;;
universe@72 131 #end
universe@72 132 "-"*) echo "unknown option: $ARG"; abort_configure ;;
universe@72 133 esac
universe@72 134 done
universe@72 135
universe@72 136 ## Begin unparsed content. **
universe@72 137 #[[
universe@72 138 # set dir variables
universe@72 139 : ${EPREFIX:="$PREFIX"}
universe@72 140 : ${BINDIR:="$EPREFIX/bin"}
universe@72 141 : ${SBINDIR:="$EPREFIX/sbin"}
universe@72 142 : ${LIBDIR:="$EPREFIX/lib"}
universe@72 143 : ${LIBEXECDIR:="$EPREFIX/libexec"}
universe@72 144 : ${DATADIR:="$PREFIX/share"}
universe@72 145 : ${SYSCONFDIR:="$PREFIX/etc"}
universe@72 146 : ${SHAREDSTATEDIR:="$PREFIX/com"}
universe@72 147 : ${LOCALSTATEDIR:="$PREFIX/var"}
universe@72 148 : ${INCLUDEDIR:="$PREFIX/include"}
universe@72 149 : ${INFODIR:="$PREFIX/info"}
universe@72 150 : ${MANDIR:="$PREFIX/man"}
universe@72 151
universe@72 152 # Test for availability of pkg-config
universe@72 153 PKG_CONFIG=`command -v pkg-config`
universe@72 154 : ${PKG_CONFIG:="false"}
universe@72 155
universe@72 156 # Simple uname based platform detection
universe@72 157 # $PLATFORM is used for platform dependent dependency selection
universe@72 158 OS=`uname -s`
universe@72 159 OS_VERSION=`uname -r`
universe@72 160 printf "detect platform... "
universe@72 161 if [ "$OS" = "SunOS" ]; then
universe@72 162 PLATFORM="solaris sunos unix svr4"
universe@72 163 fi
universe@72 164 if [ "$OS" = "Linux" ]; then
universe@72 165 PLATFORM="linux unix"
universe@72 166 fi
universe@72 167 if [ "$OS" = "FreeBSD" ]; then
universe@72 168 PLATFORM="freebsd bsd unix"
universe@72 169 fi
universe@72 170 if [ "$OS" = "Darwin" ]; then
universe@72 171 PLATFORM="macos osx bsd unix"
universe@72 172 fi
universe@72 173 if echo "$OS" | grep -i "MINGW" > /dev/null; then
universe@72 174 PLATFORM="windows mingw"
universe@72 175 fi
universe@72 176 : ${PLATFORM:="unix"}
universe@72 177
universe@72 178 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -`
universe@72 179 echo "$PLATFORM_NAME"
universe@72 180
universe@72 181 isplatform()
universe@72 182 {
universe@72 183 for p in $PLATFORM
universe@72 184 do
universe@72 185 if [ "$p" = "$1" ]; then
universe@72 186 return 0
universe@72 187 fi
universe@72 188 done
universe@72 189 return 1
universe@72 190 }
universe@72 191 notisplatform()
universe@72 192 {
universe@72 193 for p in $PLATFORM
universe@72 194 do
universe@72 195 if [ "$p" = "$1" ]; then
universe@72 196 return 1
universe@72 197 fi
universe@72 198 done
universe@72 199 return 0
universe@72 200 }
universe@72 201 ]]#
universe@72 202 ## End of unparsed content **
universe@72 203
universe@72 204 # generate vars.mk
universe@72 205 cat > "$TEMP_DIR/vars.mk" << __EOF__
universe@72 206 PREFIX="$PREFIX"
universe@72 207 EPREFIX="$EPREFIX"
universe@72 208 BINDIR="$BINDIR"
universe@72 209 SBINDIR="$SBINDIR"
universe@72 210 LIBDIR="$LIBDIR"
universe@72 211 LIBEXECDIR="$LIBEXECDIR"
universe@72 212 DATADIR="$DATADIR"
universe@72 213 SYSCONFDIR="$SYSCONFDIR"
universe@72 214 SHAREDSTATEDIR="$SHAREDSTATEDIR"
universe@72 215 LOCALSTATEDIR="$LOCALSTATEDIR"
universe@72 216 INCLUDEDIR="$INCLUDEDIR"
universe@72 217 INFODIR="$INFODIR"
universe@72 218 MANDIR="$MANDIR"
universe@72 219 #foreach( $var in $vars )
universe@72 220 ${var.varName}="$${var.varName}"
universe@72 221 #end
universe@72 222 __EOF__
universe@72 223 sort -u -o "$TEMP_DIR/vars.mk" "$TEMP_DIR/vars.mk"
universe@72 224
universe@72 225
universe@72 226 # toolchain detection utilities
universe@72 227 . make/toolchain.sh
universe@72 228
universe@72 229 #
universe@72 230 # DEPENDENCIES
universe@72 231 #
universe@72 232
universe@72 233 # check languages
universe@72 234 lang_c=
universe@72 235 lang_cpp=
universe@72 236 #foreach( $lang in $languages )
universe@72 237 if detect_${lang}_compiler ; then
universe@72 238 lang_${lang}=1
universe@72 239 fi
universe@72 240 #end
universe@72 241
universe@72 242 # create buffer for make variables required by dependencies
universe@72 243 echo > "$TEMP_DIR/make.mk"
universe@72 244
universe@72 245 test_pkg_config()
universe@72 246 {
universe@72 247 if "$PKG_CONFIG" --exists "$1" ; then :
universe@72 248 else return 1 ; fi
universe@72 249 if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then :
universe@72 250 else return 1 ; fi
universe@72 251 if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then :
universe@72 252 else return 1 ; fi
universe@72 253 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then :
universe@72 254 else return 1 ; fi
universe@72 255 return 0
universe@72 256 }
universe@72 257
universe@72 258 #foreach( $dependency in $namedDependencies )
universe@72 259 dependency_error_${dependency.name}()
universe@72 260 {
universe@72 261 printf "checking for ${dependency.name}... "
universe@72 262 #foreach( $sub in $dependency.getSubdependencies() )
universe@72 263 # dependency $sub.getFullName()
universe@72 264 while true
universe@72 265 do
universe@72 266 #if( $sub.platform )
universe@72 267 if notisplatform "${sub.platform}"; then
universe@72 268 break
universe@72 269 fi
universe@72 270 #end
universe@72 271 #foreach( $np in $sub.getNotList() )
universe@72 272 if isplatform "${np}"; then
universe@72 273 break
universe@72 274 fi
universe@72 275 #end
universe@72 276 #foreach( $lang in $sub.lang )
universe@72 277 if [ -z "$lang_${lang}" ] ; then
universe@72 278 break
universe@72 279 fi
universe@72 280 #end
universe@72 281 #if( $sub.pkgconfig.size() > 0 )
universe@72 282 if [ -z "$PKG_CONFIG" ]; then
universe@72 283 break
universe@72 284 fi
universe@72 285 #end
universe@72 286 #foreach( $test in $sub.tests )
universe@72 287 if $test > /dev/null ; then
universe@72 288 :
universe@72 289 else
universe@72 290 break
universe@72 291 fi
universe@72 292 #end
universe@72 293 #foreach( $pkg in $sub.pkgconfig )
universe@72 294 if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then
universe@72 295 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`"
universe@72 296 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`"
universe@72 297 else
universe@72 298 break
universe@72 299 fi
universe@72 300 #end
universe@72 301 #foreach( $flags in $sub.flags )
universe@72 302 #if( $flags.exec )
universe@72 303 if tmp_flags=`$flags.value` ; then
universe@72 304 TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags"
universe@72 305 else
universe@72 306 break
universe@72 307 fi
universe@72 308 #else
universe@72 309 TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
universe@72 310 #end
universe@72 311 #end
universe@72 312 #if ( $sub.make.length() > 0 )
universe@72 313 cat >> $TEMP_DIR/make.mk << __EOF__
universe@72 314 # Dependency: $dependency.name
universe@72 315 $sub.make
universe@72 316 __EOF__
universe@72 317 #end
universe@72 318 echo yes
universe@72 319 return 1
universe@72 320 done
universe@72 321
universe@72 322 #end
universe@72 323 echo no
universe@72 324 return 0
universe@72 325 }
universe@72 326 #end
universe@72 327
universe@72 328
universe@72 329
universe@72 330
universe@72 331 # start collecting dependency information
universe@72 332 echo > "$TEMP_DIR/flags.mk"
universe@72 333
universe@72 334 DEPENDENCIES_FAILED=
universe@72 335 ERROR=0
universe@72 336 #if( $dependencies.size() > 0 )
universe@72 337 # unnamed dependencies
universe@72 338 TEMP_CFLAGS=
universe@72 339 TEMP_CXXFLAGS=
universe@72 340 TEMP_LDFLAGS=
universe@72 341 #foreach( $dependency in $dependencies )
universe@72 342 while true
universe@72 343 do
universe@72 344 #if( $dependency.platform )
universe@72 345 if notisplatform "${dependency.platform}"; then
universe@72 346 break
universe@72 347 fi
universe@72 348 #end
universe@72 349 #foreach( $np in $dependency.getNotList() )
universe@72 350 if isplatform "${np}"; then
universe@72 351 break
universe@72 352 fi
universe@72 353 #end
universe@72 354 while true
universe@72 355 do
universe@72 356 #foreach( $lang in $dependency.lang )
universe@72 357 if [ -z "$lang_${lang}" ] ; then
universe@72 358 ERROR=1
universe@72 359 break
universe@72 360 fi
universe@72 361 #end
universe@72 362 #if( $dependency.pkgconfig.size() > 0 )
universe@72 363 if [ -z "$PKG_CONFIG" ]; then
universe@72 364 ERROR=1
universe@72 365 break
universe@72 366 fi
universe@72 367 #end
universe@72 368 #foreach( $pkg in $dependency.pkgconfig )
universe@72 369 printf "checking for pkg-config package $pkg.name... "
universe@72 370 if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then
universe@72 371 echo yes
universe@72 372 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`"
universe@72 373 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`"
universe@72 374 else
universe@72 375 echo no
universe@72 376 ERROR=1
universe@72 377 break
universe@72 378 fi
universe@72 379 #end
universe@72 380
universe@72 381 #foreach( $flags in $dependency.flags )
universe@72 382 #if( $flags.exec )
universe@72 383 $flags.value > /dev/null
universe@72 384 if tmp_flags=`$flags.value` ; then
universe@72 385 TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags"
universe@72 386 else
universe@72 387 ERROR=1
universe@72 388 break
universe@72 389 fi
universe@72 390 #else
universe@72 391 TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
universe@72 392 #end
universe@72 393 #end
universe@72 394 #if ( $dependency.make.length() > 0 )
universe@72 395 cat >> "$TEMP_DIR/make.mk" << __EOF__
universe@72 396 $dependency.make
universe@72 397 __EOF__
universe@72 398 #end
universe@72 399 break
universe@72 400 done
universe@72 401 break
universe@72 402 done
universe@72 403 #end
universe@72 404
universe@72 405 # add general dependency flags to flags.mk
universe@72 406 echo "# general flags" >> "$TEMP_DIR/flags.mk"
universe@72 407 if [ -n "${TEMP_CFLAGS}" ]; then
universe@72 408 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 409 fi
universe@72 410 if [ -n "${TEMP_CXXFLAGS}" ]; then
universe@72 411 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 412 fi
universe@72 413 if [ -n "${TEMP_LDFLAGS}" ]; then
universe@72 414 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 415 fi
universe@72 416 #end
universe@72 417
universe@72 418 #
universe@72 419 # OPTION VALUES
universe@72 420 #
universe@72 421 #foreach( $opt in $options )
universe@72 422 #foreach( $val in $opt.values )
universe@72 423 ${val.func}()
universe@72 424 {
universe@72 425 VERR=0
universe@72 426 #foreach( $dep in $val.dependencies )
universe@72 427 if dependency_error_$dep ; then
universe@72 428 VERR=1
universe@72 429 fi
universe@72 430 #end
universe@72 431 if [ $VERR -ne 0 ]; then
universe@72 432 return 1
universe@72 433 fi
universe@72 434 #foreach( $def in $val.defines )
universe@72 435 TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}"
universe@72 436 TEMP_CXXFLAGS="$TEMP_CXXFLAGS ${def.toFlags()}"
universe@72 437 #end
universe@72 438 #if( $val.hasMake() )
universe@72 439 cat >> "$TEMP_DIR/make.mk" << __EOF__
universe@72 440 $val.make
universe@72 441 __EOF__
universe@72 442 #end
universe@72 443 return 0
universe@72 444 }
universe@72 445 #end
universe@72 446 #end
universe@72 447
universe@72 448 #
universe@72 449 # TARGETS
universe@72 450 #
universe@72 451
universe@72 452 #foreach( $target in $targets )
universe@72 453 echo >> "$TEMP_DIR/flags.mk"
universe@72 454 #if ( $target.name )
universe@72 455 # Target: $target.name
universe@72 456 echo "# flags for target $target.name" >> "$TEMP_DIR/flags.mk"
universe@72 457 #else
universe@72 458 # Target
universe@72 459 echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk"
universe@72 460 #end
universe@72 461 TEMP_CFLAGS=
universe@72 462 TEMP_CXXFLAGS=
universe@72 463 TEMP_LDFLAGS=
universe@72 464
universe@72 465 #foreach( $dependency in $target.dependencies )
universe@72 466 if dependency_error_$dependency; then
universe@72 467 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
universe@72 468 ERROR=1
universe@72 469 fi
universe@72 470 #end
universe@72 471
universe@72 472 # Features
universe@72 473 #foreach( $feature in $target.features )
universe@72 474 if [ -n "$${feature.getVarName()}" ]; then
universe@72 475 #foreach( $dependency in $feature.dependencies )
universe@72 476 # check dependency
universe@72 477 if dependency_error_$dependency ; then
universe@72 478 # "auto" features can fail and are just disabled in this case
universe@72 479 if [ "$${feature.getVarName()}" = "auto" ]; then
universe@72 480 DISABLE_${feature.getVarName()}=1
universe@72 481 else
universe@72 482 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
universe@72 483 ERROR=1
universe@72 484 fi
universe@72 485 fi
universe@72 486 #end
universe@72 487 if [ -n "$DISABLE_${feature.getVarName()}" ]; then
universe@72 488 unset ${feature.getVarName()}
universe@72 489 fi
universe@72 490 fi
universe@72 491 #end
universe@72 492
universe@72 493 #foreach( $opt in $target.options )
universe@72 494 # Option: --${opt.argument}
universe@72 495 if [ -z ${D}${opt.getVarName()} ]; then
universe@72 496 SAVED_ERROR="$ERROR"
universe@72 497 SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED"
universe@72 498 ERROR=1
universe@72 499 while true
universe@72 500 do
universe@72 501 #foreach( $optdef in $opt.defaults )
universe@72 502 #if( $optdef.platform )
universe@72 503 if isplatform "$optdef.platform"; then
universe@72 504 #end
universe@72 505 if $optdef.func ; then
universe@72 506 echo " ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options"
universe@72 507 ERROR=0
universe@72 508 break
universe@72 509 fi
universe@72 510 #if( $optdef.platform )
universe@72 511 fi
universe@72 512 #end
universe@72 513 #end
universe@72 514 break
universe@72 515 done
universe@72 516 if [ $ERROR -ne 0 ]; then
universe@72 517 SAVED_ERROR=1
universe@72 518 fi
universe@72 519 ERROR="$SAVED_ERROR"
universe@72 520 DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED"
universe@72 521 else
universe@72 522 if false; then
universe@72 523 false
universe@72 524 #foreach( $optval in $opt.values )
universe@72 525 elif [ "${D}${opt.getVarName()}" = "${optval.value}" ]; then
universe@72 526 echo " ${opt.argument}: ${D}${opt.getVarName()}" >> $TEMP_DIR/options
universe@72 527 if $optval.func ; then
universe@72 528 :
universe@72 529 else
universe@72 530 ERROR=1
universe@72 531 fi
universe@72 532 #end
universe@72 533 fi
universe@72 534 fi
universe@72 535 #end
universe@72 536
universe@72 537 if [ -n "${TEMP_CFLAGS}" ]; then
universe@72 538 echo "${target.getCFlags()} += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 539 fi
universe@72 540 if [ -n "${TEMP_CXXFLAGS}" ]; then
universe@72 541 echo "${target.getCXXFlags()} += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 542 fi
universe@72 543 if [ "$BUILD_TYPE" = "debug" ]; then
universe@72 544 echo '${target.getCFlags()} += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
universe@72 545 echo '${target.getCXXFlags()} += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
universe@72 546 fi
universe@72 547 if [ "$BUILD_TYPE" = "release" ]; then
universe@72 548 echo '${target.getCFlags()} += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
universe@72 549 echo '${target.getCXXFlags()} += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
universe@72 550 fi
universe@72 551 if [ -n "${TEMP_LDFLAGS}" ]; then
universe@72 552 echo "${target.getLDFlags()} += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
universe@72 553 fi
universe@72 554
universe@72 555 #end
universe@72 556
universe@72 557 # final result
universe@72 558 if [ $ERROR -ne 0 ]; then
universe@72 559 echo
universe@72 560 echo "Error: Unresolved dependencies"
universe@72 561 echo "$DEPENDENCIES_FAILED"
universe@72 562 abort_configure
universe@72 563 fi
universe@72 564
universe@72 565 echo "configure finished"
universe@72 566 echo
universe@72 567 echo "Build Config:"
universe@72 568 echo " PREFIX: $PREFIX"
universe@72 569 echo " TOOLCHAIN: $TOOLCHAIN_NAME"
universe@72 570 #if ( $options.size() > 0 )
universe@72 571 echo "Options:"
universe@72 572 cat "$TEMP_DIR/options"
universe@72 573 #end
universe@72 574 #if ( $features.size() > 0 )
universe@72 575 echo "Features:"
universe@72 576 #foreach( $feature in $features )
universe@72 577 if [ -n "$${feature.getVarName()}" ]; then
universe@72 578 echo " $feature.name: on"
universe@72 579 else
universe@72 580 echo " $feature.name: off"
universe@72 581 fi
universe@72 582 #end
universe@72 583 #end
universe@72 584 echo
universe@72 585
universe@72 586 # generate the config.mk file
universe@72 587 cat > "$TEMP_DIR/config.mk" << __EOF__
universe@72 588 #
universe@72 589 # config.mk generated by configure
universe@72 590 #
universe@72 591
universe@72 592 __EOF__
universe@72 593 write_toolchain_defaults "$TEMP_DIR/toolchain.mk"
universe@72 594 cat "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk
universe@72 595 rm -Rf "$TEMP_DIR"
universe@72 596
universe@72 597

mercurial