11184aebb761cbeac9124c37189a80a1a58f04b6bhkuang#!/bin/sh 290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber## 3f71323e297a928af368937089d3ed71239786f86Andreas Huber## configure.sh 490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber## 5f71323e297a928af368937089d3ed71239786f86Andreas Huber## This script is sourced by the main configure script and contains 6f71323e297a928af368937089d3ed71239786f86Andreas Huber## utility functions and other common bits that aren't strictly libvpx 7f71323e297a928af368937089d3ed71239786f86Andreas Huber## related. 8f71323e297a928af368937089d3ed71239786f86Andreas Huber## 9f71323e297a928af368937089d3ed71239786f86Andreas Huber## This build system is based in part on the FFmpeg configure script. 1090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber## 1190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 1490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Logging / Output Functions 1590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 1690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberdie_unknown(){ 1790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "Unknown option \"$1\"." 1890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "See $0 --help for available options." 1990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber clean_temp_files 2090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber exit 1 2190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 2290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberdie() { 2590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" 2690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo 2790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "Configuration failed. This could reflect a misconfiguration of your" 2890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "toolchains, improper options selected, or another problem. If you" 2990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "don't see any useful error messages above, the next step is to look" 3090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "at the configure error log file ($logfile) to determine what" 3190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "configure was trying to do when it died." 3290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber clean_temp_files 3390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber exit 1 3490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 3590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 3690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 3790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberlog(){ 3890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" >>$logfile 3990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 4090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberlog_file(){ 4390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log BEGIN $1 44b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian cat -n $1 >>$logfile 4590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log END $1 4690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 4790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberlog_echo() { 5090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" 5190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log "$@" 5290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 5390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 5490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 5590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfwrite () { 5690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber outfile=$1 5790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 5890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" >> ${outfile} 5990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 6090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 6190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 6290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_help_pre(){ 6390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for opt in ${CMDLINE_SELECT}; do 6490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber opt2=`echo $opt | sed -e 's;_;-;g'` 6590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled $opt; then 6690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval "toggle_${opt}=\"--disable-${opt2}\"" 6790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 6890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval "toggle_${opt}=\"--enable-${opt2} \"" 6990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 7090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 7190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 7290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat <<EOF 7390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberUsage: configure [options] 7490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberOptions: 7590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 7690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberBuild options: 7790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --help print this message 7891037db265ecdd914a26e056cf69207b4f50924ehkuang --log=yes|no|FILE file configure log is written to [config.log] 7990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --target=TARGET target platform tuple [generic-gnu] 8090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --cpu=CPU optimize for a specific cpu rather than a family 8179f15823c34ae1e423108295e416213200bb280fAndreas Huber --extra-cflags=ECFLAGS add ECFLAGS to CFLAGS [$CFLAGS] 8290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_extra_warnings} emit harmless warnings (always non-fatal) 8390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_werror} treat warnings as errors, if possible 8490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber (not available with all compilers) 8590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_optimizations} turn on/off compiler optimization flags 8679f15823c34ae1e423108295e416213200bb280fAndreas Huber ${toggle_pic} turn on/off Position Independent Code 8790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_ccache} turn on/off compiler cache 8890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_debug} enable/disable debug mode 8990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_gprof} enable/disable gprof profiling instrumentation 9090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_gcov} enable/disable gcov coverage instrumentation 91ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang ${toggle_thumb} enable/disable building arm assembly in thumb mode 9290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberInstall options: 9490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_docs} control whether docs are installed 9590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_bins} control whether binaries are installed 9690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_libs} control whether libraries are installed 9790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_srcs} control whether sources are installed 9890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 10190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 10290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_help_post(){ 10590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat <<EOF 10690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberNOTES: 10990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber Object files are built at the place where configure is launched. 11090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 11190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber All boolean options can be negated. The default value is the opposite 11290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber of that shown above. If the option --disable-foo is listed, then 11390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber the default value for foo is enabled. 11490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 11590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSupported targets: 11690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 11790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_targets ${all_platforms} 11890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo 11990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber exit 1 12090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 12190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_targets() { 12490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber while [ -n "$*" ]; do 125f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${1%%-*}" = "${2%%-*}" ]; then 126f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${2%%-*}" = "${3%%-*}" ]; then 12790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s %-24s %-24s\n" "$1" "$2" "$3" 12890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift; shift; shift 12990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 13090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s %-24s\n" "$1" "$2" 13190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift; shift 13290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 13390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 13490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s\n" "$1" 13590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 13690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 13790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 13890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 13990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 14090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 14190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_help() { 14290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_help_pre 14390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_help_post 14490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 14590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 14690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 14790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# List Processing Functions 14890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 14990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberset_all(){ 15090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber value=$1 15190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 15290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 15390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval $var=$value 15490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 15590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 15690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 15790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 15890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberis_in(){ 15990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber value=$1 16090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 16190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 16290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ $var = $value ] && return 0 16390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 16490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber return 1 16590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 16690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 16790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 16890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_cflags() { 16990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CFLAGS="${CFLAGS} $@" 1701b362b15af34006e6a11974088a46d42b903418eJohann CXXFLAGS="${CXXFLAGS} $@" 1711b362b15af34006e6a11974088a46d42b903418eJohann} 1721b362b15af34006e6a11974088a46d42b903418eJohann 1731b362b15af34006e6a11974088a46d42b903418eJohann 1741b362b15af34006e6a11974088a46d42b903418eJohannadd_cflags_only() { 1751b362b15af34006e6a11974088a46d42b903418eJohann CFLAGS="${CFLAGS} $@" 1761b362b15af34006e6a11974088a46d42b903418eJohann} 1771b362b15af34006e6a11974088a46d42b903418eJohann 1781b362b15af34006e6a11974088a46d42b903418eJohann 1791b362b15af34006e6a11974088a46d42b903418eJohannadd_cxxflags_only() { 1801b362b15af34006e6a11974088a46d42b903418eJohann CXXFLAGS="${CXXFLAGS} $@" 18190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 18290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_ldflags() { 18590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LDFLAGS="${LDFLAGS} $@" 18690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 18790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_asflags() { 19090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ASFLAGS="${ASFLAGS} $@" 19190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 19290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 19390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 19490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_extralibs() { 19590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber extralibs="${extralibs} $@" 19690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 19790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 19890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 19990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Boolean Manipulation Functions 20090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 2011184aebb761cbeac9124c37189a80a1a58f04b6bhkuangenable_feature(){ 20290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber set_all yes $* 20390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 20490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2051184aebb761cbeac9124c37189a80a1a58f04b6bhkuangdisable_feature(){ 20690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber set_all no $* 20790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 20890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 20990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberenabled(){ 21090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval test "x\$$1" = "xyes" 21190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 21290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 21390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberdisabled(){ 21490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval test "x\$$1" = "xno" 21590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 21690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 21790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 21890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersoft_enable() { 21990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 22090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! disabled $var; then 22190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo " enabling $var" 2221184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature $var 22390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 22490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 22590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 22690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 22790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersoft_disable() { 22890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 22990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! enabled $var; then 23090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo " disabling $var" 2311184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature $var 23290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 23390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 23490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 23590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 23890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Text Processing Functions 23990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 24090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertoupper(){ 24190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 24290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 24390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 24490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 24590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertolower(){ 24690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 24790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 24890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 24990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 25090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 25190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Temporary File Functions 25290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 25390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersource_path=${0%/*} 2541184aebb761cbeac9124c37189a80a1a58f04b6bhkuangenable_feature source_path_used 25590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberif test -z "$source_path" -o "$source_path" = "." ; then 25690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber source_path="`pwd`" 2571184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature source_path_used 25890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfi 25990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 26090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberif test ! -z "$TMPDIR" ; then 26190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="${TMPDIR}" 26290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberelif test ! -z "$TEMPDIR" ; then 26390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="${TEMPDIR}" 26490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberelse 26590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="/tmp" 26690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfi 2671184aebb761cbeac9124c37189a80a1a58f04b6bhkuangRAND=$(awk 'BEGIN { srand(); printf "%d\n",(rand() * 32768)}') 2681184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_H="${TMPDIRx}/vpx-conf-$$-${RAND}.h" 2691184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_C="${TMPDIRx}/vpx-conf-$$-${RAND}.c" 2701184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_CC="${TMPDIRx}/vpx-conf-$$-${RAND}.cc" 2711184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_O="${TMPDIRx}/vpx-conf-$$-${RAND}.o" 2721184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_X="${TMPDIRx}/vpx-conf-$$-${RAND}.x" 2731184aebb761cbeac9124c37189a80a1a58f04b6bhkuangTMP_ASM="${TMPDIRx}/vpx-conf-$$-${RAND}.asm" 27490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 27590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberclean_temp_files() { 276ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang rm -f ${TMP_C} ${TMP_CC} ${TMP_H} ${TMP_O} ${TMP_X} ${TMP_ASM} 2776ac915abcdb404a00d927fe6308a47fcf09d9519hkuang enabled gcov && rm -f ${TMP_C%.c}.gcno ${TMP_CC%.cc}.gcno 27890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 27990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 28090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 28190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Toolchain Check Functions 28290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 28390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cmd() { 284ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang enabled external_build && return 28590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log "$@" 28690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber "$@" >>${logfile} 2>&1 28790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 28890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 28990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cc() { 29090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cc "$@" 29190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat >${TMP_C} 29290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_file ${TMP_C} 29390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cmd ${CC} ${CFLAGS} "$@" -c -o ${TMP_O} ${TMP_C} 29490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 29590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 2961b362b15af34006e6a11974088a46d42b903418eJohanncheck_cxx() { 2971b362b15af34006e6a11974088a46d42b903418eJohann log check_cxx "$@" 298ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang cat >${TMP_CC} 299ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang log_file ${TMP_CC} 300ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_cmd ${CXX} ${CXXFLAGS} "$@" -c -o ${TMP_O} ${TMP_CC} 3011b362b15af34006e6a11974088a46d42b903418eJohann} 3021b362b15af34006e6a11974088a46d42b903418eJohann 30390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cpp() { 30490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cpp "$@" 30590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat > ${TMP_C} 30690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_file ${TMP_C} 30790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cmd ${CC} ${CFLAGS} "$@" -E -o ${TMP_O} ${TMP_C} 30890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 30990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 31090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_ld() { 31190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_ld "$@" 31290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cc $@ \ 31390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs} 31490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 31590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 31690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_header(){ 31790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_header "$@" 31890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber header=$1 31990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 32090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` 3211184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature $var 3221184aebb761cbeac9124c37189a80a1a58f04b6bhkuang check_cpp "$@" <<EOF && enable_feature $var 32390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include "$header" 32490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberint x; 32590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 32690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 32790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 32890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 32990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cflags() { 33090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cflags "$@" 331b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian check_cc -Werror "$@" <<EOF 33290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberint x; 33390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 33490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 33590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 3361b362b15af34006e6a11974088a46d42b903418eJohanncheck_cxxflags() { 3371b362b15af34006e6a11974088a46d42b903418eJohann log check_cxxflags "$@" 3381b362b15af34006e6a11974088a46d42b903418eJohann 3391b362b15af34006e6a11974088a46d42b903418eJohann # Catch CFLAGS that trigger CXX warnings 3401b362b15af34006e6a11974088a46d42b903418eJohann case "$CXX" in 341b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *c++-analyzer|*clang++|*g++*) check_cxx -Werror "$@" <<EOF 3421b362b15af34006e6a11974088a46d42b903418eJohannint x; 3431b362b15af34006e6a11974088a46d42b903418eJohannEOF 3441b362b15af34006e6a11974088a46d42b903418eJohann ;; 345b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian *) check_cxx -Werror "$@" <<EOF 3461b362b15af34006e6a11974088a46d42b903418eJohannint x; 3471b362b15af34006e6a11974088a46d42b903418eJohannEOF 3481b362b15af34006e6a11974088a46d42b903418eJohann ;; 3491b362b15af34006e6a11974088a46d42b903418eJohann esac 3501b362b15af34006e6a11974088a46d42b903418eJohann} 3511b362b15af34006e6a11974088a46d42b903418eJohann 35290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_cflags() { 3531b362b15af34006e6a11974088a46d42b903418eJohann check_cxxflags "$@" && add_cxxflags_only "$@" 3541b362b15af34006e6a11974088a46d42b903418eJohann check_cflags "$@" && add_cflags_only "$@" 35590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 35690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 35790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_asflags() { 35890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log add_asflags "$@" 35990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags "$@" 36090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 36190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 36290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_ldflags() { 36390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log add_ldflags "$@" 36490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "$@" 36590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 36690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 367538f6170b788de7408b06efc6613dc98579aa6a6Andreas Hubercheck_asm_align() { 368538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log check_asm_align "$@" 369538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber cat >${TMP_ASM} <<EOF 370538f6170b788de7408b06efc6613dc98579aa6a6Andreas Hubersection .rodata 371538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huberalign 16 372538f6170b788de7408b06efc6613dc98579aa6a6Andreas HuberEOF 373538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_file ${TMP_ASM} 374538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber check_cmd ${AS} ${ASFLAGS} -o ${TMP_O} ${TMP_ASM} 375538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber readelf -WS ${TMP_O} >${TMP_X} 376538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_file ${TMP_X} 377538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber if ! grep -q '\.rodata .* 16$' ${TMP_X}; then 378538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)" 379538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber fi 380538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber} 381538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 382a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian# tests for -m$1 toggling the feature given in $2. If $2 is empty $1 is used. 383a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramaniancheck_gcc_machine_option() { 384a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian local opt="$1" 385a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian local feature="$2" 386a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian [ -n "$feature" ] || feature="$opt" 387a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian 388a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian if enabled gcc && ! disabled "$feature" && ! check_cflags "-m$opt"; then 389a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian RTCD_OPTIONS="${RTCD_OPTIONS}--disable-$feature " 390a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian else 391a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian soft_enable "$feature" 392a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian fi 393a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian} 394a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian 39590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_config_banner() { 3961b362b15af34006e6a11974088a46d42b903418eJohann print_webm_license config.mk "##" "" 3971b362b15af34006e6a11974088a46d42b903418eJohann echo '# This file automatically generated by configure. Do not edit!' >> config.mk 39890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "TOOLCHAIN := ${toolchain}" >> config.mk 39990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 40090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 40190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *-linux-rvct) 40290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "ALT_LIBC := ${alt_libc}" >> config.mk 40390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 40490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 40590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 40690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 40790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_config_targets() { 40890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for t in ${all_targets}; do 40990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled ${t}; then 41090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled universal || enabled child; then 41190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fwrite config.mk "ALL_TARGETS += ${t}-${toolchain}" 41290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 41390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fwrite config.mk "ALL_TARGETS += ${t}" 41490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 41590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 41690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 41790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 41890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertrue 41990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 42090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 42190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_target_config_mk() { 422b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian local CC="${CC}" 423b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian local CXX="${CXX}" 42490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled ccache && CC="ccache ${CC}" 4251b362b15af34006e6a11974088a46d42b903418eJohann enabled ccache && CXX="ccache ${CXX}" 4261b362b15af34006e6a11974088a46d42b903418eJohann print_webm_license $1 "##" "" 42790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 4281b362b15af34006e6a11974088a46d42b903418eJohann cat >> $1 << EOF 42990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# This file automatically generated by configure. Do not edit! 43090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSRC_PATH="$source_path" 43190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSRC_PATH_BARE=$source_path 43290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberBUILD_PFX=${BUILD_PFX} 43390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTOOLCHAIN=${toolchain} 43490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberASM_CONVERSION=${asm_conversion_cmd:-${source_path}/build/make/ads2gas.pl} 435ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangGEN_VCPROJ=${gen_vcproj_cmd} 436ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangMSVS_ARCH_DIR=${msvs_arch_dir} 43790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 43890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberCC=${CC} 4391b362b15af34006e6a11974088a46d42b903418eJohannCXX=${CXX} 44090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAR=${AR} 44190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberLD=${LD} 44290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAS=${AS} 44390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSTRIP=${STRIP} 44490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberNM=${NM} 44590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 446f71323e297a928af368937089d3ed71239786f86Andreas HuberCFLAGS = ${CFLAGS} 4471b362b15af34006e6a11974088a46d42b903418eJohannCXXFLAGS = ${CXXFLAGS} 44890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberARFLAGS = -rus\$(if \$(quiet),c,v) 44990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberLDFLAGS = ${LDFLAGS} 45090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberASFLAGS = ${ASFLAGS} 45190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberextralibs = ${extralibs} 45290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAS_SFX = ${AS_SFX:-.asm} 4531b362b15af34006e6a11974088a46d42b903418eJohannEXE_SFX = ${EXE_SFX} 454ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangVCPROJ_SFX = ${VCPROJ_SFX} 4551b362b15af34006e6a11974088a46d42b903418eJohannRTCD_OPTIONS = ${RTCD_OPTIONS} 45690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 45790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 45890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled rvct; then cat >> $1 << EOF 459ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangfmt_deps = sed -e 's;^__image.axf;\${@:.d=.o} \$@;' #hide 46090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 46190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else cat >> $1 << EOF 462ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangfmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\${@:.d=.o} \$@;' 46390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 46490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 46590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 46690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk ARCH "${1}" ${ARCH_LIST} 46790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk HAVE "${1}" ${HAVE_LIST} 46890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk CONFIG "${1}" ${CONFIG_LIST} 46990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk HAVE "${1}" gnu_strip 47090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 47190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled msvs && echo "CONFIG_VS_VERSION=${vs_version}" >> "${1}" 47290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 47390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 47490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 47590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 47690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_target_config_h() { 4771b362b15af34006e6a11974088a46d42b903418eJohann print_webm_license ${TMP_H} "/*" " */" 4781b362b15af34006e6a11974088a46d42b903418eJohann cat >> ${TMP_H} << EOF 47990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* This file automatically generated by configure. Do not edit! */ 4801b362b15af34006e6a11974088a46d42b903418eJohann#ifndef VPX_CONFIG_H 4811b362b15af34006e6a11974088a46d42b903418eJohann#define VPX_CONFIG_H 48290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#define RESTRICT ${RESTRICT} 483ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define INLINE ${INLINE} 48490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 48590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h ARCH "${TMP_H}" ${ARCH_LIST} 48690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h HAVE "${TMP_H}" ${HAVE_LIST} 48790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h CONFIG "${TMP_H}" ${CONFIG_LIST} 4881b362b15af34006e6a11974088a46d42b903418eJohann echo "#endif /* VPX_CONFIG_H */" >> ${TMP_H} 48990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber mkdir -p `dirname "$1"` 49090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cmp "$1" ${TMP_H} >/dev/null 2>&1 || mv ${TMP_H} "$1" 49190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 49290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 49390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_common_cmdline() { 49490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for opt in "$@"; do 49590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber optval="${opt#*=}" 49690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$opt" in 4971184aebb761cbeac9124c37189a80a1a58f04b6bhkuang --child) enable_feature child 49890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 49990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --log*) 50090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber logging="$optval" 50190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! disabled logging ; then 50290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled logging || logfile="$logging" 50390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 50490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber logfile=/dev/null 50590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 50690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 50790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --target=*) toolchain="${toolchain:-${optval}}" 50890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 5091184aebb761cbeac9124c37189a80a1a58f04b6bhkuang --force-target=*) toolchain="${toolchain:-${optval}}"; enable_feature force_toolchain 51090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 51190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --cpu) 51290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 51390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --cpu=*) tune_cpu="$optval" 51490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 51579f15823c34ae1e423108295e416213200bb280fAndreas Huber --extra-cflags=*) 51679f15823c34ae1e423108295e416213200bb280fAndreas Huber extra_cflags="${optval}" 51779f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 51890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --enable-?*|--disable-?*) 51990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` 5201b362b15af34006e6a11974088a46d42b903418eJohann if echo "${ARCH_EXT_LIST}" | grep "^ *$option\$" >/dev/null; then 5211b362b15af34006e6a11974088a46d42b903418eJohann [ $action = "disable" ] && RTCD_OPTIONS="${RTCD_OPTIONS}${opt} " 5221b362b15af34006e6a11974088a46d42b903418eJohann elif [ $action = "disable" ] && ! disabled $option ; then 5231b362b15af34006e6a11974088a46d42b903418eJohann echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null || 5241b362b15af34006e6a11974088a46d42b903418eJohann die_unknown $opt 5251b362b15af34006e6a11974088a46d42b903418eJohann elif [ $action = "enable" ] && ! enabled $option ; then 5261b362b15af34006e6a11974088a46d42b903418eJohann echo "${CMDLINE_SELECT}" | grep "^ *$option\$" >/dev/null || 5271b362b15af34006e6a11974088a46d42b903418eJohann die_unknown $opt 5281b362b15af34006e6a11974088a46d42b903418eJohann fi 5291184aebb761cbeac9124c37189a80a1a58f04b6bhkuang ${action}_feature $option 53090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 5311b362b15af34006e6a11974088a46d42b903418eJohann --require-?*) 5321b362b15af34006e6a11974088a46d42b903418eJohann eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` 5331b362b15af34006e6a11974088a46d42b903418eJohann if echo "${ARCH_EXT_LIST}" none | grep "^ *$option\$" >/dev/null; then 5341b362b15af34006e6a11974088a46d42b903418eJohann RTCD_OPTIONS="${RTCD_OPTIONS}${opt} " 5351b362b15af34006e6a11974088a46d42b903418eJohann else 5361b362b15af34006e6a11974088a46d42b903418eJohann die_unknown $opt 5371b362b15af34006e6a11974088a46d42b903418eJohann fi 5381b362b15af34006e6a11974088a46d42b903418eJohann ;; 53990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --force-enable-?*|--force-disable-?*) 54090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval `echo "$opt" | sed 's/--force-/action=/;s/-/ option=/;s/-/_/g'` 5411184aebb761cbeac9124c37189a80a1a58f04b6bhkuang ${action}_feature $option 54290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 54390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --libc=*) 54490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${optval}" ] || die "Not a directory: ${optval}" 5451184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature builtin_libc 54690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber alt_libc="${optval}" 54790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 548538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber --as=*) 549538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${optval}" = yasm -o "${optval}" = nasm -o "${optval}" = auto ] \ 550538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber || die "Must be yasm, nasm or auto: ${optval}" 551538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber alt_as="${optval}" 552538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 553f71323e297a928af368937089d3ed71239786f86Andreas Huber --prefix=*) 554f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${optval}" 555f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 556f71323e297a928af368937089d3ed71239786f86Andreas Huber --libdir=*) 557f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${optval}" 558f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 5591b362b15af34006e6a11974088a46d42b903418eJohann --sdk-path=*) 5601b362b15af34006e6a11974088a46d42b903418eJohann [ -d "${optval}" ] || die "Not a directory: ${optval}" 5611b362b15af34006e6a11974088a46d42b903418eJohann sdk_path="${optval}" 5621b362b15af34006e6a11974088a46d42b903418eJohann ;; 5631b362b15af34006e6a11974088a46d42b903418eJohann --libc|--as|--prefix|--libdir|--sdk-path) 56490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Option ${opt} requires argument" 56590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 56690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --help|-h) show_help 56790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 56890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) die_unknown $opt 56990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 57090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 57190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 57290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 57390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 57490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_cmdline() { 57590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for opt do 57690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber optval="${opt#*=}" 57790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$opt" in 57890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) process_common_cmdline $opt 57990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 58090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 58190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 58290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 58390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 584f71323e297a928af368937089d3ed71239786f86Andreas Huber 585f71323e297a928af368937089d3ed71239786f86Andreas Huberpost_process_common_cmdline() { 586f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${prefix:-/usr/local}" 587f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${prefix%/}" 588f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${libdir:-${prefix}/lib}" 589f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${libdir%/}" 590f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${libdir#${prefix}}" = "${libdir}" ]; then 591f71323e297a928af368937089d3ed71239786f86Andreas Huber die "Libdir ${libdir} must be a subdirectory of ${prefix}" 592f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 593f71323e297a928af368937089d3ed71239786f86Andreas Huber} 594f71323e297a928af368937089d3ed71239786f86Andreas Huber 595f71323e297a928af368937089d3ed71239786f86Andreas Huber 59690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberpost_process_cmdline() { 59790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 59890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 59990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 60090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersetup_gnu_toolchain() { 60190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-${CROSS}gcc} 6021b362b15af34006e6a11974088a46d42b903418eJohann CXX=${CXX:-${CROSS}g++} 60390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AR=${AR:-${CROSS}ar} 60490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-${CROSS}${link_with_cc:-ld}} 60590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS=${AS:-${CROSS}as} 60690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber STRIP=${STRIP:-${CROSS}strip} 60790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber NM=${NM:-${CROSS}nm} 60890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.s 6091b362b15af34006e6a11974088a46d42b903418eJohann EXE_SFX= 61090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 61190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 61290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_common_toolchain() { 613f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ -z "$toolchain" ]; then 6141b362b15af34006e6a11974088a46d42b903418eJohann gcctarget="${CHOST:-$(gcc -dumpmachine 2> /dev/null)}" 615f71323e297a928af368937089d3ed71239786f86Andreas Huber 616f71323e297a928af368937089d3ed71239786f86Andreas Huber # detect tgt_isa 617f71323e297a928af368937089d3ed71239786f86Andreas Huber case "$gcctarget" in 6181b362b15af34006e6a11974088a46d42b903418eJohann armv6*) 6191b362b15af34006e6a11974088a46d42b903418eJohann tgt_isa=armv6 6201b362b15af34006e6a11974088a46d42b903418eJohann ;; 621ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang armv7*-hardfloat*) 622ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang tgt_isa=armv7 623ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang float_abi=hard 624ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang ;; 6251b362b15af34006e6a11974088a46d42b903418eJohann armv7*) 6261b362b15af34006e6a11974088a46d42b903418eJohann tgt_isa=armv7 627ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang float_abi=softfp 6281b362b15af34006e6a11974088a46d42b903418eJohann ;; 6291b362b15af34006e6a11974088a46d42b903418eJohann armv5te*) 6301b362b15af34006e6a11974088a46d42b903418eJohann tgt_isa=armv5te 6311b362b15af34006e6a11974088a46d42b903418eJohann ;; 632f71323e297a928af368937089d3ed71239786f86Andreas Huber *x86_64*|*amd64*) 633f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=x86_64 634f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 635f71323e297a928af368937089d3ed71239786f86Andreas Huber *i[3456]86*) 636f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=x86 637f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 638538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *powerpc64*) 639538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=ppc64 640538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 641538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *powerpc*) 642538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=ppc32 643538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 644538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *sparc*) 645538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=sparc 646538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 647f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 648f71323e297a928af368937089d3ed71239786f86Andreas Huber 649f71323e297a928af368937089d3ed71239786f86Andreas Huber # detect tgt_os 650f71323e297a928af368937089d3ed71239786f86Andreas Huber case "$gcctarget" in 651f71323e297a928af368937089d3ed71239786f86Andreas Huber *darwin8*) 652f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=universal 653f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=darwin8 654f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 655f71323e297a928af368937089d3ed71239786f86Andreas Huber *darwin9*) 656f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=universal 657f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=darwin9 658f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 65979f15823c34ae1e423108295e416213200bb280fAndreas Huber *darwin10*) 66079f15823c34ae1e423108295e416213200bb280fAndreas Huber tgt_isa=x86_64 66179f15823c34ae1e423108295e416213200bb280fAndreas Huber tgt_os=darwin10 66279f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 6631b362b15af34006e6a11974088a46d42b903418eJohann *darwin11*) 6641b362b15af34006e6a11974088a46d42b903418eJohann tgt_isa=x86_64 6651b362b15af34006e6a11974088a46d42b903418eJohann tgt_os=darwin11 6661b362b15af34006e6a11974088a46d42b903418eJohann ;; 6671b362b15af34006e6a11974088a46d42b903418eJohann *darwin12*) 6681b362b15af34006e6a11974088a46d42b903418eJohann tgt_isa=x86_64 6691b362b15af34006e6a11974088a46d42b903418eJohann tgt_os=darwin12 6701b362b15af34006e6a11974088a46d42b903418eJohann ;; 67191037db265ecdd914a26e056cf69207b4f50924ehkuang *darwin13*) 67291037db265ecdd914a26e056cf69207b4f50924ehkuang tgt_isa=x86_64 67391037db265ecdd914a26e056cf69207b4f50924ehkuang tgt_os=darwin13 67491037db265ecdd914a26e056cf69207b4f50924ehkuang ;; 675ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang x86_64*mingw32*) 676ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang tgt_os=win64 677ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang ;; 678f71323e297a928af368937089d3ed71239786f86Andreas Huber *mingw32*|*cygwin*) 679f71323e297a928af368937089d3ed71239786f86Andreas Huber [ -z "$tgt_isa" ] && tgt_isa=x86 680f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=win32 681f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 682f71323e297a928af368937089d3ed71239786f86Andreas Huber *linux*|*bsd*) 683f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=linux 684f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 685538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *solaris2.10) 686538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_os=solaris 687538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 6881b362b15af34006e6a11974088a46d42b903418eJohann *os2*) 6891b362b15af34006e6a11974088a46d42b903418eJohann tgt_os=os2 6901b362b15af34006e6a11974088a46d42b903418eJohann ;; 691f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 692f71323e297a928af368937089d3ed71239786f86Andreas Huber 693f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then 694f71323e297a928af368937089d3ed71239786f86Andreas Huber toolchain=${tgt_isa}-${tgt_os}-gcc 695f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 696f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 697f71323e297a928af368937089d3ed71239786f86Andreas Huber 69890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber toolchain=${toolchain:-generic-gnu} 69990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 70090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber is_in ${toolchain} ${all_platforms} || enabled force_toolchain \ 70190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber || die "Unrecognized toolchain '${toolchain}'" 70290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 70390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled child || log_echo "Configuring for target '${toolchain}'" 70490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 70590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # 70690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Set up toolchain variables 70790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # 70890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_isa=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $1}') 70990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_os=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $2}') 71090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_cc=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $3}') 71190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 71290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Mark the specific ISA requested as enabled 71390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable ${tgt_isa} 7141184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature ${tgt_os} 7151184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature ${tgt_cc} 71690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 71790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Enable the architecture family 71890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_isa} in 7191184aebb761cbeac9124c37189a80a1a58f04b6bhkuang arm*) enable_feature arm;; 7201184aebb761cbeac9124c37189a80a1a58f04b6bhkuang mips*) enable_feature mips;; 72190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 72290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 723538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber # PIC is probably what we want when building shared libs 724538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled shared && soft_enable pic 725538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 7261b362b15af34006e6a11974088a46d42b903418eJohann # Handle darwin variants. Newer SDKs allow targeting older 7271b362b15af34006e6a11974088a46d42b903418eJohann # platforms, so find the newest SDK available. 7281b362b15af34006e6a11974088a46d42b903418eJohann case ${toolchain} in 7291b362b15af34006e6a11974088a46d42b903418eJohann *-darwin*) 7301b362b15af34006e6a11974088a46d42b903418eJohann if [ -z "${DEVELOPER_DIR}" ]; then 7311b362b15af34006e6a11974088a46d42b903418eJohann DEVELOPER_DIR=`xcode-select -print-path 2> /dev/null` 7321b362b15af34006e6a11974088a46d42b903418eJohann [ $? -ne 0 ] && OSX_SKIP_DIR_CHECK=1 7331b362b15af34006e6a11974088a46d42b903418eJohann fi 7341b362b15af34006e6a11974088a46d42b903418eJohann if [ -z "${OSX_SKIP_DIR_CHECK}" ]; then 7351b362b15af34006e6a11974088a46d42b903418eJohann OSX_SDK_ROOTS="${DEVELOPER_DIR}/SDKs" 7361b362b15af34006e6a11974088a46d42b903418eJohann OSX_SDK_VERSIONS="MacOSX10.4u.sdk MacOSX10.5.sdk MacOSX10.6.sdk" 7371b362b15af34006e6a11974088a46d42b903418eJohann OSX_SDK_VERSIONS="${OSX_SDK_VERSIONS} MacOSX10.7.sdk" 7381b362b15af34006e6a11974088a46d42b903418eJohann for v in ${OSX_SDK_VERSIONS}; do 7391b362b15af34006e6a11974088a46d42b903418eJohann if [ -d "${OSX_SDK_ROOTS}/${v}" ]; then 7401b362b15af34006e6a11974088a46d42b903418eJohann osx_sdk_dir="${OSX_SDK_ROOTS}/${v}" 7411b362b15af34006e6a11974088a46d42b903418eJohann fi 7421b362b15af34006e6a11974088a46d42b903418eJohann done 7431b362b15af34006e6a11974088a46d42b903418eJohann fi 7441b362b15af34006e6a11974088a46d42b903418eJohann ;; 7451b362b15af34006e6a11974088a46d42b903418eJohann esac 7461b362b15af34006e6a11974088a46d42b903418eJohann 7471b362b15af34006e6a11974088a46d42b903418eJohann if [ -d "${osx_sdk_dir}" ]; then 7481b362b15af34006e6a11974088a46d42b903418eJohann add_cflags "-isysroot ${osx_sdk_dir}" 7491b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags "-isysroot ${osx_sdk_dir}" 7501b362b15af34006e6a11974088a46d42b903418eJohann fi 7511b362b15af34006e6a11974088a46d42b903418eJohann 75290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 753538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-darwin8-*) 75490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-mmacosx-version-min=10.4" 75590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-mmacosx-version-min=10.4" 75690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 757538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-darwin9-*) 75890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-mmacosx-version-min=10.5" 75990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-mmacosx-version-min=10.5" 76090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 76179f15823c34ae1e423108295e416213200bb280fAndreas Huber *-darwin10-*) 76279f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags "-mmacosx-version-min=10.6" 76379f15823c34ae1e423108295e416213200bb280fAndreas Huber add_ldflags "-mmacosx-version-min=10.6" 76479f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 7651b362b15af34006e6a11974088a46d42b903418eJohann *-darwin11-*) 7661b362b15af34006e6a11974088a46d42b903418eJohann add_cflags "-mmacosx-version-min=10.7" 7671b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags "-mmacosx-version-min=10.7" 7681b362b15af34006e6a11974088a46d42b903418eJohann ;; 7691b362b15af34006e6a11974088a46d42b903418eJohann *-darwin12-*) 7701b362b15af34006e6a11974088a46d42b903418eJohann add_cflags "-mmacosx-version-min=10.8" 7711b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags "-mmacosx-version-min=10.8" 7721b362b15af34006e6a11974088a46d42b903418eJohann ;; 77391037db265ecdd914a26e056cf69207b4f50924ehkuang *-darwin13-*) 77491037db265ecdd914a26e056cf69207b4f50924ehkuang add_cflags "-mmacosx-version-min=10.9" 77591037db265ecdd914a26e056cf69207b4f50924ehkuang add_ldflags "-mmacosx-version-min=10.9" 77691037db265ecdd914a26e056cf69207b4f50924ehkuang ;; 77790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 77890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 779538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber # Handle Solaris variants. Solaris 10 needs -lposix4 780538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber case ${toolchain} in 78179f15823c34ae1e423108295e416213200bb280fAndreas Huber sparc-solaris-*) 78279f15823c34ae1e423108295e416213200bb280fAndreas Huber add_extralibs -lposix4 7831184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature fast_unaligned 78479f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 785538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-solaris-*) 786538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber add_extralibs -lposix4 787538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 788538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber esac 789538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 79090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Process ARM architecture variants 79190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 7921b362b15af34006e6a11974088a46d42b903418eJohann arm*) 7931b362b15af34006e6a11974088a46d42b903418eJohann # on arm, isa versions are supersets 7941b362b15af34006e6a11974088a46d42b903418eJohann case ${tgt_isa} in 7951b362b15af34006e6a11974088a46d42b903418eJohann armv7) 7961b362b15af34006e6a11974088a46d42b903418eJohann soft_enable neon 7971b362b15af34006e6a11974088a46d42b903418eJohann soft_enable media 7981b362b15af34006e6a11974088a46d42b903418eJohann soft_enable edsp 7991b362b15af34006e6a11974088a46d42b903418eJohann soft_enable fast_unaligned 8001b362b15af34006e6a11974088a46d42b903418eJohann ;; 8011b362b15af34006e6a11974088a46d42b903418eJohann armv6) 8021b362b15af34006e6a11974088a46d42b903418eJohann soft_enable media 8031b362b15af34006e6a11974088a46d42b903418eJohann soft_enable edsp 8041b362b15af34006e6a11974088a46d42b903418eJohann soft_enable fast_unaligned 8051b362b15af34006e6a11974088a46d42b903418eJohann ;; 8061b362b15af34006e6a11974088a46d42b903418eJohann armv5te) 8071b362b15af34006e6a11974088a46d42b903418eJohann soft_enable edsp 8081184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature fast_unaligned 8091b362b15af34006e6a11974088a46d42b903418eJohann ;; 8101b362b15af34006e6a11974088a46d42b903418eJohann esac 81190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 8121b362b15af34006e6a11974088a46d42b903418eJohann asm_conversion_cmd="cat" 81390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 81490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_cc} in 81590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber gcc) 8161b362b15af34006e6a11974088a46d42b903418eJohann CROSS=${CROSS:-arm-none-linux-gnueabi-} 81790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 81890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 81990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${tgt_isa##armv} 82090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${arch_int%%te} 82190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --defsym ARCHITECTURE=${arch_int} 82290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="-mtune=" 8231184aebb761cbeac9124c37189a80a1a58f04b6bhkuang if [ ${tgt_isa} = "armv7" ]; then 824ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang if [ -z "${float_abi}" ]; then 825ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_cpp <<EOF && float_abi=hard || float_abi=softfp 826ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#ifndef __ARM_PCS_VFP 827ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#error "not hardfp" 828ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#endif 829ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangEOF 830ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang fi 831ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_add_cflags -march=armv7-a -mfloat-abi=${float_abi} 832ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_add_asflags -march=armv7-a -mfloat-abi=${float_abi} 8331b362b15af34006e6a11974088a46d42b903418eJohann 8341b362b15af34006e6a11974088a46d42b903418eJohann if enabled neon 8351b362b15af34006e6a11974088a46d42b903418eJohann then 8361b362b15af34006e6a11974088a46d42b903418eJohann check_add_cflags -mfpu=neon #-ftree-vectorize 8371b362b15af34006e6a11974088a46d42b903418eJohann check_add_asflags -mfpu=neon 8381b362b15af34006e6a11974088a46d42b903418eJohann fi 8391b362b15af34006e6a11974088a46d42b903418eJohann 8401b362b15af34006e6a11974088a46d42b903418eJohann if [ -z "${tune_cpu}" ]; then 8411b362b15af34006e6a11974088a46d42b903418eJohann tune_cpu=cortex-a8 8421b362b15af34006e6a11974088a46d42b903418eJohann fi 84390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 84490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -march=${tgt_isa} 84590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags -march=${tgt_isa} 84690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 8471b362b15af34006e6a11974088a46d42b903418eJohann 84879f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g 84990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber asm_conversion_cmd="${source_path}/build/make/ads2gas.pl" 850ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang if enabled thumb; then 851ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang asm_conversion_cmd="$asm_conversion_cmd -thumb" 852ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_add_cflags -mthumb 853ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_add_asflags -mthumb -mimplicit-it=always 854ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang fi 855ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang ;; 856ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang vs*) 857ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang asm_conversion_cmd="${source_path}/build/make/ads2armasm_ms.pl" 858ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang AS_SFX=.s 859ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang msvs_arch_dir=arm-msvs 8601184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature multithread 8611184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature unit_tests 86290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 86390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber rvct) 86490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=armcc 86590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AR=armar 86690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS=armasm 86790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${source_path}/build/make/armlink_adapter.sh 86890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber STRIP=arm-none-linux-gnueabi-strip 86990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber NM=arm-none-linux-gnueabi-nm 87090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="--cpu=" 87190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_asflags="--cpu=" 87290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -z "${tune_cpu}" ]; then 8731184aebb761cbeac9124c37189a80a1a58f04b6bhkuang if [ ${tgt_isa} = "armv7" ]; then 8741b362b15af34006e6a11974088a46d42b903418eJohann if enabled neon 8751b362b15af34006e6a11974088a46d42b903418eJohann then 8761b362b15af34006e6a11974088a46d42b903418eJohann check_add_cflags --fpu=softvfp+vfpv3 8771b362b15af34006e6a11974088a46d42b903418eJohann check_add_asflags --fpu=softvfp+vfpv3 8781b362b15af34006e6a11974088a46d42b903418eJohann fi 8791b362b15af34006e6a11974088a46d42b903418eJohann check_add_cflags --cpu=Cortex-A8 8801b362b15af34006e6a11974088a46d42b903418eJohann check_add_asflags --cpu=Cortex-A8 88190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 88290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags --cpu=${tgt_isa##armv} 88390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --cpu=${tgt_isa##armv} 88490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 88590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 88690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${tgt_isa##armv} 88790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${arch_int%%te} 88890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\"" 88979f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g 89079f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --gnu 89179f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --enum_is_int 89279f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --wchar32 89390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 89490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 89590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 89690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 89779f15823c34ae1e423108295e416213200bb280fAndreas Huber none*) 8981184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature multithread 8991184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature os_support 90079f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 9011b362b15af34006e6a11974088a46d42b903418eJohann 9021b362b15af34006e6a11974088a46d42b903418eJohann android*) 9031b362b15af34006e6a11974088a46d42b903418eJohann SDK_PATH=${sdk_path} 9041b362b15af34006e6a11974088a46d42b903418eJohann COMPILER_LOCATION=`find "${SDK_PATH}" \ 9051b362b15af34006e6a11974088a46d42b903418eJohann -name "arm-linux-androideabi-gcc*" -print -quit` 9061b362b15af34006e6a11974088a46d42b903418eJohann TOOLCHAIN_PATH=${COMPILER_LOCATION%/*}/arm-linux-androideabi- 9071b362b15af34006e6a11974088a46d42b903418eJohann CC=${TOOLCHAIN_PATH}gcc 9081b362b15af34006e6a11974088a46d42b903418eJohann CXX=${TOOLCHAIN_PATH}g++ 9091b362b15af34006e6a11974088a46d42b903418eJohann AR=${TOOLCHAIN_PATH}ar 9101b362b15af34006e6a11974088a46d42b903418eJohann LD=${TOOLCHAIN_PATH}gcc 9111b362b15af34006e6a11974088a46d42b903418eJohann AS=${TOOLCHAIN_PATH}as 9121b362b15af34006e6a11974088a46d42b903418eJohann STRIP=${TOOLCHAIN_PATH}strip 9131b362b15af34006e6a11974088a46d42b903418eJohann NM=${TOOLCHAIN_PATH}nm 9141b362b15af34006e6a11974088a46d42b903418eJohann 9151b362b15af34006e6a11974088a46d42b903418eJohann if [ -z "${alt_libc}" ]; then 9161b362b15af34006e6a11974088a46d42b903418eJohann alt_libc=`find "${SDK_PATH}" -name arch-arm -print | \ 9171b362b15af34006e6a11974088a46d42b903418eJohann awk '{n = split($0,a,"/"); \ 9181b362b15af34006e6a11974088a46d42b903418eJohann split(a[n-1],b,"-"); \ 9191b362b15af34006e6a11974088a46d42b903418eJohann print $0 " " b[2]}' | \ 9201b362b15af34006e6a11974088a46d42b903418eJohann sort -g -k 2 | \ 9211b362b15af34006e6a11974088a46d42b903418eJohann awk '{ print $1 }' | tail -1` 9221b362b15af34006e6a11974088a46d42b903418eJohann fi 9231b362b15af34006e6a11974088a46d42b903418eJohann 9241b362b15af34006e6a11974088a46d42b903418eJohann add_cflags "--sysroot=${alt_libc}" 9251b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags "--sysroot=${alt_libc}" 9261b362b15af34006e6a11974088a46d42b903418eJohann 9271b362b15af34006e6a11974088a46d42b903418eJohann # linker flag that routes around a CPU bug in some 9281b362b15af34006e6a11974088a46d42b903418eJohann # Cortex-A8 implementations (NDK Dev Guide) 9291b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags "-Wl,--fix-cortex-a8" 9301b362b15af34006e6a11974088a46d42b903418eJohann 9311184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature pic 9321b362b15af34006e6a11974088a46d42b903418eJohann soft_enable realtime_only 9331184aebb761cbeac9124c37189a80a1a58f04b6bhkuang if [ ${tgt_isa} = "armv7" ]; then 9341b362b15af34006e6a11974088a46d42b903418eJohann soft_enable runtime_cpu_detect 9351b362b15af34006e6a11974088a46d42b903418eJohann fi 9361b362b15af34006e6a11974088a46d42b903418eJohann if enabled runtime_cpu_detect; then 9371b362b15af34006e6a11974088a46d42b903418eJohann add_cflags "-I${SDK_PATH}/sources/android/cpufeatures" 9381b362b15af34006e6a11974088a46d42b903418eJohann fi 9391b362b15af34006e6a11974088a46d42b903418eJohann ;; 9401b362b15af34006e6a11974088a46d42b903418eJohann 94190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 942b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian 943b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian XCRUN_FIND="xcrun --sdk iphoneos -find" 944b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian CXX="$(${XCRUN_FIND} clang++)" 945b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian CC="$(${XCRUN_FIND} clang)" 946b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian AR="$(${XCRUN_FIND} ar)" 947b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian LD="$(${XCRUN_FIND} ld)" 948b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian AS="$(${XCRUN_FIND} as)" 949b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian STRIP="$(${XCRUN_FIND} strip)" 950b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian NM="$(${XCRUN_FIND} nm)" 951b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian RANLIB="$(${XCRUN_FIND} ranlib)" 95290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.s 95390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 95490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # ASFLAGS is written here instead of using check_add_asflags 95590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # because we need to overwrite all of ASFLAGS and purge the 95690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # options that were put in above 957b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian ASFLAGS="-arch ${tgt_isa} -g" 95890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 959b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian alt_libc="$(xcrun --sdk iphoneos --show-sdk-path)" 960b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian add_cflags -arch ${tgt_isa} -isysroot ${alt_libc} 961b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian add_ldflags -arch ${tgt_isa} -ios_version_min 7.0 96290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9631b362b15af34006e6a11974088a46d42b903418eJohann for d in lib usr/lib usr/lib/system; do 96490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 96590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}" 96690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 96790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 96890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber asm_conversion_cmd="${source_path}/build/make/ads2gas_apple.pl" 96990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 97090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 97190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber linux*) 9721184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature linux 97390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled rvct; then 9741b362b15af34006e6a11974088a46d42b903418eJohann # Check if we have CodeSourcery GCC in PATH. Needed for 9751b362b15af34006e6a11974088a46d42b903418eJohann # libraries 9761b362b15af34006e6a11974088a46d42b903418eJohann hash arm-none-linux-gnueabi-gcc 2>&- || \ 9771b362b15af34006e6a11974088a46d42b903418eJohann die "Couldn't find CodeSourcery GCC from PATH" 9781b362b15af34006e6a11974088a46d42b903418eJohann 9791b362b15af34006e6a11974088a46d42b903418eJohann # Use armcc as a linker to enable translation of 9801b362b15af34006e6a11974088a46d42b903418eJohann # some gcc specific options such as -lm and -lpthread. 9811b362b15af34006e6a11974088a46d42b903418eJohann LD="armcc --translate_gcc" 9821b362b15af34006e6a11974088a46d42b903418eJohann 9831b362b15af34006e6a11974088a46d42b903418eJohann # create configuration file (uses path to CodeSourcery GCC) 9841b362b15af34006e6a11974088a46d42b903418eJohann armcc --arm_linux_configure --arm_linux_config_file=arm_linux.cfg 9851b362b15af34006e6a11974088a46d42b903418eJohann 9861b362b15af34006e6a11974088a46d42b903418eJohann add_cflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg 9871b362b15af34006e6a11974088a46d42b903418eJohann add_asflags --no_hide_all --apcs=/interwork 9881b362b15af34006e6a11974088a46d42b903418eJohann add_ldflags --arm_linux_paths --arm_linux_config_file=arm_linux.cfg 9891b362b15af34006e6a11974088a46d42b903418eJohann enabled pic && add_cflags --apcs=/fpic 9901b362b15af34006e6a11974088a46d42b903418eJohann enabled pic && add_asflags --apcs=/fpic 9911b362b15af34006e6a11974088a46d42b903418eJohann enabled shared && add_cflags --shared 99290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 99390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 99490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 99590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 99690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 99790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber mips*) 99890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 99990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 100090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="-mtune=" 10011b362b15af34006e6a11974088a46d42b903418eJohann if enabled dspr2; then 10021b362b15af34006e6a11974088a46d42b903418eJohann check_add_cflags -mips32r2 -mdspr2 10031184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature fast_unaligned 10041b362b15af34006e6a11974088a46d42b903418eJohann fi 100590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -march=${tgt_isa} 10061b362b15af34006e6a11974088a46d42b903418eJohann check_add_asflags -march=${tgt_isa} 10071b362b15af34006e6a11974088a46d42b903418eJohann check_add_asflags -KPIC 100890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 100990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ppc*) 10101184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature ppc 101190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber bits=${tgt_isa##ppc} 101290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 101390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 101490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -force_cpusubtype_ALL -I"\$(dir \$<)darwin" 101590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable altivec 1016538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled altivec && add_cflags -maltivec 101790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 101890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$tgt_os" in 101990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber linux*) 102090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -maltivec -mregnames -I"\$(dir \$<)linux" 102190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 102290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 102390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin_arch="-arch ppc" 102490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled ppc64 && darwin_arch="${darwin_arch}64" 102590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags ${darwin_arch} -m${bits} -fasm-blocks 102690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags ${darwin_arch} -force_cpusubtype_ALL -I"\$(dir \$<)darwin" 102790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags ${darwin_arch} -m${bits} 1028538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled altivec && add_cflags -faltivec 102990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 103090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 103190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 103290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber x86*) 103390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber bits=32 103490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled x86_64 && bits=64 10351b362b15af34006e6a11974088a46d42b903418eJohann check_cpp <<EOF && bits=x32 10361b362b15af34006e6a11974088a46d42b903418eJohann#ifndef __ILP32__ 10371b362b15af34006e6a11974088a46d42b903418eJohann#error "not x32" 10381b362b15af34006e6a11974088a46d42b903418eJohann#endif 10391b362b15af34006e6a11974088a46d42b903418eJohannEOF 104090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 104190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 1042f71323e297a928af368937089d3ed71239786f86Andreas Huber win*) 1043f71323e297a928af368937089d3ed71239786f86Andreas Huber enabled gcc && add_cflags -fno-common 1044f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 104590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber solaris*) 104690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-${CROSS}gcc} 10471b362b15af34006e6a11974088a46d42b903418eJohann CXX=${CXX:-${CROSS}g++} 104890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-${CROSS}gcc} 104990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-g} 105090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 10511b362b15af34006e6a11974088a46d42b903418eJohann os2) 10521b362b15af34006e6a11974088a46d42b903418eJohann AS=${AS:-nasm} 10531b362b15af34006e6a11974088a46d42b903418eJohann ;; 105490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 105590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1056538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber AS="${alt_as:-${AS:-auto}}" 105790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_cc} in 105890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber icc*) 105990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-icc} 106090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-icc} 106190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 10625ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang add_cflags -use-msasm # remove -use-msasm too? 10635ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang # add -no-intel-extensions to suppress warning #10237 10645ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang # refer to http://software.intel.com/en-us/forums/topic/280199 10655ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang add_ldflags -i-static -no-intel-extensions 10665ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang enabled x86_64 && add_cflags -ipo -static -O3 -no-prec-div 1067f71323e297a928af368937089d3ed71239786f86Andreas Huber enabled x86_64 && AR=xiar 1068f71323e297a928af368937089d3ed71239786f86Andreas Huber case ${tune_cpu} in 1069f71323e297a928af368937089d3ed71239786f86Andreas Huber atom*) 1070f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-x" 1071f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cpu="SSE3_ATOM" 1072f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 1073f71323e297a928af368937089d3ed71239786f86Andreas Huber *) 1074f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-march=" 1075f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 1076f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 10771b362b15af34006e6a11974088a46d42b903418eJohann ;; 107890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber gcc*) 10791b362b15af34006e6a11974088a46d42b903418eJohann add_cflags -m${bits} 108090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags -m${bits} 108190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 1082f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-march=" 1083ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang setup_gnu_toolchain 10841b362b15af34006e6a11974088a46d42b903418eJohann #for 32 bit x86 builds, -O3 did not turn on this flag 1085ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang enabled optimizations && disabled gprof && check_add_cflags -fomit-frame-pointer 10861b362b15af34006e6a11974088a46d42b903418eJohann ;; 10871b362b15af34006e6a11974088a46d42b903418eJohann vs*) 10881b362b15af34006e6a11974088a46d42b903418eJohann # When building with Microsoft Visual Studio the assembler is 10891b362b15af34006e6a11974088a46d42b903418eJohann # invoked directly. Checking at configure time is unnecessary. 10901b362b15af34006e6a11974088a46d42b903418eJohann # Skip the check by setting AS arbitrarily 10911b362b15af34006e6a11974088a46d42b903418eJohann AS=msvs 1092ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang msvs_arch_dir=x86-msvs 10935ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang vc_version=${tgt_cc##vs} 10945ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang case $vc_version in 1095b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian 7|8|9|10) 10965ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang echo "${tgt_cc} does not support avx/avx2, disabling....." 10975ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx --disable-avx2 " 10985ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang soft_disable avx 10995ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang soft_disable avx2 11005ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang ;; 11015ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang esac 11021b362b15af34006e6a11974088a46d42b903418eJohann ;; 110390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 110490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1105ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang soft_enable runtime_cpu_detect 1106ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang # We can't use 'check_cflags' until the compiler is configured and CC is 1107ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang # populated. 1108a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option mmx 1109a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option sse 1110a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option sse2 1111a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option sse3 1112a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option ssse3 1113a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option sse4 sse4_1 1114a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option avx 1115a72801d7d92ababb50eecf27a36bd222d031d2feVignesh Venkatasubramanian check_gcc_machine_option avx2 11165ae7ac49f08a179e4f054d99fcfc9dce78d26e58hkuang 1117538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber case "${AS}" in 1118538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber auto|"") 1119538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber which nasm >/dev/null 2>&1 && AS=nasm 1120538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber which yasm >/dev/null 2>&1 && AS=yasm 1121538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS}" = auto -o -z "${AS}" ] \ 1122538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber && die "Neither yasm nor nasm have been found" 11231b362b15af34006e6a11974088a46d42b903418eJohann ;; 1124538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber esac 1125538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_echo " using $AS" 1126538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS##*/}" = nasm ] && add_asflags -Ox 112790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.asm 112890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 11291b362b15af34006e6a11974088a46d42b903418eJohann win32) 11301b362b15af34006e6a11974088a46d42b903418eJohann add_asflags -f win32 11311b362b15af34006e6a11974088a46d42b903418eJohann enabled debug && add_asflags -g cv8 1132ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang EXE_SFX=.exe 11331b362b15af34006e6a11974088a46d42b903418eJohann ;; 11341b362b15af34006e6a11974088a46d42b903418eJohann win64) 11351b362b15af34006e6a11974088a46d42b903418eJohann add_asflags -f x64 113679f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g cv8 1137ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang EXE_SFX=.exe 113890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 1139ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang linux*|solaris*|android*) 114090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -f elf${bits} 1141538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 1142538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled debug && [ "${AS}" = nasm ] && add_asflags -g 1143538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS##*/}" = nasm ] && check_asm_align 114490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 114590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 114690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -f macho${bits} 114790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled x86 && darwin_arch="-arch i386" || darwin_arch="-arch x86_64" 114890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags ${darwin_arch} 114990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags ${darwin_arch} 115090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # -mdynamic-no-pic is still a bit of voodoo -- it was required at 115190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # one time, but does not seem to be now, and it breaks some of the 115290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # code that still relies on inline assembly. 115390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # enabled icc && ! enabled pic && add_cflags -fno-pic -mdynamic-no-pic 115490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled icc && ! enabled pic && add_cflags -fno-pic 115590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 11561b362b15af34006e6a11974088a46d42b903418eJohann os2) 11571b362b15af34006e6a11974088a46d42b903418eJohann add_asflags -f aout 11581b362b15af34006e6a11974088a46d42b903418eJohann enabled debug && add_asflags -g 11591b362b15af34006e6a11974088a46d42b903418eJohann EXE_SFX=.exe 11601b362b15af34006e6a11974088a46d42b903418eJohann ;; 1161538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *) log "Warning: Unknown os $tgt_os while setting up $AS flags" 116290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 116390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 116490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 116590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber universal*|*-gcc|generic-gnu) 116690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 11671184aebb761cbeac9124c37189a80a1a58f04b6bhkuang enable_feature gcc 116890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 116990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 117090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 117190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 117290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Try to enable CPU specific tuning 117390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_cpu}" ]; then 117490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_cflags}" ]; then 117590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags ${tune_cflags}${tune_cpu} || \ 117690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Requested CPU '${tune_cpu}' not supported by compiler" 117790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 117890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_asflags}" ]; then 117990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags ${tune_asflags}${tune_cpu} || \ 118090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Requested CPU '${tune_cpu}' not supported by assembler" 118190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 118290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -z "${tune_cflags}${tune_asflags}" ]; then 118390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo "Warning: CPU tuning not supported by this toolchain" 118490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 118590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 118690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 118790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled debug && check_add_cflags -g && check_add_ldflags -g 118890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gprof && check_add_cflags -pg && check_add_ldflags -pg 118990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gcov && 119090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -fprofile-arcs -ftest-coverage && 119190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_ldflags -fprofile-arcs -ftest-coverage 11921b362b15af34006e6a11974088a46d42b903418eJohann 1193538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber if enabled optimizations; then 11941b362b15af34006e6a11974088a46d42b903418eJohann if enabled rvct; then 11951b362b15af34006e6a11974088a46d42b903418eJohann enabled small && check_add_cflags -Ospace || check_add_cflags -Otime 11961b362b15af34006e6a11974088a46d42b903418eJohann else 11971b362b15af34006e6a11974088a46d42b903418eJohann enabled small && check_add_cflags -O2 || check_add_cflags -O3 11981b362b15af34006e6a11974088a46d42b903418eJohann fi 119990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 120090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1201f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang # default use_x86inc to yes if pic is no or 64bit or we are not on darwin 1202b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian if [ ${tgt_isa} = x86_64 -o ! "$pic" = "yes" -o \ 1203b08e2e23eec181e9951df33cd704ac294c5407b6Vignesh Venkatasubramanian "${tgt_os#darwin}" = "${tgt_os}" ]; then 1204f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang soft_enable use_x86inc 1205f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang fi 1206f3bed9137f66ef693bd406e43b17e9a1114f1e14hkuang 120779f15823c34ae1e423108295e416213200bb280fAndreas Huber # Position Independent Code (PIC) support, for building relocatable 120890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # shared objects 120990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gcc && enabled pic && check_add_cflags -fPIC 121090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12111b362b15af34006e6a11974088a46d42b903418eJohann # Work around longjmp interception on glibc >= 2.11, to improve binary 12121b362b15af34006e6a11974088a46d42b903418eJohann # compatibility. See http://code.google.com/p/webm/issues/detail?id=166 12131b362b15af34006e6a11974088a46d42b903418eJohann enabled linux && check_add_cflags -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 12141b362b15af34006e6a11974088a46d42b903418eJohann 121590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Check for strip utility variant 12161184aebb761cbeac9124c37189a80a1a58f04b6bhkuang ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable_feature gnu_strip 121790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 121890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Try to determine target endianness 121990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cc <<EOF 122090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E'; 122190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 122290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' | 12231184aebb761cbeac9124c37189a80a1a58f04b6bhkuang grep '4f *32 *42 *45' >/dev/null 2>&1 && enable_feature big_endian 122490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 1225ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang # Try to find which inline keywords are supported 1226ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_cc <<EOF && INLINE="inline" 1227ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang static inline function() {} 1228ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangEOF 1229ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang check_cc <<EOF && INLINE="__inline__ __attribute__((always_inline))" 1230ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang static __attribute__((always_inline)) function() {} 1231ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuangEOF 1232ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang 123390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Almost every platform uses pthreads. 123490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled multithread; then 123590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 12361b362b15af34006e6a11974088a46d42b903418eJohann *-win*-vs*);; 12371b362b15af34006e6a11974088a46d42b903418eJohann *-android-gcc);; 123890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) check_header pthread.h && add_extralibs -lpthread 123990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 124090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 124190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12421b362b15af34006e6a11974088a46d42b903418eJohann # only for MIPS platforms 12431b362b15af34006e6a11974088a46d42b903418eJohann case ${toolchain} in 12441b362b15af34006e6a11974088a46d42b903418eJohann mips*) 12451b362b15af34006e6a11974088a46d42b903418eJohann if enabled dspr2; then 12461b362b15af34006e6a11974088a46d42b903418eJohann if enabled big_endian; then 12471b362b15af34006e6a11974088a46d42b903418eJohann echo "dspr2 optimizations are available only for little endian platforms" 12481184aebb761cbeac9124c37189a80a1a58f04b6bhkuang disable_feature dspr2 12491b362b15af34006e6a11974088a46d42b903418eJohann fi 12501b362b15af34006e6a11974088a46d42b903418eJohann fi 12511b362b15af34006e6a11974088a46d42b903418eJohann ;; 12521b362b15af34006e6a11974088a46d42b903418eJohann esac 12531b362b15af34006e6a11974088a46d42b903418eJohann 125490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # glibc needs these 125590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled linux; then 1256f71323e297a928af368937089d3ed71239786f86Andreas Huber add_cflags -D_LARGEFILE_SOURCE 1257f71323e297a928af368937089d3ed71239786f86Andreas Huber add_cflags -D_FILE_OFFSET_BITS=64 125890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 125979f15823c34ae1e423108295e416213200bb280fAndreas Huber 126079f15823c34ae1e423108295e416213200bb280fAndreas Huber # append any user defined extra cflags 126179f15823c34ae1e423108295e416213200bb280fAndreas Huber if [ -n "${extra_cflags}" ] ; then 126279f15823c34ae1e423108295e416213200bb280fAndreas Huber check_add_cflags ${extra_cflags} || \ 126379f15823c34ae1e423108295e416213200bb280fAndreas Huber die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler" 126479f15823c34ae1e423108295e416213200bb280fAndreas Huber fi 126590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 126690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 126790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_toolchain() { 126890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_common_toolchain 126990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 127090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 127190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprint_config_mk() { 1272f71323e297a928af368937089d3ed71239786f86Andreas Huber local prefix=$1 1273f71323e297a928af368937089d3ed71239786f86Andreas Huber local makefile=$2 127490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 2 127590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for cfg; do 127690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber upname="`toupper $cfg`" 127790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled $cfg; then 127890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "${prefix}_${upname}=yes" >> $makefile 127990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 128090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 128190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 128290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 128390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprint_config_h() { 1284f71323e297a928af368937089d3ed71239786f86Andreas Huber local prefix=$1 1285f71323e297a928af368937089d3ed71239786f86Andreas Huber local header=$2 128690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 2 128790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for cfg; do 128890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber upname="`toupper $cfg`" 128990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled $cfg; then 129090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "#define ${prefix}_${upname} 1" >> $header 129190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 129290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "#define ${prefix}_${upname} 0" >> $header 129390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 129490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 129590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 129690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12971b362b15af34006e6a11974088a46d42b903418eJohannprint_webm_license() { 12981b362b15af34006e6a11974088a46d42b903418eJohann local destination=$1 12991184aebb761cbeac9124c37189a80a1a58f04b6bhkuang local prefix="$2" 13001184aebb761cbeac9124c37189a80a1a58f04b6bhkuang local suffix="$3" 13011b362b15af34006e6a11974088a46d42b903418eJohann shift 3 13021b362b15af34006e6a11974088a46d42b903418eJohann cat <<EOF > ${destination} 13031b362b15af34006e6a11974088a46d42b903418eJohann${prefix} Copyright (c) 2011 The WebM project authors. All Rights Reserved.${suffix} 13041b362b15af34006e6a11974088a46d42b903418eJohann${prefix} ${suffix} 13051b362b15af34006e6a11974088a46d42b903418eJohann${prefix} Use of this source code is governed by a BSD-style license${suffix} 13061b362b15af34006e6a11974088a46d42b903418eJohann${prefix} that can be found in the LICENSE file in the root of the source${suffix} 13071b362b15af34006e6a11974088a46d42b903418eJohann${prefix} tree. An additional intellectual property rights grant can be found${suffix} 13081b362b15af34006e6a11974088a46d42b903418eJohann${prefix} in the file PATENTS. All contributing project authors may${suffix} 13091b362b15af34006e6a11974088a46d42b903418eJohann${prefix} be found in the AUTHORS file in the root of the source tree.${suffix} 13101b362b15af34006e6a11974088a46d42b903418eJohannEOF 13111b362b15af34006e6a11974088a46d42b903418eJohann} 13121b362b15af34006e6a11974088a46d42b903418eJohann 131390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_targets() { 131490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 131590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 131690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 131790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_detect() { 131890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 131990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 132090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 13211184aebb761cbeac9124c37189a80a1a58f04b6bhkuangenable_feature logging 132291037db265ecdd914a26e056cf69207b4f50924ehkuanglogfile="config.log" 132390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberself=$0 132490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess() { 132590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cmdline_args="$@" 132690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_cmdline "$@" 132790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled child; then 132890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "# ${self} $@" >> ${logfile} 132990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 133090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "# ${self} $@" > ${logfile} 133190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 1332f71323e297a928af368937089d3ed71239786f86Andreas Huber post_process_common_cmdline 133390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber post_process_cmdline 133490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_toolchain 133590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_detect 133690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_targets 133790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 133890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber OOT_INSTALLS="${OOT_INSTALLS}" 133990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled source_path_used; then 134090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Prepare the PWD for building. 134190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for f in ${OOT_INSTALLS}; do 134290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber install -D ${source_path}/$f $f 134390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 134490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 134590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cp ${source_path}/build/make/Makefile . 134690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 134790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber clean_temp_files 134890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true 134990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 1350