190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#!/bin/bash 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 4490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber pr -n -t $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 7890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --log=yes|no|FILE file configure log is written to [config.err] 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 9190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberInstall options: 9390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_docs} control whether docs are installed 9490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_bins} control whether binaries are installed 9590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_libs} control whether libraries are installed 9690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${toggle_install_srcs} control whether sources are installed 9790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 9990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 10090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 10190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_help_post(){ 10490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat <<EOF 10590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 10790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberNOTES: 10890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber Object files are built at the place where configure is launched. 10990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 11090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber All boolean options can be negated. The default value is the opposite 11190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber of that shown above. If the option --disable-foo is listed, then 11290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber the default value for foo is enabled. 11390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 11490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSupported targets: 11590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 11690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_targets ${all_platforms} 11790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo 11890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber exit 1 11990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 12090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 12290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_targets() { 12390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber while [ -n "$*" ]; do 124f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${1%%-*}" = "${2%%-*}" ]; then 125f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${2%%-*}" = "${3%%-*}" ]; then 12690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s %-24s %-24s\n" "$1" "$2" "$3" 12790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift; shift; shift 12890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 12990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s %-24s\n" "$1" "$2" 13090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift; shift 13190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 13290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 13390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber printf " %-24s\n" "$1" 13490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 13590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 13690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 13790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 13890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 13990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 14090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubershow_help() { 14190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_help_pre 14290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber show_help_post 14390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 14490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 14590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 14690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# List Processing Functions 14790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 14890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberset_all(){ 14990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber value=$1 15090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 15190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 15290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval $var=$value 15390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 15490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 15590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 15690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 15790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberis_in(){ 15890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber value=$1 15990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 16090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 16190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ $var = $value ] && return 0 16290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 16390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber return 1 16490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 16590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 16690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 16790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_cflags() { 16890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CFLAGS="${CFLAGS} $@" 16990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 17090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 17190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 17290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_ldflags() { 17390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LDFLAGS="${LDFLAGS} $@" 17490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 17590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 17690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 17790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_asflags() { 17890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ASFLAGS="${ASFLAGS} $@" 17990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 18090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberadd_extralibs() { 18390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber extralibs="${extralibs} $@" 18490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 18590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 18690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 18790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Boolean Manipulation Functions 18890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 18990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberenable(){ 19090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber set_all yes $* 19190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 19290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 19390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberdisable(){ 19490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber set_all no $* 19590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 19690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 19790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberenabled(){ 19890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval test "x\$$1" = "xyes" 19990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 20090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 20190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberdisabled(){ 20290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval test "x\$$1" = "xno" 20390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 20490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 20590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 20690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersoft_enable() { 20790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 20890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! disabled $var; then 20990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo " enabling $var" 21090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable $var 21190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 21290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 21390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 21490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 21590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersoft_disable() { 21690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for var in $*; do 21790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! enabled $var; then 21890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo " disabling $var" 21990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber disable $var 22090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 22190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 22290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 22390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 22490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 22590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 22690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Text Processing Functions 22790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 22890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertoupper(){ 22990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 23090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 23190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertolower(){ 23490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "$@" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 23590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 23690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 23890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 23990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Temporary File Functions 24090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 24190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersource_path=${0%/*} 24290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberenable source_path_used 24390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberif test -z "$source_path" -o "$source_path" = "." ; then 24490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber source_path="`pwd`" 24590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber disable source_path_used 24690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfi 24790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 24890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberif test ! -z "$TMPDIR" ; then 24990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="${TMPDIR}" 25090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberelif test ! -z "$TEMPDIR" ; then 25190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="${TEMPDIR}" 25290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberelse 25390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TMPDIRx="/tmp" 25490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfi 25590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTMP_H="${TMPDIRx}/vpx-conf-$$-${RANDOM}.h" 25690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTMP_C="${TMPDIRx}/vpx-conf-$$-${RANDOM}.c" 25790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTMP_O="${TMPDIRx}/vpx-conf-$$-${RANDOM}.o" 25890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTMP_X="${TMPDIRx}/vpx-conf-$$-${RANDOM}.x" 259538f6170b788de7408b06efc6613dc98579aa6a6Andreas HuberTMP_ASM="${TMPDIRx}/vpx-conf-$$-${RANDOM}.asm" 26090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 26190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberclean_temp_files() { 262538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber rm -f ${TMP_C} ${TMP_H} ${TMP_O} ${TMP_X} ${TMP_ASM} 26390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 26490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 26590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 26690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# Toolchain Check Functions 26790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# 26890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cmd() { 26990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log "$@" 27090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber "$@" >>${logfile} 2>&1 27190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 27290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 27390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cc() { 27490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cc "$@" 27590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat >${TMP_C} 27690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_file ${TMP_C} 27790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cmd ${CC} ${CFLAGS} "$@" -c -o ${TMP_O} ${TMP_C} 27890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 27990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 28090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cpp() { 28190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cpp "$@" 28290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat > ${TMP_C} 28390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_file ${TMP_C} 28490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cmd ${CC} ${CFLAGS} "$@" -E -o ${TMP_O} ${TMP_C} 28590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 28690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 28790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_ld() { 28890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_ld "$@" 28990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cc $@ \ 29090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber && check_cmd ${LD} ${LDFLAGS} "$@" -o ${TMP_X} ${TMP_O} ${extralibs} 29190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 29290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 29390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_header(){ 29490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_header "$@" 29590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber header=$1 29690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 29790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber var=`echo $header | sed 's/[^A-Za-z0-9_]/_/g'` 29890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber disable $var 29990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cpp "$@" <<EOF && enable $var 30090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#include "$header" 30190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberint x; 30290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 30390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 30490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 30590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 30690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_cflags() { 30790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log check_cflags "$@" 30890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cc "$@" <<EOF 30990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberint x; 31090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 31190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 31290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 31390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_cflags() { 31490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cflags "$@" && add_cflags "$@" 31590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 31690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 31790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_asflags() { 31890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log add_asflags "$@" 31990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags "$@" 32090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 32190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 32290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubercheck_add_ldflags() { 32390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log add_ldflags "$@" 32490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "$@" 32590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 32690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 327538f6170b788de7408b06efc6613dc98579aa6a6Andreas Hubercheck_asm_align() { 328538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log check_asm_align "$@" 329538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber cat >${TMP_ASM} <<EOF 330538f6170b788de7408b06efc6613dc98579aa6a6Andreas Hubersection .rodata 331538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huberalign 16 332538f6170b788de7408b06efc6613dc98579aa6a6Andreas HuberEOF 333538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_file ${TMP_ASM} 334538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber check_cmd ${AS} ${ASFLAGS} -o ${TMP_O} ${TMP_ASM} 335538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber readelf -WS ${TMP_O} >${TMP_X} 336538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_file ${TMP_X} 337538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber if ! grep -q '\.rodata .* 16$' ${TMP_X}; then 338538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber die "${AS} ${ASFLAGS} does not support section alignment (nasm <=2.08?)" 339538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber fi 340538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber} 341538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 34290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_config_banner() { 34390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo '# This file automatically generated by configure. Do not edit!' > config.mk 34490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "TOOLCHAIN := ${toolchain}" >> config.mk 34590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 34690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 34790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *-linux-rvct) 34890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "ALT_LIBC := ${alt_libc}" >> config.mk 34990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 35090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 35190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 35290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 35390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_config_targets() { 35490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for t in ${all_targets}; do 35590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled ${t}; then 35690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled universal || enabled child; then 35790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fwrite config.mk "ALL_TARGETS += ${t}-${toolchain}" 35890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 35990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fwrite config.mk "ALL_TARGETS += ${t}" 36090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 36190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 36290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 36390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 36490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubertrue 36590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 36690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 36790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_target_config_mk() { 36890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber local CC=${CC} 36990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled ccache && CC="ccache ${CC}" 37090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 37190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat > $1 << EOF 37290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# This file automatically generated by configure. Do not edit! 37390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSRC_PATH="$source_path" 37490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSRC_PATH_BARE=$source_path 37590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberBUILD_PFX=${BUILD_PFX} 37690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberTOOLCHAIN=${toolchain} 37790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberASM_CONVERSION=${asm_conversion_cmd:-${source_path}/build/make/ads2gas.pl} 37890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 37990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberCC=${CC} 38090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAR=${AR} 38190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberLD=${LD} 38290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAS=${AS} 38390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberSTRIP=${STRIP} 38490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberNM=${NM} 38590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 386f71323e297a928af368937089d3ed71239786f86Andreas HuberCFLAGS = ${CFLAGS} 38790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberARFLAGS = -rus\$(if \$(quiet),c,v) 38890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberLDFLAGS = ${LDFLAGS} 38990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberASFLAGS = ${ASFLAGS} 39090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberextralibs = ${extralibs} 39190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberAS_SFX = ${AS_SFX:-.asm} 39290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 39390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 39490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled rvct; then cat >> $1 << EOF 39590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberfmt_deps = sed -e 's;^__image.axf;\$(dir \$@)\$(notdir \$<).o \$@;' #hide 39690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 39790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else cat >> $1 << EOF 398f71323e297a928af368937089d3ed71239786f86Andreas Huberfmt_deps = sed -e 's;^\([a-zA-Z0-9_]*\)\.o;\$(dir \$@)\1\$(suffix \$<).o \$@;' 39990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 40090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 40190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 40290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk ARCH "${1}" ${ARCH_LIST} 40390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk HAVE "${1}" ${HAVE_LIST} 40490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk CONFIG "${1}" ${CONFIG_LIST} 40590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_mk HAVE "${1}" gnu_strip 40690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 40790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled msvs && echo "CONFIG_VS_VERSION=${vs_version}" >> "${1}" 40890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 40990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 41090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 41190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 41290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberwrite_common_target_config_h() { 41390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cat > ${TMP_H} << EOF 41490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber/* This file automatically generated by configure. Do not edit! */ 41590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber#define RESTRICT ${RESTRICT} 41690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 41790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h ARCH "${TMP_H}" ${ARCH_LIST} 41890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h HAVE "${TMP_H}" ${HAVE_LIST} 41990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber print_config_h CONFIG "${TMP_H}" ${CONFIG_LIST} 42090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber mkdir -p `dirname "$1"` 42190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cmp "$1" ${TMP_H} >/dev/null 2>&1 || mv ${TMP_H} "$1" 42290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 42390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 42490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_common_cmdline() { 42590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for opt in "$@"; do 42690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber optval="${opt#*=}" 42790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$opt" in 42890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --child) enable child 42990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 43090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --log*) 43190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber logging="$optval" 43290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if ! disabled logging ; then 43390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled logging || logfile="$logging" 43490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 43590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber logfile=/dev/null 43690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 43790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 43890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --target=*) toolchain="${toolchain:-${optval}}" 43990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 44090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --force-target=*) toolchain="${toolchain:-${optval}}"; enable force_toolchain 44190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 44290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --cpu) 44390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 44490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --cpu=*) tune_cpu="$optval" 44590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 44679f15823c34ae1e423108295e416213200bb280fAndreas Huber --extra-cflags=*) 44779f15823c34ae1e423108295e416213200bb280fAndreas Huber extra_cflags="${optval}" 44879f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 44990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --enable-?*|--disable-?*) 45090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval `echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g'` 45190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "${CMDLINE_SELECT} ${ARCH_EXT_LIST}" | grep "^ *$option\$" >/dev/null || die_unknown $opt 45290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber $action $option 45390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 45490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --force-enable-?*|--force-disable-?*) 45590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber eval `echo "$opt" | sed 's/--force-/action=/;s/-/ option=/;s/-/_/g'` 45690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber $action $option 45790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 45890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --libc=*) 45990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${optval}" ] || die "Not a directory: ${optval}" 46090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber disable builtin_libc 46190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber alt_libc="${optval}" 46290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 463538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber --as=*) 464538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${optval}" = yasm -o "${optval}" = nasm -o "${optval}" = auto ] \ 465538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber || die "Must be yasm, nasm or auto: ${optval}" 466538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber alt_as="${optval}" 467538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 468f71323e297a928af368937089d3ed71239786f86Andreas Huber --prefix=*) 469f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${optval}" 470f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 471f71323e297a928af368937089d3ed71239786f86Andreas Huber --libdir=*) 472f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${optval}" 473f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 474538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber --libc|--as|--prefix|--libdir) 47590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Option ${opt} requires argument" 47690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 47790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber --help|-h) show_help 47890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 47990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) die_unknown $opt 48090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 48190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 48290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 48390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 48490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 48590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_cmdline() { 48690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for opt do 48790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber optval="${opt#*=}" 48890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$opt" in 48990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) process_common_cmdline $opt 49090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 49190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 49290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 49390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 49490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 495f71323e297a928af368937089d3ed71239786f86Andreas Huber 496f71323e297a928af368937089d3ed71239786f86Andreas Huberpost_process_common_cmdline() { 497f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${prefix:-/usr/local}" 498f71323e297a928af368937089d3ed71239786f86Andreas Huber prefix="${prefix%/}" 499f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${libdir:-${prefix}/lib}" 500f71323e297a928af368937089d3ed71239786f86Andreas Huber libdir="${libdir%/}" 501f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ "${libdir#${prefix}}" = "${libdir}" ]; then 502f71323e297a928af368937089d3ed71239786f86Andreas Huber die "Libdir ${libdir} must be a subdirectory of ${prefix}" 503f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 504f71323e297a928af368937089d3ed71239786f86Andreas Huber} 505f71323e297a928af368937089d3ed71239786f86Andreas Huber 506f71323e297a928af368937089d3ed71239786f86Andreas Huber 50790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberpost_process_cmdline() { 50890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 50990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 51090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 51190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Hubersetup_gnu_toolchain() { 51290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-${CROSS}gcc} 51390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AR=${AR:-${CROSS}ar} 51490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-${CROSS}${link_with_cc:-ld}} 51590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS=${AS:-${CROSS}as} 51690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber STRIP=${STRIP:-${CROSS}strip} 51790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber NM=${NM:-${CROSS}nm} 51890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.s 51990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 52090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 52190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_common_toolchain() { 522f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ -z "$toolchain" ]; then 523f71323e297a928af368937089d3ed71239786f86Andreas Huber gcctarget="$(gcc -dumpmachine 2> /dev/null)" 524f71323e297a928af368937089d3ed71239786f86Andreas Huber 525f71323e297a928af368937089d3ed71239786f86Andreas Huber # detect tgt_isa 526f71323e297a928af368937089d3ed71239786f86Andreas Huber case "$gcctarget" in 527f71323e297a928af368937089d3ed71239786f86Andreas Huber *x86_64*|*amd64*) 528f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=x86_64 529f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 530f71323e297a928af368937089d3ed71239786f86Andreas Huber *i[3456]86*) 531f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=x86 532f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 533538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *powerpc64*) 534538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=ppc64 535538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 536538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *powerpc*) 537538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=ppc32 538538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 539538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *sparc*) 540538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_isa=sparc 541538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 542f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 543f71323e297a928af368937089d3ed71239786f86Andreas Huber 544f71323e297a928af368937089d3ed71239786f86Andreas Huber # detect tgt_os 545f71323e297a928af368937089d3ed71239786f86Andreas Huber case "$gcctarget" in 546f71323e297a928af368937089d3ed71239786f86Andreas Huber *darwin8*) 547f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=universal 548f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=darwin8 549f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 550f71323e297a928af368937089d3ed71239786f86Andreas Huber *darwin9*) 551f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_isa=universal 552f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=darwin9 553f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 55479f15823c34ae1e423108295e416213200bb280fAndreas Huber *darwin10*) 55579f15823c34ae1e423108295e416213200bb280fAndreas Huber tgt_isa=x86_64 55679f15823c34ae1e423108295e416213200bb280fAndreas Huber tgt_os=darwin10 55779f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 558f71323e297a928af368937089d3ed71239786f86Andreas Huber *mingw32*|*cygwin*) 559f71323e297a928af368937089d3ed71239786f86Andreas Huber [ -z "$tgt_isa" ] && tgt_isa=x86 560f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=win32 561f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 562f71323e297a928af368937089d3ed71239786f86Andreas Huber *linux*|*bsd*) 563f71323e297a928af368937089d3ed71239786f86Andreas Huber tgt_os=linux 564f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 565538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *solaris2.10) 566538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber tgt_os=solaris 567538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 568f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 569f71323e297a928af368937089d3ed71239786f86Andreas Huber 570f71323e297a928af368937089d3ed71239786f86Andreas Huber if [ -n "$tgt_isa" ] && [ -n "$tgt_os" ]; then 571f71323e297a928af368937089d3ed71239786f86Andreas Huber toolchain=${tgt_isa}-${tgt_os}-gcc 572f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 573f71323e297a928af368937089d3ed71239786f86Andreas Huber fi 574f71323e297a928af368937089d3ed71239786f86Andreas Huber 57590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber toolchain=${toolchain:-generic-gnu} 57690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 57790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber is_in ${toolchain} ${all_platforms} || enabled force_toolchain \ 57890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber || die "Unrecognized toolchain '${toolchain}'" 57990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 58090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled child || log_echo "Configuring for target '${toolchain}'" 58190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 58290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # 58390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Set up toolchain variables 58490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # 58590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_isa=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $1}') 58690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_os=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $2}') 58790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tgt_cc=$(echo ${toolchain} | awk 'BEGIN{FS="-"}{print $3}') 58890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 58990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Mark the specific ISA requested as enabled 59090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable ${tgt_isa} 59190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable ${tgt_os} 59290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable ${tgt_cc} 59390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 59490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Enable the architecture family 59590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_isa} in 59690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arm*|iwmmxt*) enable arm;; 59790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber mips*) enable mips;; 59890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 59990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 600538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber # PIC is probably what we want when building shared libs 601538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled shared && soft_enable pic 602538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 60390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Handle darwin variants 60490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 605538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-darwin8-*) 60690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-isysroot /Developer/SDKs/MacOSX10.4u.sdk" 60790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-mmacosx-version-min=10.4" 60890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-isysroot /Developer/SDKs/MacOSX10.4u.sdk" 60990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-mmacosx-version-min=10.4" 61090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 611538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-darwin9-*) 61290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-isysroot /Developer/SDKs/MacOSX10.5.sdk" 61390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags "-mmacosx-version-min=10.5" 61490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-isysroot /Developer/SDKs/MacOSX10.5.sdk" 61590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags "-mmacosx-version-min=10.5" 61690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 61779f15823c34ae1e423108295e416213200bb280fAndreas Huber *-darwin10-*) 61879f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags "-isysroot /Developer/SDKs/MacOSX10.6.sdk" 61979f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags "-mmacosx-version-min=10.6" 62079f15823c34ae1e423108295e416213200bb280fAndreas Huber add_ldflags "-isysroot /Developer/SDKs/MacOSX10.6.sdk" 62179f15823c34ae1e423108295e416213200bb280fAndreas Huber add_ldflags "-mmacosx-version-min=10.6" 62279f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 62390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 62490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 625538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber # Handle Solaris variants. Solaris 10 needs -lposix4 626538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber case ${toolchain} in 62779f15823c34ae1e423108295e416213200bb280fAndreas Huber sparc-solaris-*) 62879f15823c34ae1e423108295e416213200bb280fAndreas Huber add_extralibs -lposix4 62979f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags "-DMUST_BE_ALIGNED" 63079f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 631538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *-solaris-*) 632538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber add_extralibs -lposix4 633538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 634538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber esac 635538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber 63690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Process ARM architecture variants 63790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 63890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arm*|iwmmxt*) 63990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # on arm, isa versions are supersets 64090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled armv7a && soft_enable armv7 ### DEBUG 64190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled armv7 && soft_enable armv6 64290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled armv6 && soft_enable armv5te 64390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled armv6 && soft_enable fast_unaligned 64490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled iwmmxt2 && soft_enable iwmmxt 64590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled iwmmxt && soft_enable armv5te 64690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 64790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber asm_conversion_cmd="cat" 64890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 64990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_cc} in 65090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber gcc) 65190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled iwmmxt || enabled iwmmxt2 65290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber then 65390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-arm-iwmmxt-linux-gnueabi-} 65490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber elif enabled symbian; then 65590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-arm-none-symbianelf-} 65690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 65790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-arm-none-linux-gnueabi-} 65890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 65990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 66090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 66190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${tgt_isa##armv} 66290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${arch_int%%te} 66390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --defsym ARCHITECTURE=${arch_int} 66490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="-mtune=" 66590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled iwmmxt || enabled iwmmxt2 66690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber then 66790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags -mcpu=${tgt_isa} 66890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber elif enabled armv7 66990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber then 67090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -march=armv7-a -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-ftree-vectorize 67179f15823c34ae1e423108295e416213200bb280fAndreas Huber check_add_asflags -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp #-march=armv7-a 67290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 67390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -march=${tgt_isa} 67490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags -march=${tgt_isa} 67590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 67679f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g 67790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber asm_conversion_cmd="${source_path}/build/make/ads2gas.pl" 67890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 67990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber rvct) 68090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=armcc 68190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AR=armar 68290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS=armasm 68390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${source_path}/build/make/armlink_adapter.sh 68490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber STRIP=arm-none-linux-gnueabi-strip 68590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber NM=arm-none-linux-gnueabi-nm 68690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="--cpu=" 68790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_asflags="--cpu=" 68890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -z "${tune_cpu}" ]; then 68990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled armv7 69090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber then 69190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags --cpu=Cortex-A8 --fpu=softvfp+vfpv3 69290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --cpu=Cortex-A8 --fpu=none 69390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 69490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags --cpu=${tgt_isa##armv} 69590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --cpu=${tgt_isa##armv} 69690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 69790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 69890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${tgt_isa##armv} 69990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber arch_int=${arch_int%%te} 70090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags --pd "\"ARCHITECTURE SETA ${arch_int}\"" 70179f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g 70279f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --gnu 70379f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --enum_is_int 70479f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags --wchar32 70590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 70690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 70790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 70890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 70979f15823c34ae1e423108295e416213200bb280fAndreas Huber none*) 71079f15823c34ae1e423108295e416213200bb280fAndreas Huber disable multithread 71179f15823c34ae1e423108295e416213200bb280fAndreas Huber disable os_support 71279f15823c34ae1e423108295e416213200bb280fAndreas Huber ;; 71390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 71490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber SDK_PATH=/Developer/Platforms/iPhoneOS.platform/Developer 71590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber TOOLCHAIN_PATH=${SDK_PATH}/usr/bin 71690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${TOOLCHAIN_PATH}/gcc 71790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AR=${TOOLCHAIN_PATH}/ar 71879f15823c34ae1e423108295e416213200bb280fAndreas Huber LD=${TOOLCHAIN_PATH}/arm-apple-darwin10-gcc-4.2.1 71990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS=${TOOLCHAIN_PATH}/as 72090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber STRIP=${TOOLCHAIN_PATH}/strip 72190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber NM=${TOOLCHAIN_PATH}/nm 72290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.s 72390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 72490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # ASFLAGS is written here instead of using check_add_asflags 72590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # because we need to overwrite all of ASFLAGS and purge the 72690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # options that were put in above 72790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ASFLAGS="-version -arch ${tgt_isa} -g" 72890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 72990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -arch ${tgt_isa} 73090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags -arch_only ${tgt_isa} 73190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 73279f15823c34ae1e423108295e416213200bb280fAndreas Huber add_cflags "-isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk" 73390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 73490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # This should be overridable 73579f15823c34ae1e423108295e416213200bb280fAndreas Huber alt_libc=${SDK_PATH}/SDKs/iPhoneOS4.2.sdk 73690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 73790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Add the paths for the alternate libc 73890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber# for d in usr/include usr/include/gcc/darwin/4.0/; do 73979f15823c34ae1e423108295e416213200bb280fAndreas Huber for d in usr/include usr/include/gcc/darwin/4.0/ usr/lib/gcc/arm-apple-darwin10/4.2.1/include/; do 74090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 74190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_cflags -I"${try_dir}" 74290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 74390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 74490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for d in lib usr/lib; do 74590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 74690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}" 74790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 74890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 74990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber asm_conversion_cmd="${source_path}/build/make/ads2gas_apple.pl" 75090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 75190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 75290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber linux*) 75390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable linux 75490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled rvct; then 75590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Compiling with RVCT requires an alternate libc (glibc) when 75690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # targetting linux. 75790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber disabled builtin_libc \ 75890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber || die "Must supply --libc when targetting *-linux-rvct" 75990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 76090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Set up compiler 76190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags --library_interface=aeabi_glibc 76290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags --no_hide_all 76390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags --dwarf2 76490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 76590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Set up linker 76690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags --sysv --no_startup --no_ref_cpp_init 76790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags --entry=_start 76890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags --keep '"*(.init)"' --keep '"*(.fini)"' 76990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags --keep '"*(.init_array)"' --keep '"*(.fini_array)"' 77090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags --dynamiclinker=/lib/ld-linux.so.3 77190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_extralibs libc.so.6 -lc_nonshared crt1.o crti.o crtn.o 77290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 77390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Add the paths for the alternate libc 77490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for d in usr/include; do 77590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 77690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_cflags -J"${try_dir}" 77790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 77890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -J"${RVCT31INC}" 77990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for d in lib usr/lib; do 78090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 78190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}" 78290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 78390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 78490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 78590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # glibc has some struct members named __align, which is a 78690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # storage modifier in RVCT. If we need to use this modifier, 78790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # we'll have to #undef it in our code. Note that this must 78890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # happen AFTER all libc inclues. 78990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -D__align=x_align_x 79090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 79190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 79290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 79390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber symbian*) 79490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable symbian 79590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Add the paths for the alternate libc 79690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for d in include/libc; do 79790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 79890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_cflags -I"${try_dir}" 79990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 80090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for d in release/armv5/urel; do 80190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber try_dir="${alt_libc}/${d}" 80290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -d "${try_dir}" ] && add_ldflags -L"${try_dir}" 80390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 80490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -DIMPORT_C= 80590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 80690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 80790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 80890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber mips*) 80990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-mipsel-linux-uclibc-} 81090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 81190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 81290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber tune_cflags="-mtune=" 81390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -march=${tgt_isa} 81490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags -march=${tgt_isa} 81590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags -KPIC 81690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 81790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ppc*) 81890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enable ppc 81990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber bits=${tgt_isa##ppc} 82090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 82190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 82290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -force_cpusubtype_ALL -I"\$(dir \$<)darwin" 82390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable altivec 824538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled altivec && add_cflags -maltivec 82590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 82690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case "$tgt_os" in 82790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber linux*) 82890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -maltivec -mregnames -I"\$(dir \$<)linux" 82990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 83090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 83190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin_arch="-arch ppc" 83290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled ppc64 && darwin_arch="${darwin_arch}64" 83390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags ${darwin_arch} -m${bits} -fasm-blocks 83490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags ${darwin_arch} -force_cpusubtype_ALL -I"\$(dir \$<)darwin" 83590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags ${darwin_arch} -m${bits} 836538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled altivec && add_cflags -faltivec 83790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 83890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 83990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 84090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber x86*) 84190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber bits=32 84290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled x86_64 && bits=64 84390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable runtime_cpu_detect 84490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable mmx 84590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable sse 84690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable sse2 84790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable sse3 84890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber soft_enable ssse3 849538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber soft_enable sse4_1 85090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 85190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 852f71323e297a928af368937089d3ed71239786f86Andreas Huber win*) 853f71323e297a928af368937089d3ed71239786f86Andreas Huber enabled gcc && add_cflags -fno-common 854f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 85590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber solaris*) 85690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-${CROSS}gcc} 85790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-${CROSS}gcc} 85890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CROSS=${CROSS:-g} 85990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 86090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 86190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 862538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber AS="${alt_as:-${AS:-auto}}" 86390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_cc} in 86490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber icc*) 86590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber CC=${CC:-icc} 86690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber LD=${LD:-icc} 86790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 86890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -use-msasm -use-asm 86990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags -i-static 87079f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled x86_64 && add_cflags -ipo -no-prec-div -static -xSSE2 -axSSE2 871f71323e297a928af368937089d3ed71239786f86Andreas Huber enabled x86_64 && AR=xiar 872f71323e297a928af368937089d3ed71239786f86Andreas Huber case ${tune_cpu} in 873f71323e297a928af368937089d3ed71239786f86Andreas Huber atom*) 874f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-x" 875f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cpu="SSE3_ATOM" 876f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 877f71323e297a928af368937089d3ed71239786f86Andreas Huber *) 878f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-march=" 879f71323e297a928af368937089d3ed71239786f86Andreas Huber ;; 880f71323e297a928af368937089d3ed71239786f86Andreas Huber esac 88190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 88290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber gcc*) 88390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags -m${bits} 88490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags -m${bits} 88590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 886f71323e297a928af368937089d3ed71239786f86Andreas Huber tune_cflags="-march=" 88790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 88890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 88990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 89090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 891538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber case "${AS}" in 892538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber auto|"") 893538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber which nasm >/dev/null 2>&1 && AS=nasm 894538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber which yasm >/dev/null 2>&1 && AS=yasm 895538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS}" = auto -o -z "${AS}" ] \ 896538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber && die "Neither yasm nor nasm have been found" 897538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber ;; 898538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber esac 899538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber log_echo " using $AS" 900538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS##*/}" = nasm ] && add_asflags -Ox 90190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber AS_SFX=.asm 90290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${tgt_os} in 90390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber win*) 90490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -f win${bits} 90579f15823c34ae1e423108295e416213200bb280fAndreas Huber enabled debug && add_asflags -g cv8 90690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 90790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber linux*|solaris*) 90890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -f elf${bits} 909538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled debug && [ "${AS}" = yasm ] && add_asflags -g dwarf2 910538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled debug && [ "${AS}" = nasm ] && add_asflags -g 911538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber [ "${AS##*/}" = nasm ] && check_asm_align 91290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 91390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber darwin*) 91490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_asflags -f macho${bits} 91590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled x86 && darwin_arch="-arch i386" || darwin_arch="-arch x86_64" 91690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_cflags ${darwin_arch} 91790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber add_ldflags ${darwin_arch} 91890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # -mdynamic-no-pic is still a bit of voodoo -- it was required at 91990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # one time, but does not seem to be now, and it breaks some of the 92090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # code that still relies on inline assembly. 92190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # enabled icc && ! enabled pic && add_cflags -fno-pic -mdynamic-no-pic 92290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled icc && ! enabled pic && add_cflags -fno-pic 92390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 924538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber *) log "Warning: Unknown os $tgt_os while setting up $AS flags" 92590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 92690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 92790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 92890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber universal*|*-gcc|generic-gnu) 92990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber link_with_cc=gcc 930f71323e297a928af368937089d3ed71239786f86Andreas Huber enable gcc 93190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber setup_gnu_toolchain 93290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ;; 93390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 93490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 93590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Try to enable CPU specific tuning 93690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_cpu}" ]; then 93790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_cflags}" ]; then 93890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags ${tune_cflags}${tune_cpu} || \ 93990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Requested CPU '${tune_cpu}' not supported by compiler" 94090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 94190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -n "${tune_asflags}" ]; then 94290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_asflags ${tune_asflags}${tune_cpu} || \ 94390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber die "Requested CPU '${tune_cpu}' not supported by assembler" 94490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 94590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if [ -z "${tune_cflags}${tune_asflags}" ]; then 94690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber log_echo "Warning: CPU tuning not supported by this toolchain" 94790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 94890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 94990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 95090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled debug && check_add_cflags -g && check_add_ldflags -g 95190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gprof && check_add_cflags -pg && check_add_ldflags -pg 95290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gcov && 95390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_cflags -fprofile-arcs -ftest-coverage && 95490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_add_ldflags -fprofile-arcs -ftest-coverage 955538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber if enabled optimizations; then 956538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled rvct && check_add_cflags -Otime 957538f6170b788de7408b06efc6613dc98579aa6a6Andreas Huber enabled small && check_add_cflags -O2 || check_add_cflags -O3 95890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 95990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 96079f15823c34ae1e423108295e416213200bb280fAndreas Huber # Position Independent Code (PIC) support, for building relocatable 96190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # shared objects 96290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber enabled gcc && enabled pic && check_add_cflags -fPIC 96390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 96490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Check for strip utility variant 96590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber ${STRIP} -V 2>/dev/null | grep GNU >/dev/null && enable gnu_strip 96690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 96790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Try to determine target endianness 96890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber check_cc <<EOF 96990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber unsigned int e = 'O'<<24 | '2'<<16 | 'B'<<8 | 'E'; 97090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas HuberEOF 97190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber [ -f "${TMP_O}" ] && od -A n -t x1 "${TMP_O}" | tr -d '\n' | 97290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber grep '4f *32 *42 *45' >/dev/null 2>&1 && enable big_endian 97390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 97490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Almost every platform uses pthreads. 97590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled multithread; then 97690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber case ${toolchain} in 97790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *-win*);; 97890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber *) check_header pthread.h && add_extralibs -lpthread 97990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber esac 98090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 98190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 98290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # glibc needs these 98390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled linux; then 984f71323e297a928af368937089d3ed71239786f86Andreas Huber add_cflags -D_LARGEFILE_SOURCE 985f71323e297a928af368937089d3ed71239786f86Andreas Huber add_cflags -D_FILE_OFFSET_BITS=64 98690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 98779f15823c34ae1e423108295e416213200bb280fAndreas Huber 98879f15823c34ae1e423108295e416213200bb280fAndreas Huber # append any user defined extra cflags 98979f15823c34ae1e423108295e416213200bb280fAndreas Huber if [ -n "${extra_cflags}" ] ; then 99079f15823c34ae1e423108295e416213200bb280fAndreas Huber check_add_cflags ${extra_cflags} || \ 99179f15823c34ae1e423108295e416213200bb280fAndreas Huber die "Requested extra CFLAGS '${extra_cflags}' not supported by compiler" 99279f15823c34ae1e423108295e416213200bb280fAndreas Huber fi 99390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 99490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 99590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_toolchain() { 99690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_common_toolchain 99790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 99890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 99990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprint_config_mk() { 1000f71323e297a928af368937089d3ed71239786f86Andreas Huber local prefix=$1 1001f71323e297a928af368937089d3ed71239786f86Andreas Huber local makefile=$2 100290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 2 100390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for cfg; do 100490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber upname="`toupper $cfg`" 100590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled $cfg; then 100690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "${prefix}_${upname}=yes" >> $makefile 100790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 100890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 100990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 101090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 101190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprint_config_h() { 1012f71323e297a928af368937089d3ed71239786f86Andreas Huber local prefix=$1 1013f71323e297a928af368937089d3ed71239786f86Andreas Huber local header=$2 101490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber shift 2 101590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for cfg; do 101690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber upname="`toupper $cfg`" 101790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled $cfg; then 101890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "#define ${prefix}_${upname} 1" >> $header 101990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 102090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "#define ${prefix}_${upname} 0" >> $header 102190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 102290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 102390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 102490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 102590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_targets() { 102690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 102790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 102890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 102990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess_detect() { 103090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true; 103190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 103290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 103390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberenable logging 103490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberlogfile="config.err" 103590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberself=$0 103690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huberprocess() { 103790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cmdline_args="$@" 103890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_cmdline "$@" 103990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled child; then 104090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "# ${self} $@" >> ${logfile} 104190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber else 104290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber echo "# ${self} $@" > ${logfile} 104390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 1044f71323e297a928af368937089d3ed71239786f86Andreas Huber post_process_common_cmdline 104590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber post_process_cmdline 104690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_toolchain 104790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_detect 104890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber process_targets 104990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 105090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber OOT_INSTALLS="${OOT_INSTALLS}" 105190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber if enabled source_path_used; then 105290d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber # Prepare the PWD for building. 105390d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber for f in ${OOT_INSTALLS}; do 105490d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber install -D ${source_path}/$f $f 105590d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber done 105690d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber fi 105790d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber cp ${source_path}/build/make/Makefile . 105890d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber 105990d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber clean_temp_files 106090d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber true 106190d3ed91ae9228e1c8bab561b6138d4cb8c1e4fdAndreas Huber} 1062