make/configure.vm

Sun, 01 Oct 2023 12:53:35 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 01 Oct 2023 12:53:35 +0200
changeset 71
0bdb910478cc
permissions
-rw-r--r--

add uwproj configure script generator

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

mercurial