configure: Add option for overriding the floating point ABI on ARM platforms.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c81de726f2
commit
364e04ce0c
|
@ -829,6 +829,7 @@ with_coreaudio
|
|||
with_cups
|
||||
with_curses
|
||||
with_dbus
|
||||
with_float_abi
|
||||
with_fontconfig
|
||||
with_freetype
|
||||
with_gettext
|
||||
|
@ -2388,6 +2389,7 @@ Optional Packages:
|
|||
--without-cups do not use CUPS
|
||||
--without-curses do not use (n)curses
|
||||
--without-dbus do not use DBus (dynamic device support)
|
||||
--with-float-abi=abi specify the ABI (soft|softfp|hard) for ARM platforms
|
||||
--without-fontconfig do not use fontconfig
|
||||
--without-freetype do not use the FreeType library
|
||||
--without-gettext do not use gettext
|
||||
|
@ -3545,6 +3547,12 @@ if test "${with_dbus+set}" = set; then :
|
|||
fi
|
||||
|
||||
|
||||
# Check whether --with-float-abi was given.
|
||||
if test "${with_float_abi+set}" = set; then :
|
||||
withval=$with_float_abi;
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --with-fontconfig was given.
|
||||
if test "${with_fontconfig+set}" = set; then :
|
||||
withval=$with_fontconfig;
|
||||
|
@ -5263,12 +5271,20 @@ $as_echo "no" >&6; }
|
|||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
CFLAGS="$CFLAGS -marm"
|
||||
TARGETFLAGS="-marm"
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports floating point" >&5
|
||||
$as_echo_n "checking whether $CC supports floating point... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
case $with_float_abi in
|
||||
soft|softfp|hard)
|
||||
float_abi=$with_float_abi ;;
|
||||
*)
|
||||
case $host_os in
|
||||
*eabihf)
|
||||
float_abi=hard ;;
|
||||
*)
|
||||
float_abi=softfp
|
||||
saved_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS -marm -mfloat-abi=$float_abi"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -mfloat-abi=$float_abi" >&5
|
||||
$as_echo_n "checking whether $CC supports -mfloat-abi=$float_abi... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
int
|
||||
|
@ -5285,10 +5301,18 @@ $as_echo "yes" >&6; }
|
|||
else
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
as_fn_error $? "You need a target with floating point support to build Wine for ARM." "$LINENO" 5
|
||||
float_abi=soft
|
||||
as_fn_append wine_warnings "|Floating point is not supported for this target. The resulting build won't be compatible with Windows ARM binaries."
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
CFLAGS=$saved_CFLAGS
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
CFLAGS="$CFLAGS -marm -mfloat-abi=$float_abi"
|
||||
TARGETFLAGS="-marm -mfloat-abi=$float_abi"
|
||||
|
||||
;;
|
||||
i[3456789]86*)
|
||||
enable_win16=${enable_win16:-yes}
|
||||
|
|
31
configure.ac
31
configure.ac
|
@ -43,6 +43,7 @@ AC_ARG_WITH(cups, AS_HELP_STRING([--without-cups],[do not use CUPS]))
|
|||
AC_ARG_WITH(curses, AS_HELP_STRING([--without-curses],[do not use (n)curses]),
|
||||
[if test "x$withval" = "xno"; then ac_cv_header_ncurses_h=no; ac_cv_header_curses_h=no; fi])
|
||||
AC_ARG_WITH(dbus, AS_HELP_STRING([--without-dbus],[do not use DBus (dynamic device support)]))
|
||||
AC_ARG_WITH(float-abi, AS_HELP_STRING([--with-float-abi=abi],[specify the ABI (soft|softfp|hard) for ARM platforms]))
|
||||
AC_ARG_WITH(fontconfig,AS_HELP_STRING([--without-fontconfig],[do not use fontconfig]))
|
||||
AC_ARG_WITH(freetype, AS_HELP_STRING([--without-freetype],[do not use the FreeType library]))
|
||||
AC_ARG_WITH(gettext, AS_HELP_STRING([--without-gettext],[do not use gettext]))
|
||||
|
@ -177,13 +178,29 @@ case $host in
|
|||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([You need a target with Thumb support to build Wine for ARM.])])
|
||||
CFLAGS="$CFLAGS -marm"
|
||||
AC_SUBST(TARGETFLAGS,"-marm")
|
||||
AC_MSG_CHECKING([whether $CC supports floating point])
|
||||
WINE_TRY_ASM_LINK(["vmrs r2,fpscr"],,,
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([You need a target with floating point support to build Wine for ARM.])])
|
||||
case $with_float_abi in
|
||||
soft|softfp|hard)
|
||||
float_abi=$with_float_abi ;;
|
||||
*)
|
||||
case $host_os in
|
||||
*eabihf)
|
||||
float_abi=hard ;;
|
||||
*)
|
||||
float_abi=softfp
|
||||
saved_CFLAGS=$CFLAGS
|
||||
CFLAGS="$CFLAGS -marm -mfloat-abi=$float_abi"
|
||||
AC_MSG_CHECKING([whether $CC supports -mfloat-abi=$float_abi])
|
||||
WINE_TRY_ASM_LINK(["vmrs r2,fpscr"],,,
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
float_abi=soft
|
||||
WINE_WARNING([Floating point is not supported for this target. The resulting build won't be compatible with Windows ARM binaries.])])
|
||||
CFLAGS=$saved_CFLAGS
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
CFLAGS="$CFLAGS -marm -mfloat-abi=$float_abi"
|
||||
AC_SUBST(TARGETFLAGS,"-marm -mfloat-abi=$float_abi")
|
||||
;;
|
||||
i[[3456789]]86*)
|
||||
enable_win16=${enable_win16:-yes}
|
||||
|
|
Loading…
Reference in New Issue