diff options
author | Yang Tse <yangsita@gmail.com> | 2009-10-27 16:38:42 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2009-10-27 16:38:42 +0000 |
commit | b2f430898053258622eebee3328f03441367a32c (patch) | |
tree | 5edb80da68f40d6f5fda70da1fa73c907cc0f4e9 /src | |
parent | 6a37135f4d56e89a85db50a38b800fd49eeafe3a (diff) |
Fix Pelles C Win32 target compilation issues
Diffstat (limited to 'src')
-rw-r--r-- | src/config-win32.h | 75 | ||||
-rw-r--r-- | src/main.c | 28 |
2 files changed, 81 insertions, 22 deletions
diff --git a/src/config-win32.h b/src/config-win32.h index 8311fe755..ccd589688 100644 --- a/src/config-win32.h +++ b/src/config-win32.h @@ -21,25 +21,34 @@ /* Define if you have the <locale.h> header file. */ #define HAVE_LOCALE_H 1 +/* Define if you need the malloc.h header file even with stdlib.h */ +#if !defined(__SALFORDC__) && !defined(__POCC__) +#define NEED_MALLOC_H 1 +#endif + /* Define if you have the <signal.h> header file. */ #define HAVE_SIGNAL_H 1 +/* Define if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + /* Define if you have the <sys/time.h> header file */ /* #define HAVE_SYS_TIME_H 1 */ /* Define if you have the <sys/types.h> header file. */ #define HAVE_SYS_TYPES_H 1 -/* Define if you have the <time.h> header file. */ -#define HAVE_TIME_H 1 - /* Define if you have the <sys/utime.h> header file. */ #ifndef __BORLANDC__ #define HAVE_SYS_UTIME_H 1 #endif +/* Define if you have the <time.h> header file. */ +#define HAVE_TIME_H 1 + /* Define if you have the <unistd.h> header file. */ -#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) +#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \ + defined(__POCC__) #define HAVE_UNISTD_H 1 #endif @@ -50,10 +59,14 @@ #define HAVE_WINSOCK_H 1 /* Define if you have the <winsock2.h> header file. */ +#ifndef __SALFORDC__ #define HAVE_WINSOCK2_H 1 +#endif /* Define if you have the <ws2tcpip.h> header file. */ +#ifndef __SALFORDC__ #define HAVE_WS2TCPIP_H 1 +#endif /* ---------------------------------------------------------------- */ /* OTHER HEADER INFO */ @@ -182,14 +195,16 @@ /* Define ssize_t if it is not an available 'typedefed' type */ #ifndef _SSIZE_T_DEFINED -#if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || defined(__POCC__) || \ - defined(__MINGW32__) -#elif defined(_WIN64) -#define ssize_t __int64 -#else -#define ssize_t int -#endif -#define _SSIZE_T_DEFINED +# if (defined(__WATCOMC__) && (__WATCOMC__ >= 1240)) || \ + defined(__POCC__) || \ + defined(__MINGW32__) +# elif defined(_WIN64) +# define _SSIZE_T_DEFINED +# define ssize_t __int64 +# else +# define _SSIZE_T_DEFINED +# define ssize_t int +# endif #endif /* ---------------------------------------------------------------- */ @@ -297,11 +312,25 @@ # endif #endif +/* When no build target is specified Pelles C 5.00 and later default build + target is Windows Vista. We override default target to be Windows 2000. */ +#if defined(__POCC__) && (__POCC__ >= 500) +# ifndef _WIN32_WINNT +# define _WIN32_WINNT 0x0500 +# endif +# ifndef WINVER +# define WINVER 0x0500 +# endif +#endif + /* Availability of freeaddrinfo, getaddrinfo and getnameinfo functions is - quite convoluted, compiler dependant and in some cases even build target - dependant. */ + quite convoluted, compiler dependent and even build target dependent. */ #if defined(HAVE_WS2TCPIP_H) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) +# if defined(__POCC__) +# define HAVE_FREEADDRINFO 1 +# define HAVE_GETADDRINFO 1 +# define HAVE_GETNAMEINFO 1 +# elif defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) # define HAVE_FREEADDRINFO 1 # define HAVE_GETADDRINFO 1 # define HAVE_GETNAMEINFO 1 @@ -312,6 +341,15 @@ # endif #endif +#if defined(__POCC__) +# ifndef _MSC_VER +# error Microsoft extensions /Ze compiler option is required +# endif +# ifndef __POCC__OLDNAMES +# error Compatibility names /Go compiler option is required +# endif +#endif + /* ---------------------------------------------------------------- */ /* LARGE FILE SUPPORT */ /* ---------------------------------------------------------------- */ @@ -328,6 +366,10 @@ # define USE_WIN32_LARGE_FILES #endif +#if defined(__POCC__) +# undef USE_WIN32_LARGE_FILES +#endif + #if !defined(USE_WIN32_LARGE_FILES) && !defined(USE_WIN32_SMALL_FILES) # define USE_WIN32_SMALL_FILES #endif @@ -344,5 +386,8 @@ /* Define to 1 if you want the built-in manual */ #define USE_MANUAL 1 +#if defined(__POCC__) +# define ENABLE_IPV6 1 +#endif #endif /* __SRC_CONFIG_WIN32_H */ diff --git a/src/main.c b/src/main.c index 4462b7d6e..fed1e1fcc 100644 --- a/src/main.c +++ b/src/main.c @@ -264,10 +264,12 @@ typedef enum { #ifdef WIN32 # include <direct.h> -# define F_OK 0 # define mkdir(x,y) (mkdir)(x) # undef PATH_MAX # define PATH_MAX MAX_PATH +# ifndef __POCC__ +# define F_OK 0 +# endif #endif /* @@ -407,18 +409,29 @@ char convert_char(curl_infotype infotype, char this_char) #endif /* CURL_DOES_CONVERSIONS */ #ifdef WIN32 -/* - * Truncate a file handle at a 64-bit position 'where'. - * Borland doesn't even support 64-bit types. - */ + #ifdef __BORLANDC__ -#define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence) + /* 64-bit lseek-like function unavailable */ +# define _lseeki64(hnd,ofs,whence) lseek(hnd,ofs,whence) +#endif + +#ifdef __POCC__ +# if (__POCC__ < 450) + /* 64-bit lseek-like function unavailable */ +# define _lseeki64(hnd,ofs,whence) _lseek(hnd,ofs,whence) +# else +# define _lseeki64(hnd,ofs,whence) _lseek64(hnd,ofs,whence) +# endif #endif #ifndef HAVE_FTRUNCATE #define HAVE_FTRUNCATE 1 #endif +/* + * Truncate a file handle at a 64-bit position 'where'. + */ + static int ftruncate64 (int fd, curl_off_t where) { if(_lseeki64(fd, where, SEEK_SET) < 0) @@ -430,7 +443,8 @@ static int ftruncate64 (int fd, curl_off_t where) return 0; } #define ftruncate(fd,where) ftruncate64(fd,where) -#endif + +#endif /* WIN32 */ typedef enum { TRACE_NONE, /* no trace/verbose output at all! */ |