toxcore/nacl/cpucycles/do
2013-07-02 09:53:34 -04:00

106 lines
2.1 KiB
Bash
Executable File

#!/bin/sh -e
okabi | (
while read abi
do
rm -f cpucycles.o cpucycles.h
(
case "$abi" in
ppc*)
echo powerpccpuinfo
echo powerpcmacos
;;
amd64*)
echo amd64tscfreq
echo amd64cpuinfo
echo amd64cpuspeed
;;
x86*)
echo x86tscfreq
echo x86cpuinfo
echo x86cpuspeed
echo x86estimate
;;
cell*)
echo celllinux
;;
sparc*)
echo sparccpuinfo
echo sparc32cpuinfo
;;
mips*)
echo mips
;;
hppa*)
echo hppapstat
;;
alpha*)
echo alpha
;;
sgi*)
echo sgi
;;
arm*)
echo cortex
echo dev4ns
;;
esac
echo amd64tscfreq
echo amd64cpuinfo
echo amd64cpuspeed
echo x86tscfreq
echo x86cpuinfo
echo x86cpuspeed
echo x86estimate
echo ia64cpuinfo
echo powerpccpuinfo
echo powerpcmacos
echo celllinux
echo sparccpuinfo
echo sparc32cpuinfo
echo mips
echo hppapstat
echo alpha
echo sgi
echo cortex
echo dev4ns
echo monotoniccpuinfo
echo monotonic
echo gettimeofday
) | (
while read n
do
okc-$abi | (
while read c
do
echo "=== `date` === Trying $n.c with $c..." >&2
rm -f test cpucycles-impl.o cpucycles-impl.h cpucycles-impl.c
cp $n.c cpucycles-impl.c || continue
cp $n.h cpucycles-impl.h || continue
$c -c cpucycles-impl.c || continue
$c -o test test.c cpucycles-impl.o || continue
./test || continue
echo "=== `date` === Success. Using $n.c." >&2
mkdir -p lib/$abi
mv cpucycles-impl.o lib/$abi/cpucycles.o
mkdir -p include/$abi
mv cpucycles-impl.h include/$abi/cpucycles.h
exit 0
done
exit 111
) && exit 0
done
exit 111
) || (
echo ===== Giving up. >&2
rm -f test cpucycles-impl.o cpucycles-impl.h cpucycles-impl.c
exit 111
) || exit 0
done
exit 0
) || exit 111