Fix building wxQt under HaikuOS and make it default

Recognize HaikuOS and work around several platforms with socket-related
functions there.

Also make wxQt the default port under this platform.

See #9168.
This commit is contained in:
mill-j
2018-07-31 18:41:39 +02:00
committed by Vadim Zeitlin
parent 49e20a961d
commit 148079c618
4 changed files with 175 additions and 12 deletions

View File

@@ -385,7 +385,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
;; ;;
powerpc-apple-macos* | \ powerpc-apple-macos* | \
*-*-freebsd* | *-*-openbsd* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \ *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \
*-*-mirbsd* | \ *-*-mirbsd* | \
*-*-sunos4* | \ *-*-sunos4* | \
*-*-osf* | \ *-*-osf* | \
@@ -435,7 +435,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
SONAME_FLAG= SONAME_FLAG=
case "${BAKEFILE_HOST}" in case "${BAKEFILE_HOST}" in
*-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \ *-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | \
*-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* ) *-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* )
if test "x$SUNCXX" = "xyes"; then if test "x$SUNCXX" = "xyes"; then
SONAME_FLAG="-h " SONAME_FLAG="-h "

126
configure vendored
View File

@@ -3807,6 +3807,7 @@ USE_OSF= USE_SGI=
USE_SOLARIS= USE_SUN= USE_SUNOS= USE_SVR4= USE_SYSV= USE_VMS= USE_SOLARIS= USE_SUN= USE_SUNOS= USE_SVR4= USE_SYSV= USE_VMS=
USE_ULTRIX= USE_ULTRIX=
USE_UNIXWARE= USE_UNIXWARE=
USE_HAIKU=
USE_ALPHA= USE_ALPHA=
@@ -4022,6 +4023,13 @@ case "${host}" in
;; ;;
*-*-haiku* )
USE_HAIKU=1
$as_echo "#define __HAIKU__ 1" >>confdefs.h
DEFAULT_DEFAULT_wxUSE_QT=1
;;
*) *)
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** System type ${host} is unknown, assuming generic Unix and continuing nevertheless." >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** System type ${host} is unknown, assuming generic Unix and continuing nevertheless." >&5
$as_echo "$as_me: WARNING: *** System type ${host} is unknown, assuming generic Unix and continuing nevertheless." >&2;} $as_echo "$as_me: WARNING: *** System type ${host} is unknown, assuming generic Unix and continuing nevertheless." >&2;}
@@ -32013,6 +32021,50 @@ fi
$as_echo "$ac_cv_lib_socket_inet_addr" >&6; } $as_echo "$ac_cv_lib_socket_inet_addr" >&6; }
if test "x$ac_cv_lib_socket_inet_addr" = xyes; then : if test "x$ac_cv_lib_socket_inet_addr" = xyes; then :
INET_LINK="socket" INET_LINK="socket"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_addr in -lnetwork" >&5
$as_echo_n "checking for inet_addr in -lnetwork... " >&6; }
if ${ac_cv_lib_network_inet_addr+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnetwork $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char inet_addr ();
int
main ()
{
return inet_addr ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_network_inet_addr=yes
else
ac_cv_lib_network_inet_addr=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_inet_addr" >&5
$as_echo "$ac_cv_lib_network_inet_addr" >&6; }
if test "x$ac_cv_lib_network_inet_addr" = xyes; then :
INET_LINK="network"
fi
fi fi
@@ -33454,6 +33506,18 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "x$ac_cv_func_gethostbyname" = xyes; then : if test "x$ac_cv_func_gethostbyname" = xyes; then :
$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h $as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
else
case "${host}" in
*-*-haiku* )
$as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Defining HAVE_GETHOSTBYNAME unconditionally under ${host}." >&5
$as_echo "$as_me: WARNING: Defining HAVE_GETHOSTBYNAME unconditionally under ${host}." >&2;}
;;
esac
fi fi
fi fi
@@ -33582,6 +33646,18 @@ if test "x$ac_cv_func_getservbyname" = xyes; then :
_ACEOF _ACEOF
$as_echo "#define HAVE_GETSERVBYNAME 1" >>confdefs.h $as_echo "#define HAVE_GETSERVBYNAME 1" >>confdefs.h
else
case "${host}" in
*-*-haiku* )
$as_echo "#define HAVE_GETSERVBYNAME 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Defining HAVE_GETSERVBYNAME unconditionally under ${host}." >&5
$as_echo "$as_me: WARNING: Defining HAVE_GETSERVBYNAME unconditionally under ${host}." >&2;}
;;
esac
fi fi
done done
@@ -36140,6 +36216,48 @@ if test "x$ac_cv_lib_socket_socket" = xyes; then :
fi fi
else else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lnetwork" >&5
$as_echo_n "checking for socket in -lnetwork... " >&6; }
if ${ac_cv_lib_network_socket+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnetwork $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char socket ();
int
main ()
{
return socket ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_network_socket=yes
else
ac_cv_lib_network_socket=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_network_socket" >&5
$as_echo "$ac_cv_lib_network_socket" >&6; }
if test "x$ac_cv_lib_network_socket" = xyes; then :
if test "$INET_LINK" != " -lnetwork"; then
INET_LINK="$INET_LINK -lnetwork"
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: socket library not found - sockets will be disabled" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: socket library not found - sockets will be disabled" >&5
$as_echo "$as_me: WARNING: socket library not found - sockets will be disabled" >&2;} $as_echo "$as_me: WARNING: socket library not found - sockets will be disabled" >&2;}
wxUSE_SOCKETS=no wxUSE_SOCKETS=no
@@ -36149,6 +36267,10 @@ fi
fi
fi fi
fi fi
@@ -40090,7 +40212,7 @@ fi
;; ;;
powerpc-apple-macos* | \ powerpc-apple-macos* | \
*-*-freebsd* | *-*-openbsd* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \ *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \
*-*-mirbsd* | \ *-*-mirbsd* | \
*-*-sunos4* | \ *-*-sunos4* | \
*-*-osf* | \ *-*-osf* | \
@@ -40130,7 +40252,7 @@ fi
SONAME_FLAG= SONAME_FLAG=
case "${BAKEFILE_HOST}" in case "${BAKEFILE_HOST}" in
*-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \ *-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | \
*-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* ) *-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* )
if test "x$SUNCXX" = "xyes"; then if test "x$SUNCXX" = "xyes"; then
SONAME_FLAG="-h " SONAME_FLAG="-h "

View File

@@ -87,6 +87,7 @@ USE_SYSV= dnl any System V
USE_VMS= USE_VMS=
USE_ULTRIX= USE_ULTRIX=
USE_UNIXWARE= USE_UNIXWARE=
USE_HAIKU=
dnl hardware platform dnl hardware platform
USE_ALPHA= USE_ALPHA=
@@ -294,6 +295,12 @@ case "${host}" in
AC_DEFINE(__BEOS__) AC_DEFINE(__BEOS__)
;; ;;
*-*-haiku* )
USE_HAIKU=1
AC_DEFINE(__HAIKU__)
DEFAULT_DEFAULT_wxUSE_QT=1
;;
*) *)
AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.]) AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.])
AC_MSG_WARN([*** Please report the build results to wx-dev@googlegroups.com.]) AC_MSG_WARN([*** Please report the build results to wx-dev@googlegroups.com.])
@@ -4483,7 +4490,7 @@ fi
WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT]) WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
dnl check for inet_addr and inet_aton (these may live either in libc, or in dnl check for inet_addr and inet_aton (these may live either in libc, or in
dnl libnsl or libresolv or libsocket) dnl libnsl or libresolv or libsocket or libnetwork under Haiku)
INET_LINK= INET_LINK=
AC_CHECK_FUNCS(inet_addr, AC_CHECK_FUNCS(inet_addr,
AC_DEFINE(HAVE_INET_ADDR), AC_DEFINE(HAVE_INET_ADDR),
@@ -4495,7 +4502,12 @@ AC_CHECK_FUNCS(inet_addr,
INET_LINK="resolv", INET_LINK="resolv",
[ [
AC_CHECK_LIB(socket, inet_addr, AC_CHECK_LIB(socket, inet_addr,
INET_LINK="socket" INET_LINK="socket",
[
AC_CHECK_LIB(network, inet_addr,
INET_LINK="network"
)
]
) )
] ]
) )
@@ -5043,7 +5055,17 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
AX_FUNC_WHICH_GETHOSTBYNAME_R AX_FUNC_WHICH_GETHOSTBYNAME_R
if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \ if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
"x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ]) AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ],
[
dnl Under HaikuOS it is not yet detected
case "${host}" in
*-*-haiku* )
AC_DEFINE(HAVE_GETHOSTBYNAME)
AC_MSG_WARN([Defining HAVE_GETHOSTBYNAME unconditionally under ${host}.])
;;
esac
]
)
fi fi
dnl A similar test for getservbyname_r dnl A similar test for getservbyname_r
dnl I'm tempted to just not do this test which is taking much time and dnl I'm tempted to just not do this test which is taking much time and
@@ -5052,7 +5074,17 @@ dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
AC_raf_FUNC_WHICH_GETSERVBYNAME_R AC_raf_FUNC_WHICH_GETSERVBYNAME_R
if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \ if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
"x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ]) AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ],
[
dnl Under HaikuOS it is not yet detected
case "${host}" in
*-*-haiku* )
AC_DEFINE(HAVE_GETSERVBYNAME)
AC_MSG_WARN([Defining HAVE_GETSERVBYNAME unconditionally under ${host}.])
;;
esac
]
)
fi fi
dnl For gethostbyaddr_r, we currently do no separate test, instead, we dnl For gethostbyaddr_r, we currently do no separate test, instead, we
dnl silently assume it's available exactly if gethostbyname_r is dnl silently assume it's available exactly if gethostbyname_r is
@@ -6082,6 +6114,12 @@ if test "$wxUSE_SOCKETS" = "yes"; then
if test "$INET_LINK" != " -lsocket"; then if test "$INET_LINK" != " -lsocket"; then
INET_LINK="$INET_LINK -lsocket" INET_LINK="$INET_LINK -lsocket"
fi, fi,
[
dnl under Haiku, socket is in libnetwork
AC_CHECK_LIB(network, socket,
if test "$INET_LINK" != " -lnetwork"; then
INET_LINK="$INET_LINK -lnetwork"
fi,
[ [
AC_MSG_WARN([socket library not found - sockets will be disabled]) AC_MSG_WARN([socket library not found - sockets will be disabled])
wxUSE_SOCKETS=no wxUSE_SOCKETS=no
@@ -6089,6 +6127,8 @@ if test "$wxUSE_SOCKETS" = "yes"; then
) )
] ]
) )
]
)
fi fi
fi fi

View File

@@ -95,6 +95,7 @@ All:
- Add wxLZMA{Input,Output}Stream classes using external liblzma. - Add wxLZMA{Input,Output}Stream classes using external liblzma.
- Make wxList and wxVector iterators conform to input iterator requirements. - Make wxList and wxVector iterators conform to input iterator requirements.
- Fix MT-safety problem when reading and writing from wxSocket (jkubalik). - Fix MT-safety problem when reading and writing from wxSocket (jkubalik).
- Fix build issues under HaikuOS (mill-j).
All (GUI): All (GUI):