make/configure.vm

changeset 72
b533da8e7411
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/make/configure.vm	Sun Sep 24 18:43:58 2023 +0200
     1.3 @@ -0,0 +1,597 @@
     1.4 +#!/bin/sh
     1.5 +
     1.6 +# create temporary directory
     1.7 +TEMP_DIR=".tmp-`uname -n`"
     1.8 +rm -Rf "$TEMP_DIR"
     1.9 +if mkdir -p "$TEMP_DIR"; then
    1.10 +    :
    1.11 +else
    1.12 +    echo "Cannot create tmp dir $TEMP_DIR"
    1.13 +    echo "Abort"
    1.14 +    exit 1
    1.15 +fi
    1.16 +touch "$TEMP_DIR/options"
    1.17 +touch "$TEMP_DIR/features"
    1.18 +
    1.19 +# define standard variables
    1.20 +PREFIX=/usr
    1.21 +EPREFIX=
    1.22 +BINDIR=
    1.23 +SBINDIR=
    1.24 +LIBDIR=
    1.25 +LIBEXECDIR=
    1.26 +DATADIR=
    1.27 +SYSCONFDIR=
    1.28 +SHAREDSTATEDIR=
    1.29 +LOCALSTATEDIR=
    1.30 +INCLUDEDIR=
    1.31 +INFODIR=
    1.32 +MANDIR=
    1.33 +
    1.34 +# custom variables
    1.35 +#foreach( $var in $vars )
    1.36 +#if( $var.exec )
    1.37 +${var.varName}=`${var.value}`
    1.38 +#else
    1.39 +${var.varName}="${var.value}"
    1.40 +#end
    1.41 +#end
    1.42 +
    1.43 +# features
    1.44 +#foreach( $feature in $features )
    1.45 +#if( ${feature.isDefault()} )
    1.46 +${feature.getVarName()}=auto
    1.47 +#end
    1.48 +#end
    1.49 +
    1.50 +# clean abort
    1.51 +abort_configure()
    1.52 +{
    1.53 +    rm -Rf "$TEMP_DIR"
    1.54 +    exit 1
    1.55 +}
    1.56 +
    1.57 +# help text
    1.58 +printhelp()
    1.59 +{
    1.60 +    echo "Usage: $0 [OPTIONS]..."
    1.61 +    cat << __EOF__
    1.62 +Installation directories:
    1.63 +  --prefix=PREFIX         path prefix for architecture-independent files
    1.64 +                          [/usr]
    1.65 +  --exec-prefix=EPREFIX   path prefix for architecture-dependent files
    1.66 +                          [PREFIX]
    1.67 +
    1.68 +  --bindir=DIR            user executables [EPREFIX/bin]
    1.69 +  --sbindir=DIR           system admin executables [EPREFIX/sbin]
    1.70 +  --libexecdir=DIR        program executables [EPREFIX/libexec]
    1.71 +  --sysconfdir=DIR        system configuration files [PREFIX/etc]
    1.72 +  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
    1.73 +  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
    1.74 +  --libdir=DIR            object code libraries [EPREFIX/lib]
    1.75 +  --includedir=DIR        C header files [PREFIX/include]
    1.76 +  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
    1.77 +  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
    1.78 +  --infodir=DIR           info documentation [DATAROOTDIR/info]
    1.79 +  --mandir=DIR            man documentation [DATAROOTDIR/man]
    1.80 +
    1.81 +#if( $options.size() > 0 )
    1.82 +Options:
    1.83 +  --debug                 add extra compile flags for debug builds
    1.84 +  --release               add extra compile flags for release builds
    1.85 +#foreach( $opt in $options )
    1.86 +  --${opt.getArgument()}=${opt.getValuesString()}
    1.87 +#end
    1.88 +
    1.89 +#end
    1.90 +#if( $features.size() > 0 )
    1.91 +Optional Features:
    1.92 +#foreach( $feature in $features )
    1.93 +#if( $feature.default )
    1.94 +  --disable-${feature.arg}
    1.95 +#else
    1.96 +  --enable-${feature.arg}
    1.97 +#end
    1.98 +#end
    1.99 +
   1.100 +#end
   1.101 +__EOF__
   1.102 +}
   1.103 +
   1.104 +#
   1.105 +# parse arguments
   1.106 +#
   1.107 +BUILD_TYPE="default"
   1.108 +#set( $D = '$' )
   1.109 +for ARG in "$@"
   1.110 +do
   1.111 +    case "$ARG" in
   1.112 +        "--prefix="*)         PREFIX=${D}{ARG#--prefix=} ;;
   1.113 +        "--exec-prefix="*)    EPREFIX=${D}{ARG#--exec-prefix=} ;;
   1.114 +        "--bindir="*)         BINDIR=${D}{ARG#----bindir=} ;;
   1.115 +        "--sbindir="*)        SBINDIR=${D}{ARG#--sbindir=} ;;
   1.116 +        "--libdir="*)         LIBDIR=${D}{ARG#--libdir=} ;;
   1.117 +        "--libexecdir="*)     LIBEXECDIR=${D}{ARG#--libexecdir=} ;;
   1.118 +        "--datadir="*)        DATADIR=${D}{ARG#--datadir=} ;;
   1.119 +        "--sysconfdir="*)     SYSCONFDIR=${D}{ARG#--sysconfdir=} ;;
   1.120 +        "--sharedstatedir="*) SHAREDSTATEDIR=${D}{ARG#--sharedstatedir=} ;;
   1.121 +        "--localstatedir="*)  LOCALSTATEDIR=${D}{ARG#--localstatedir=} ;;
   1.122 +        "--includedir="*)     INCLUDEDIR=${D}{ARG#--includedir=} ;;
   1.123 +        "--infodir="*)        INFODIR=${D}{ARG#--infodir=} ;;
   1.124 +        "--mandir"*)          MANDIR=${D}{ARG#--mandir} ;;
   1.125 +        "--help"*) printhelp; abort_configure ;;
   1.126 +        "--debug")           BUILD_TYPE="debug" ;;
   1.127 +        "--release")         BUILD_TYPE="release" ;;
   1.128 +    #foreach( $opt in $options )
   1.129 +        "--${opt.getArgument()}="*) ${opt.getVarName()}=${D}{ARG#--${opt.getArgument()}=} ;;
   1.130 +    #end
   1.131 +    #foreach( $feature in $features )
   1.132 +        "--enable-${feature.arg}") ${feature.getVarName()}=on ;;
   1.133 +        "--disable-${feature.arg}") unset ${feature.getVarName()} ;;
   1.134 +    #end
   1.135 +        "-"*) echo "unknown option: $ARG"; abort_configure ;;
   1.136 +    esac
   1.137 +done
   1.138 +
   1.139 +## Begin unparsed content. **
   1.140 +#[[
   1.141 +# set dir variables
   1.142 +: ${EPREFIX:="$PREFIX"}
   1.143 +: ${BINDIR:="$EPREFIX/bin"}
   1.144 +: ${SBINDIR:="$EPREFIX/sbin"}
   1.145 +: ${LIBDIR:="$EPREFIX/lib"}
   1.146 +: ${LIBEXECDIR:="$EPREFIX/libexec"}
   1.147 +: ${DATADIR:="$PREFIX/share"}
   1.148 +: ${SYSCONFDIR:="$PREFIX/etc"}
   1.149 +: ${SHAREDSTATEDIR:="$PREFIX/com"}
   1.150 +: ${LOCALSTATEDIR:="$PREFIX/var"}
   1.151 +: ${INCLUDEDIR:="$PREFIX/include"}
   1.152 +: ${INFODIR:="$PREFIX/info"}
   1.153 +: ${MANDIR:="$PREFIX/man"}
   1.154 +
   1.155 +# Test for availability of pkg-config
   1.156 +PKG_CONFIG=`command -v pkg-config`
   1.157 +: ${PKG_CONFIG:="false"}
   1.158 +
   1.159 +# Simple uname based platform detection
   1.160 +# $PLATFORM is used for platform dependent dependency selection
   1.161 +OS=`uname -s`
   1.162 +OS_VERSION=`uname -r`
   1.163 +printf "detect platform... "
   1.164 +if [ "$OS" = "SunOS" ]; then
   1.165 +    PLATFORM="solaris sunos unix svr4"
   1.166 +fi
   1.167 +if [ "$OS" = "Linux" ]; then
   1.168 +    PLATFORM="linux unix"
   1.169 +fi
   1.170 +if [ "$OS" = "FreeBSD" ]; then
   1.171 +    PLATFORM="freebsd bsd unix"
   1.172 +fi
   1.173 +if [ "$OS" = "Darwin" ]; then
   1.174 +    PLATFORM="macos osx bsd unix"
   1.175 +fi
   1.176 +if echo "$OS" | grep -i "MINGW" > /dev/null; then
   1.177 +    PLATFORM="windows mingw"
   1.178 +fi
   1.179 +: ${PLATFORM:="unix"}
   1.180 +
   1.181 +PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -`
   1.182 +echo "$PLATFORM_NAME"
   1.183 +
   1.184 +isplatform()
   1.185 +{
   1.186 +    for p in $PLATFORM
   1.187 +    do
   1.188 +        if [ "$p" = "$1" ]; then
   1.189 +            return 0
   1.190 +        fi
   1.191 +    done
   1.192 +    return 1
   1.193 +}
   1.194 +notisplatform()
   1.195 +{
   1.196 +    for p in $PLATFORM
   1.197 +    do
   1.198 +        if [ "$p" = "$1" ]; then
   1.199 +            return 1
   1.200 +        fi
   1.201 +    done
   1.202 +    return 0
   1.203 +}
   1.204 +]]#
   1.205 +## End of unparsed content **
   1.206 +
   1.207 +# generate vars.mk
   1.208 +cat > "$TEMP_DIR/vars.mk" << __EOF__
   1.209 +PREFIX="$PREFIX"
   1.210 +EPREFIX="$EPREFIX"
   1.211 +BINDIR="$BINDIR"
   1.212 +SBINDIR="$SBINDIR"
   1.213 +LIBDIR="$LIBDIR"
   1.214 +LIBEXECDIR="$LIBEXECDIR"
   1.215 +DATADIR="$DATADIR"
   1.216 +SYSCONFDIR="$SYSCONFDIR"
   1.217 +SHAREDSTATEDIR="$SHAREDSTATEDIR"
   1.218 +LOCALSTATEDIR="$LOCALSTATEDIR"
   1.219 +INCLUDEDIR="$INCLUDEDIR"
   1.220 +INFODIR="$INFODIR"
   1.221 +MANDIR="$MANDIR"
   1.222 +#foreach( $var in $vars )
   1.223 +${var.varName}="$${var.varName}"
   1.224 +#end
   1.225 +__EOF__
   1.226 +sort -u -o "$TEMP_DIR/vars.mk" "$TEMP_DIR/vars.mk"
   1.227 +
   1.228 +
   1.229 +# toolchain detection utilities
   1.230 +. make/toolchain.sh
   1.231 +
   1.232 +#
   1.233 +# DEPENDENCIES
   1.234 +#
   1.235 +
   1.236 +# check languages
   1.237 +lang_c=
   1.238 +lang_cpp=
   1.239 +#foreach( $lang in $languages )
   1.240 +if detect_${lang}_compiler ; then
   1.241 +    lang_${lang}=1
   1.242 +fi
   1.243 +#end
   1.244 +
   1.245 +# create buffer for make variables required by dependencies
   1.246 +echo > "$TEMP_DIR/make.mk"
   1.247 +
   1.248 +test_pkg_config()
   1.249 +{
   1.250 +    if "$PKG_CONFIG" --exists "$1" ; then :
   1.251 +    else return 1 ; fi
   1.252 +    if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then :
   1.253 +    else return 1 ; fi
   1.254 +    if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then :
   1.255 +    else return 1 ; fi
   1.256 +    if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then :
   1.257 +    else return 1 ; fi
   1.258 +    return 0
   1.259 +}
   1.260 +
   1.261 +#foreach( $dependency in $namedDependencies )
   1.262 +dependency_error_${dependency.name}()
   1.263 +{
   1.264 +    printf "checking for ${dependency.name}... "
   1.265 +    #foreach( $sub in $dependency.getSubdependencies() )
   1.266 +    # dependency $sub.getFullName()
   1.267 +    while true
   1.268 +    do
   1.269 +        #if( $sub.platform )
   1.270 +        if notisplatform "${sub.platform}"; then
   1.271 +            break
   1.272 +        fi
   1.273 +        #end
   1.274 +        #foreach( $np in $sub.getNotList() )
   1.275 +        if isplatform "${np}"; then
   1.276 +            break
   1.277 +        fi
   1.278 +        #end
   1.279 +        #foreach( $lang in $sub.lang )
   1.280 +        if [ -z "$lang_${lang}" ] ; then
   1.281 +            break
   1.282 +        fi
   1.283 +        #end
   1.284 +        #if( $sub.pkgconfig.size() > 0 )
   1.285 +        if [ -z "$PKG_CONFIG" ]; then
   1.286 +            break
   1.287 +        fi
   1.288 +        #end
   1.289 +        #foreach( $test in $sub.tests )
   1.290 +        if $test > /dev/null ; then
   1.291 +            :
   1.292 +        else
   1.293 +            break
   1.294 +        fi
   1.295 +        #end
   1.296 +        #foreach( $pkg in $sub.pkgconfig )
   1.297 +        if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then
   1.298 +            TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`"
   1.299 +            TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`"
   1.300 +        else
   1.301 +            break
   1.302 +        fi
   1.303 +        #end
   1.304 +        #foreach( $flags in $sub.flags )
   1.305 +        #if( $flags.exec )
   1.306 +        if tmp_flags=`$flags.value` ; then
   1.307 +            TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags"
   1.308 +        else
   1.309 +            break
   1.310 +        fi
   1.311 +        #else
   1.312 +        TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
   1.313 +        #end
   1.314 +        #end
   1.315 +        #if ( $sub.make.length() > 0 )
   1.316 +        cat >> $TEMP_DIR/make.mk << __EOF__
   1.317 +# Dependency: $dependency.name
   1.318 +$sub.make
   1.319 +__EOF__
   1.320 +        #end
   1.321 +        echo yes
   1.322 +        return 1
   1.323 +    done
   1.324 +
   1.325 +    #end
   1.326 +    echo no
   1.327 +    return 0
   1.328 +}
   1.329 +#end
   1.330 +
   1.331 +
   1.332 +
   1.333 +
   1.334 +# start collecting dependency information
   1.335 +echo > "$TEMP_DIR/flags.mk"
   1.336 +
   1.337 +DEPENDENCIES_FAILED=
   1.338 +ERROR=0
   1.339 +#if( $dependencies.size() > 0 )
   1.340 +# unnamed dependencies
   1.341 +TEMP_CFLAGS=
   1.342 +TEMP_CXXFLAGS=
   1.343 +TEMP_LDFLAGS=
   1.344 +#foreach( $dependency in $dependencies )
   1.345 +while true
   1.346 +do
   1.347 +    #if( $dependency.platform )
   1.348 +    if notisplatform "${dependency.platform}"; then
   1.349 +        break
   1.350 +    fi
   1.351 +    #end
   1.352 +    #foreach( $np in $dependency.getNotList() )
   1.353 +    if isplatform "${np}"; then
   1.354 +        break
   1.355 +    fi
   1.356 +    #end
   1.357 +    while true
   1.358 +    do
   1.359 +        #foreach( $lang in $dependency.lang )
   1.360 +        if [ -z "$lang_${lang}" ] ; then
   1.361 +            ERROR=1
   1.362 +            break
   1.363 +        fi
   1.364 +        #end
   1.365 +        #if( $dependency.pkgconfig.size() > 0 )
   1.366 +        if [ -z "$PKG_CONFIG" ]; then
   1.367 +            ERROR=1
   1.368 +            break
   1.369 +        fi
   1.370 +        #end
   1.371 +        #foreach( $pkg in $dependency.pkgconfig )
   1.372 +        printf "checking for pkg-config package $pkg.name... "
   1.373 +        if test_pkg_config "$pkg.name" "$pkg.atleast" "$pkg.exact" "$pkg.max" ; then
   1.374 +            echo yes
   1.375 +            TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags $pkg.name`"
   1.376 +            TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs $pkg.name`"
   1.377 +        else
   1.378 +            echo no
   1.379 +            ERROR=1
   1.380 +            break
   1.381 +        fi
   1.382 +        #end
   1.383 +
   1.384 +        #foreach( $flags in $dependency.flags )
   1.385 +        #if( $flags.exec )
   1.386 +        $flags.value > /dev/null
   1.387 +        if tmp_flags=`$flags.value` ; then
   1.388 +            TEMP_$flags.varName="$TEMP_$flags.varName $tmp_flags"
   1.389 +        else
   1.390 +            ERROR=1
   1.391 +            break
   1.392 +        fi
   1.393 +        #else
   1.394 +        TEMP_$flags.varName="$TEMP_$flags.varName $flags.value"
   1.395 +        #end
   1.396 +        #end
   1.397 +        #if ( $dependency.make.length() > 0 )
   1.398 +        cat >> "$TEMP_DIR/make.mk" << __EOF__
   1.399 +$dependency.make
   1.400 +__EOF__
   1.401 +        #end
   1.402 +        break
   1.403 +    done
   1.404 +    break
   1.405 +done
   1.406 +#end
   1.407 +
   1.408 +# add general dependency flags to flags.mk
   1.409 +echo "# general flags" >> "$TEMP_DIR/flags.mk"
   1.410 +if [ -n "${TEMP_CFLAGS}" ]; then
   1.411 +    echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
   1.412 +fi
   1.413 +if [ -n "${TEMP_CXXFLAGS}" ]; then
   1.414 +    echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
   1.415 +fi
   1.416 +if [ -n "${TEMP_LDFLAGS}" ]; then
   1.417 +    echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
   1.418 +fi
   1.419 +#end
   1.420 +
   1.421 +#
   1.422 +# OPTION VALUES
   1.423 +#
   1.424 +#foreach( $opt in $options )
   1.425 +#foreach( $val in $opt.values )
   1.426 +${val.func}()
   1.427 +{
   1.428 +    VERR=0
   1.429 +    #foreach( $dep in $val.dependencies )
   1.430 +    if dependency_error_$dep ; then
   1.431 +        VERR=1
   1.432 +    fi
   1.433 +    #end
   1.434 +    if [ $VERR -ne 0 ]; then
   1.435 +        return 1
   1.436 +    fi
   1.437 +    #foreach( $def in $val.defines )
   1.438 +        TEMP_CFLAGS="$TEMP_CFLAGS ${def.toFlags()}"
   1.439 +        TEMP_CXXFLAGS="$TEMP_CXXFLAGS ${def.toFlags()}"
   1.440 +    #end
   1.441 +    #if( $val.hasMake() )
   1.442 +    cat >> "$TEMP_DIR/make.mk" << __EOF__
   1.443 +$val.make
   1.444 +__EOF__
   1.445 +    #end
   1.446 +    return 0
   1.447 +}
   1.448 +#end
   1.449 +#end
   1.450 +
   1.451 +#
   1.452 +# TARGETS
   1.453 +#
   1.454 +
   1.455 +#foreach( $target in $targets )
   1.456 +echo >> "$TEMP_DIR/flags.mk"
   1.457 +#if ( $target.name )
   1.458 +# Target: $target.name
   1.459 +echo "# flags for target $target.name" >> "$TEMP_DIR/flags.mk"
   1.460 +#else
   1.461 +# Target
   1.462 +echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk"
   1.463 +#end
   1.464 +TEMP_CFLAGS=
   1.465 +TEMP_CXXFLAGS=
   1.466 +TEMP_LDFLAGS=
   1.467 +
   1.468 +#foreach( $dependency in $target.dependencies )
   1.469 +if dependency_error_$dependency; then
   1.470 +    DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
   1.471 +    ERROR=1
   1.472 +fi
   1.473 +#end
   1.474 +
   1.475 +# Features
   1.476 +#foreach( $feature in $target.features )
   1.477 +if [ -n "$${feature.getVarName()}" ]; then
   1.478 +#foreach( $dependency in $feature.dependencies )
   1.479 +    # check dependency
   1.480 +    if dependency_error_$dependency ; then
   1.481 +        # "auto" features can fail and are just disabled in this case
   1.482 +        if [ "$${feature.getVarName()}" = "auto" ]; then
   1.483 +            DISABLE_${feature.getVarName()}=1
   1.484 +        else
   1.485 +            DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ${dependency} "
   1.486 +            ERROR=1
   1.487 +        fi
   1.488 +    fi
   1.489 +#end
   1.490 +    if [ -n "$DISABLE_${feature.getVarName()}" ]; then
   1.491 +        unset ${feature.getVarName()}
   1.492 +    fi
   1.493 +fi
   1.494 +#end
   1.495 +
   1.496 +#foreach( $opt in $target.options )
   1.497 +# Option: --${opt.argument}
   1.498 +if [ -z ${D}${opt.getVarName()} ]; then
   1.499 +    SAVED_ERROR="$ERROR"
   1.500 +    SAVED_DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED"
   1.501 +    ERROR=1
   1.502 +    while true
   1.503 +    do
   1.504 +        #foreach( $optdef in $opt.defaults )
   1.505 +        #if( $optdef.platform )
   1.506 +        if isplatform "$optdef.platform"; then
   1.507 +        #end
   1.508 +        if $optdef.func ; then
   1.509 +            echo "  ${opt.argument}: ${optdef.valueName}" >> "$TEMP_DIR/options"
   1.510 +            ERROR=0
   1.511 +            break
   1.512 +        fi
   1.513 +        #if( $optdef.platform )
   1.514 +        fi
   1.515 +        #end
   1.516 +        #end
   1.517 +        break
   1.518 +    done
   1.519 +    if [ $ERROR -ne 0 ]; then
   1.520 +        SAVED_ERROR=1
   1.521 +    fi
   1.522 +    ERROR="$SAVED_ERROR"
   1.523 +    DEPENDENCIES_FAILED="$SAVED_DEPENDENCIES_FAILED"
   1.524 +else
   1.525 +    if false; then
   1.526 +        false
   1.527 +    #foreach( $optval in $opt.values )
   1.528 +    elif [ "${D}${opt.getVarName()}" = "${optval.value}" ]; then
   1.529 +        echo "  ${opt.argument}: ${D}${opt.getVarName()}" >> $TEMP_DIR/options
   1.530 +        if $optval.func ; then
   1.531 +            :
   1.532 +        else
   1.533 +            ERROR=1
   1.534 +        fi
   1.535 +    #end
   1.536 +    fi
   1.537 +fi
   1.538 +#end
   1.539 +
   1.540 +if [ -n "${TEMP_CFLAGS}" ]; then
   1.541 +    echo "${target.getCFlags()}  += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
   1.542 +fi
   1.543 +if [ -n "${TEMP_CXXFLAGS}" ]; then
   1.544 +    echo "${target.getCXXFlags()}  += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
   1.545 +fi
   1.546 +if [ "$BUILD_TYPE" = "debug" ]; then
   1.547 +    echo '${target.getCFlags()} += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
   1.548 +    echo '${target.getCXXFlags()} += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
   1.549 +fi
   1.550 +if [ "$BUILD_TYPE" = "release" ]; then
   1.551 +    echo '${target.getCFlags()} += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
   1.552 +    echo '${target.getCXXFlags()} += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
   1.553 +fi
   1.554 +if [ -n "${TEMP_LDFLAGS}" ]; then
   1.555 +    echo "${target.getLDFlags()} += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
   1.556 +fi
   1.557 +
   1.558 +#end
   1.559 +
   1.560 +# final result
   1.561 +if [ $ERROR -ne 0 ]; then
   1.562 +    echo
   1.563 +    echo "Error: Unresolved dependencies"
   1.564 +    echo "$DEPENDENCIES_FAILED"
   1.565 +    abort_configure
   1.566 +fi
   1.567 +
   1.568 +echo "configure finished"
   1.569 +echo
   1.570 +echo "Build Config:"
   1.571 +echo "  PREFIX:    $PREFIX"
   1.572 +echo "  TOOLCHAIN: $TOOLCHAIN_NAME"
   1.573 +#if ( $options.size() > 0 )
   1.574 +echo "Options:"
   1.575 +cat "$TEMP_DIR/options"
   1.576 +#end
   1.577 +#if ( $features.size() > 0 )
   1.578 +echo "Features:"
   1.579 +#foreach( $feature in $features )
   1.580 +if [ -n "$${feature.getVarName()}" ]; then
   1.581 +echo "  $feature.name: on"
   1.582 +else
   1.583 +echo "  $feature.name: off"
   1.584 +fi
   1.585 +#end
   1.586 +#end
   1.587 +echo
   1.588 +
   1.589 +# generate the config.mk file
   1.590 +cat > "$TEMP_DIR/config.mk" << __EOF__
   1.591 +#
   1.592 +# config.mk generated by configure
   1.593 +#
   1.594 +
   1.595 +__EOF__
   1.596 +write_toolchain_defaults "$TEMP_DIR/toolchain.mk"
   1.597 +cat "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk
   1.598 +rm -Rf "$TEMP_DIR"
   1.599 +
   1.600 +

mercurial