mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-05 15:30:02 +01:00
72 lines
1.3 KiB
Bash
Executable File
72 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# simple script that detects march setting for this computer
|
|
# only for gcc
|
|
|
|
if test x"$CC" = x; then
|
|
CC=gcc
|
|
fi
|
|
|
|
target=$1
|
|
|
|
cc_version=`$CC -dumpversion`
|
|
_cc_major=`echo $cc_version | cut -d'.' -f1`
|
|
_cc_minor=`echo $cc_version | cut -d'.' -f2`
|
|
|
|
do_cc()
|
|
{
|
|
$CC -o conftest conftest.c $@ >/dev/null 2>&1
|
|
}
|
|
|
|
extcheck()
|
|
{
|
|
cat > conftest.c <<EOF
|
|
#include <signal.h>
|
|
void catch() { exit(1); }
|
|
int main(void){
|
|
signal(SIGILL, catch);
|
|
__asm__ __volatile__ ("$1":::"memory");
|
|
exit(0);
|
|
}
|
|
EOF
|
|
|
|
do_cc
|
|
if test -x ./conftest; then
|
|
./conftest
|
|
if test $? -ne 0; then
|
|
return 1
|
|
fi
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
|
|
cat > conftest.c << EOF
|
|
int main(void) { return 0; }
|
|
EOF
|
|
|
|
arch=`$CC -march=native -Q --help=target|grep -- '-march='|cut -f3|head -n1`
|
|
do_cc -march=$arch
|
|
if test $? -ne 0; then
|
|
# gcc failed, lets try -dumpmachine and test specifically for arm
|
|
# since we know that 'gcc -march=native -Q --help=target` fails on gcc 4.6.3
|
|
machine=`$CC -dumpmachine`
|
|
cpu=`echo $machine |cut -d '-' -f1`
|
|
case $cpu in
|
|
arm)
|
|
arch=`cat /proc/cpuinfo|grep 'model name'|head -n1|cut -d ':' -f2 |cut -d ' ' -f2 | tr '[:upper:]' '[:lower:]'`
|
|
;;
|
|
esac
|
|
|
|
fi
|
|
|
|
if [ -z "$arch" ]; then
|
|
arch="native"
|
|
fi
|
|
|
|
rm -rf veejay.arch
|
|
echo "-march=$arch" > veejay.arch
|
|
|