mirror of
https://github.com/ioquake/ioq3.git
synced 2024-11-10 07:11:46 +00:00
* Use IPv6 header qcommon/wspiapi.h if it has been added by the end user
* Update README to explain the Windows XP requirement
This commit is contained in:
parent
60eb261185
commit
7edcc7d16a
3 changed files with 60 additions and 49 deletions
12
Makefile
12
Makefile
|
@ -423,14 +423,10 @@ ifeq ($(PLATFORM),mingw32)
|
|||
BASE_CFLAGS = -Wall -fno-strict-aliasing -Wimplicit -Wstrict-prototypes \
|
||||
-DUSE_ICON
|
||||
|
||||
# Require Windows XP or later
|
||||
#
|
||||
# IPv6 support requires a header wspiapi.h to work on earlier versions of
|
||||
# windows. There is no MinGW equivalent of this header so we're forced to
|
||||
# require XP. In theory this restriction can be removed if this header is
|
||||
# obtained separately from the platform SDK. The MSVC build does not have
|
||||
# this limitation.
|
||||
BASE_CFLAGS += -DWINVER=0x501
|
||||
# In the absence of wspiapi.h, require Windows XP or later
|
||||
ifeq ($(shell test -e $(CMDIR)/wspiapi.h; echo $$?),1)
|
||||
BASE_CFLAGS += -DWINVER=0x501
|
||||
endif
|
||||
|
||||
ifeq ($(USE_OPENAL),1)
|
||||
BASE_CFLAGS += -DUSE_OPENAL
|
||||
|
|
8
README
8
README
|
@ -433,6 +433,14 @@ PNG support
|
|||
|
||||
Restart GtkRadiant and PNG textures are now available.
|
||||
|
||||
Building with MinGW for pre Windows XP
|
||||
IPv6 support requires a header named "wspiapi.h" to abstract away from
|
||||
differences in earlier versions of Windows' IPv6 stack. There is no MinGW
|
||||
equivalent of this header and the Microsoft version is obviously not
|
||||
redistributable, so in its absence we're forced to require Windows XP.
|
||||
However if this header is acquired separately and placed in the qcommon/
|
||||
directory, this restriction is lifted.
|
||||
|
||||
|
||||
------------------------------------------------------------- Contributing -----
|
||||
|
||||
|
|
|
@ -24,61 +24,68 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
#include "../qcommon/qcommon.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#if WINVER < 0x501
|
||||
#include <wspiapi.h>
|
||||
#else
|
||||
#include <ws2spi.h>
|
||||
#endif
|
||||
# include <winsock2.h>
|
||||
# include <ws2tcpip.h>
|
||||
# if WINVER < 0x501
|
||||
# ifdef __MINGW32__
|
||||
// wspiapi.h isn't available on MinGW, so if it's
|
||||
// present it's because the end user has added it
|
||||
// and we should look for it in our tree
|
||||
# include "wspiapi.h"
|
||||
# else
|
||||
# include <wspiapi.h>
|
||||
# endif
|
||||
# else
|
||||
# include <ws2spi.h>
|
||||
# endif
|
||||
|
||||
typedef int socklen_t;
|
||||
#ifdef ADDRESS_FAMILY
|
||||
#define sa_family_t ADDRESS_FAMILY
|
||||
#else
|
||||
# ifdef ADDRESS_FAMILY
|
||||
# define sa_family_t ADDRESS_FAMILY
|
||||
# else
|
||||
typedef unsigned short sa_family_t;
|
||||
#endif
|
||||
# endif
|
||||
|
||||
#define EAGAIN WSAEWOULDBLOCK
|
||||
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
||||
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||
#define ECONNRESET WSAECONNRESET
|
||||
#define socketError WSAGetLastError( )
|
||||
# define EAGAIN WSAEWOULDBLOCK
|
||||
# define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
||||
# define EAFNOSUPPORT WSAEAFNOSUPPORT
|
||||
# define ECONNRESET WSAECONNRESET
|
||||
# define socketError WSAGetLastError( )
|
||||
|
||||
static WSADATA winsockdata;
|
||||
static qboolean winsockInitialized = qfalse;
|
||||
|
||||
#else
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
|
||||
// needed for socklen_t on OSX 10.2
|
||||
# define _BSD_SOCKLEN_T_
|
||||
#endif
|
||||
# if MAC_OS_X_VERSION_MIN_REQUIRED == 1020
|
||||
// needed for socklen_t on OSX 10.2
|
||||
# define _BSD_SOCKLEN_T_
|
||||
# endif
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#include <errno.h>
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
#if !defined(__sun) && !defined(__sgi)
|
||||
#include <ifaddrs.h>
|
||||
#endif
|
||||
# include <arpa/inet.h>
|
||||
# include <errno.h>
|
||||
# include <netdb.h>
|
||||
# include <netinet/in.h>
|
||||
# include <sys/socket.h>
|
||||
# include <net/if.h>
|
||||
# include <sys/ioctl.h>
|
||||
# include <sys/types.h>
|
||||
# include <sys/time.h>
|
||||
# include <unistd.h>
|
||||
# if !defined(__sun) && !defined(__sgi)
|
||||
# include <ifaddrs.h>
|
||||
# endif
|
||||
|
||||
#ifdef __sun
|
||||
#include <sys/filio.h>
|
||||
#endif
|
||||
# ifdef __sun
|
||||
# include <sys/filio.h>
|
||||
# endif
|
||||
|
||||
typedef int SOCKET;
|
||||
#define INVALID_SOCKET -1
|
||||
#define SOCKET_ERROR -1
|
||||
#define closesocket close
|
||||
#define ioctlsocket ioctl
|
||||
#define socketError errno
|
||||
# define INVALID_SOCKET -1
|
||||
# define SOCKET_ERROR -1
|
||||
# define closesocket close
|
||||
# define ioctlsocket ioctl
|
||||
# define socketError errno
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue