+if test "x$host" != "x$target"; then
+ case "$target" in
+ powerpc64-ps3-linux-gnu)
+ TARGET=POWERPC64
+ arch_target=powerpc64
+ AC_DEFINE(TARGET_PS3, 1, [...])
+ AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+ # It would be better to just use TARGET_POWERPC64, but lots of code already
+ # uses this define
+ AC_DEFINE(__mono_ppc64__, 1, [...])
+ AC_DEFINE(__mono_ilp32__, 1, [64 bit mode with 4 byte longs and pointers])
+ sizeof_register=8
+ target_byte_order=G_BIG_ENDIAN
+ ;;
+
+ powerpc64-xbox360-linux-gnu)
+ TARGET=POWERPC64
+ arch_target=powerpc64
+ AC_DEFINE(TARGET_XBOX360, 1, [...])
+ AC_DEFINE(MONO_CROSS_COMPILE,1,[The runtime is compiled for cross-compiling mode])
+ # It would be better to just use TARGET_POWERPC64, but lots of code already
+ # uses this define
+ sizeof_register=8
+ target_byte_order=G_BIG_ENDIAN
+ ;;
+ *)
+ AC_MSG_ERROR([Cross compiling is only supported for targets matching 'powerpc64-{ps3,xbox360}-linux-gnu'])
+ esac
+fi
+
+# FIXME: Define the others as well
+case "$TARGET" in
+X86)
+ AC_DEFINE(TARGET_X86, 1, [...])
+ ;;
+AMD64)
+ AC_DEFINE(TARGET_AMD64, 1, [...])
+ ;;
+ARM)
+ AC_DEFINE(TARGET_ARM, 1, [...])
+ ;;
+POWERPC)
+ AC_DEFINE(TARGET_POWERPC, 1, [...])
+ ;;
+POWERPC64)
+ AC_DEFINE(TARGET_POWERPC, 1, [...])
+ AC_DEFINE(TARGET_POWERPC64, 1, [...])
+ ;;
+esac
+
+if test "x$sizeof_register" = "x4"; then
+ AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
+elif test "x$sizeof_register" = "x8"; then
+ AC_DEFINE(SIZEOF_REGISTER,8,[size of machine integer registers])
+else
+ AC_DEFINE(SIZEOF_REGISTER,SIZEOF_VOID_P,[size of machine integer registers])
+fi
+
+if test "x$target_byte_order" = "xG_BIG_ENDIAN"; then
+ AC_DEFINE(TARGET_BYTE_ORDER,G_BIG_ENDIAN,[byte order of target])
+elif test "x$target_byte_order" = "xG_LITTLE_ENDIAN"; then
+ AC_DEFINE(TARGET_BYTE_ORDER,G_LITTLE_ENDIAN,[byte order of target])
+else
+ AC_DEFINE(TARGET_BYTE_ORDER,G_BYTE_ORDER,[byte order of target])
+fi
+