build: move platform stuff to ares_platform.c and ares_platform.h

This commit is contained in:
Yang Tse 2011-03-24 11:31:50 +01:00
parent bd066ab8ef
commit 5b6a188909
9 changed files with 110 additions and 53 deletions

View File

@ -29,6 +29,7 @@ CSOURCES = ares__close_sockets.c \
ares_parse_ptr_reply.c \ ares_parse_ptr_reply.c \
ares_parse_srv_reply.c \ ares_parse_srv_reply.c \
ares_parse_txt_reply.c \ ares_parse_txt_reply.c \
ares_platform.c \
ares_process.c \ ares_process.c \
ares_query.c \ ares_query.c \
ares_search.c \ ares_search.c \
@ -53,6 +54,7 @@ HHEADERS = ares.h \
ares_library_init.h \ ares_library_init.h \
ares_llist.h \ ares_llist.h \
ares_nowarn.h \ ares_nowarn.h \
ares_platform.h \
ares_private.h \ ares_private.h \
ares_rules.h \ ares_rules.h \
ares_strcasecmp.h \ ares_strcasecmp.h \

View File

@ -42,6 +42,7 @@
#include "ares.h" #include "ares.h"
#include "inet_net_pton.h" #include "inet_net_pton.h"
#include "ares_platform.h"
#include "ares_private.h" #include "ares_private.h"
#ifdef WATT32 #ifdef WATT32

View File

@ -48,6 +48,7 @@
#include "ares.h" #include "ares.h"
#include "inet_net_pton.h" #include "inet_net_pton.h"
#include "bitncmp.h" #include "bitncmp.h"
#include "ares_platform.h"
#include "ares_private.h" #include "ares_private.h"
#ifdef WATT32 #ifdef WATT32

View File

@ -67,6 +67,7 @@
#include "inet_net_pton.h" #include "inet_net_pton.h"
#include "ares_library_init.h" #include "ares_library_init.h"
#include "ares_nowarn.h" #include "ares_nowarn.h"
#include "ares_platform.h"
#include "ares_private.h" #include "ares_private.h"
#ifdef ANDROID #ifdef ANDROID

61
ares_platform.c Normal file
View File

@ -0,0 +1,61 @@
/* Copyright 1998 by the Massachusetts Institute of Technology.
*
* Permission to use, copy, modify, and distribute this
* software and its documentation for any purpose and without
* fee is hereby granted, provided that the above copyright
* notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
* M.I.T. makes no representations about the suitability of
* this software for any purpose. It is provided "as is"
* without express or implied warranty.
*/
#include "ares_setup.h"
#include "ares_platform.h"
#if defined(WIN32) && !defined(MSDOS)
#define V_PLATFORM_WIN32s 0
#define V_PLATFORM_WIN32_WINDOWS 1
#define V_PLATFORM_WIN32_NT 2
#define V_PLATFORM_WIN32_CE 3
win_platform getplatform(void)
{
OSVERSIONINFOEX OsvEx;
memset(&OsvEx, 0, sizeof(OsvEx));
OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (!GetVersionEx((void *)&OsvEx))
{
memset(&OsvEx, 0, sizeof(OsvEx));
OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx((void *)&OsvEx))
return WIN_UNKNOWN;
}
switch(OsvEx.dwPlatformId)
{
case V_PLATFORM_WIN32s:
return WIN_3X;
case V_PLATFORM_WIN32_WINDOWS:
return WIN_9X;
case V_PLATFORM_WIN32_NT:
return WIN_NT;
case V_PLATFORM_WIN32_CE:
return WIN_CE;
default:
return WIN_UNKNOWN;
}
}
#endif

36
ares_platform.h Normal file
View File

@ -0,0 +1,36 @@
#ifndef HEADER_CARES_PLATFORM_H
#define HEADER_CARES_PLATFORM_H
/* Copyright 1998 by the Massachusetts Institute of Technology.
*
* Permission to use, copy, modify, and distribute this
* software and its documentation for any purpose and without
* fee is hereby granted, provided that the above copyright
* notice appear in all copies and that both that copyright
* notice and this permission notice appear in supporting
* documentation, and that the name of M.I.T. not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
* M.I.T. makes no representations about the suitability of
* this software for any purpose. It is provided "as is"
* without express or implied warranty.
*/
#include "ares_setup.h"
#if defined(WIN32) && !defined(MSDOS)
typedef enum {
WIN_UNKNOWN,
WIN_3X,
WIN_9X,
WIN_NT,
WIN_CE
} win_platform;
extern win_platform getplatform(void);
#endif
#endif /* HEADER_CARES_PLATFORM_H */

View File

@ -344,20 +344,6 @@ long ares__tvdiff(struct timeval t1, struct timeval t2);
(c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \ (c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \
} while (0) } while (0)
#if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS)
typedef enum {
WIN_UNKNOWN,
WIN_3X,
WIN_9X,
WIN_NT,
WIN_CE
} win_platform;
win_platform getplatform(void);
#endif
#ifdef CURLDEBUG #ifdef CURLDEBUG
/* This is low-level hard-hacking memory leak tracking and similar. Using the /* This is low-level hard-hacking memory leak tracking and similar. Using the
libcurl lowlevel code from within library is ugly and only works when libcurl lowlevel code from within library is ugly and only works when

View File

@ -270,6 +270,10 @@ SOURCE=..\..\ares_parse_txt_reply.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\ares_platform.c
# End Source File
# Begin Source File
SOURCE=..\..\ares_process.c SOURCE=..\..\ares_process.c
# End Source File # End Source File
# Begin Source File # Begin Source File
@ -366,6 +370,10 @@ SOURCE=..\..\ares_nowarn.h
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=..\..\ares_platform.h
# End Source File
# Begin Source File
SOURCE=..\..\ares_private.h SOURCE=..\..\ares_private.h
# End Source File # End Source File
# Begin Source File # Begin Source File

View File

@ -1,6 +1,5 @@
#include "ares_setup.h" #include "ares_setup.h"
#include "ares_private.h"
/* only do the following on windows /* only do the following on windows
*/ */
@ -20,42 +19,4 @@ WINAPI DllMain (HINSTANCE hnd, DWORD reason, LPVOID reserved)
} }
#endif #endif
#define V_PLATFORM_WIN32s 0
#define V_PLATFORM_WIN32_WINDOWS 1
#define V_PLATFORM_WIN32_NT 2
#define V_PLATFORM_WIN32_CE 3
win_platform getplatform(void)
{
OSVERSIONINFOEX OsvEx;
memset(&OsvEx, 0, sizeof(OsvEx));
OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if (!GetVersionEx((void *)&OsvEx))
{
memset(&OsvEx, 0, sizeof(OsvEx));
OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx((void *)&OsvEx))
return WIN_UNKNOWN;
}
switch(OsvEx.dwPlatformId)
{
case V_PLATFORM_WIN32s:
return WIN_3X;
case V_PLATFORM_WIN32_WINDOWS:
return WIN_9X;
case V_PLATFORM_WIN32_NT:
return WIN_NT;
case V_PLATFORM_WIN32_CE:
return WIN_CE;
default:
return WIN_UNKNOWN;
}
}
#endif /* WIN32 builds only */ #endif /* WIN32 builds only */