summaryrefslogtreecommitdiff
path: root/config/gr_set_md_cpu.m4
diff options
context:
space:
mode:
Diffstat (limited to 'config/gr_set_md_cpu.m4')
-rw-r--r--config/gr_set_md_cpu.m430
1 files changed, 27 insertions, 3 deletions
diff --git a/config/gr_set_md_cpu.m4 b/config/gr_set_md_cpu.m4
index d8714c4a7..cb5fb5aac 100644
--- a/config/gr_set_md_cpu.m4
+++ b/config/gr_set_md_cpu.m4
@@ -50,13 +50,37 @@ AC_DEFUN([GR_SET_MD_CPU],[
AC_ARG_WITH(md-cpu,
AC_HELP_STRING([--with-md-cpu=ARCH],[set machine dependent speedups (auto)]),
[cf_with_md_cpu="$withval"],
- [cf_with_md_cpu="$host_cpu"])
-
+ [
+ dnl see if the user has specified --host or --build, via 'cross_compiling'
+ if test "$cross_compiling" != no; then
+ dnl when cross-compiling, because the user specified it either via
+ dnl --target or --build, just keep the user's specs & hope for the best.
+ cf_with_md_cpu="$host_cpu"
+ else
+ dnl when the user didn't specify --target or --build, on Darwin 10
+ dnl (OSX 10.6.0 and .1) and GNU libtoool 2.2.6, 'configure' doesn't
+ dnl figure out the CPU type correctly, so do it by hand here using
+ dnl the sizeof (void*): if 4 then use i386, and otherwise use x86_64.
+ case "$host_os" in
+ *darwin*10*)
+ AC_CHECK_SIZEOF(void*)
+ if test "$ac_cv_sizeof_voidp" = 4; then
+ cf_with_md_cpu="i386"
+ else
+ cf_with_md_cpu="x86_64"
+ fi
+ ;;
+ *)
+ cf_with_md_cpu="$host_cpu"
+ ;;
+ esac
+ fi
+ ])
case "$cf_with_md_cpu" in
x86 | i[[3-7]]86) MD_CPU=x86 MD_SUBCPU=x86 ;;
x86_64) MD_CPU=x86 MD_SUBCPU=x86_64 ;;
powerpc*) MD_CPU=powerpc ;;
- arm)
+ arm*)
_FIND_ARM_ISA
if test $is_armv5 = yes; then MD_CPU=armv5;
elif test $is_armv7_a = yes; then MD_CPU=armv7_a;