X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=windows%2Fconfig-compiler.h;h=bd453134d6fc8147ed5b1adf857b17acefc28dc6;hp=fbc199f9681256683e12021cb104eff0b0cc3cec;hb=cb555a94fa5188122569ed3803c463f27ccd0261;hpb=2c9ffa506ae934f40a3bb13897a995078f4be7af diff --git a/windows/config-compiler.h b/windows/config-compiler.h index fbc199f9..bd453134 100644 --- a/windows/config-compiler.h +++ b/windows/config-compiler.h @@ -1,11 +1,11 @@ /* Support for various Windows compilation environments. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GNU Wget. GNU Wget is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Wget is distributed in the hope that it will be useful, @@ -14,18 +14,18 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Wget; if not, write to the Free Software Foundation, Inc., -51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +along with Wget. If not, see . -In addition, as a special exception, the Free Software Foundation -gives permission to link the code of its release of Wget with the -OpenSSL project's "OpenSSL" library (or with modified versions of it -that use the same license as the "OpenSSL" library), and distribute -the linked executables. You must obey the GNU General Public License -in all respects for all of the code used other than "OpenSSL". If you -modify this file, you may extend this exception to your version of the -file, but you are not obligated to do so. If you do not wish to do -so, delete this exception statement from your version. */ +Additional permission under GNU GPL version 3 section 7 + +If you modify this program, or any covered work, by linking or +combining it with the OpenSSL project's OpenSSL library (or a +modified version of that library), containing parts covered by the +terms of the OpenSSL or SSLeay licenses, the Free Software Foundation +grants you additional permission to convey the resulting work. +Corresponding Source for a non-source form of such a combination +shall include the source code for the parts of OpenSSL used as well +as that of the covered work. */ /* This file contains information about various compilers used to @@ -45,10 +45,6 @@ so, delete this exception statement from your version. */ contains most of the explanatory comments. Things that apply to *all* compilers, as well as things that are specific to Wget, belong in src/mswindows.h. */ - -/* For all compilers: must include *before* redefining - stat. */ -#include /* -------------------- */ /* MinGW (GCC) section. */ @@ -60,10 +56,11 @@ so, delete this exception statement from your version. */ #define LL(n) n##LL /* Transparently support statting large files, like POSIX's LFS API - does. All Windows compilers we support use _stati64 (but have - different names for 2nd argument type, see below), so we use - that. */ -#define stat(fname, buf) _stati64 (fname, buf) + does, by aliasing stat and fstat to their equivalents that do LFS. + Most Windows compilers we support use _stati64 (but have different + names for 2nd argument type, see below), so we use that. */ +#define stat_alias _stati64 +#define fstat_alias _fstati64 /* On Windows the 64-bit stat requires an explicitly different type for the 2nd argument, so we define a struct_stat macro that expands @@ -81,14 +78,28 @@ so, delete this exception statement from your version. */ /* MinGW 3.7 (or older) prototypes gai_strerror(), but is missing from all import libraries. */ #ifdef ENABLE_IPV6 -# undef gai_strerror -# define gai_strerror windows_strerror +# define NEED_GAI_STRERROR #endif /* MinGW and GCC support some POSIX and C99 features. */ -#define HAVE__BOOL 1 #define HAVE_INTTYPES_H 1 +#define HAVE_STDINT_H 1 + +#define HAVE__BOOL 1 +#undef SIZEOF_LONG_LONG /* avoid redefinition warning */ +#define SIZEOF_LONG_LONG 8 +#define HAVE_INTPTR_T 1 +#define HAVE_UINTPTR_T 1 #define HAVE_STRTOLL 1 + +/* MingW needs _WIN32_WINNT==0x0501 defined to pull in getaddrinfo() + * and freeaddrinfo() etc. + */ +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0501) +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 +#endif + /* -------------------- */ /* MS Visual C section. */ @@ -99,7 +110,8 @@ so, delete this exception statement from your version. */ #define LL(n) n##I64 -#define stat(fname, buf) _stati64 (fname, buf) +#define stat_alias _stati64 +#define fstat_alias _fstati64 #define struct_stat struct _stati64 #define struct_fstat struct _stati64 @@ -108,6 +120,21 @@ so, delete this exception statement from your version. */ #if _MSC_VER >= 1300 # define HAVE__STRTOI64 1 #endif + +#if _MSC_VER >= 1310 +#define HAVE_INTPTR_T 1 +#define HAVE_UINTPTR_T 1 +#endif + +#if _MSC_VER >= 1400 +#pragma warning ( disable : 4996 ) +#define _CRT_SECURE_NO_DEPRECATE +#define _CRT_SECURE_NO_WARNINGS +#endif + + +#undef HAVE_UTIME_H /* no */ + /* ------------------ */ /* Borland C section. */ @@ -117,9 +144,11 @@ so, delete this exception statement from your version. */ #define OS_TYPE "Windows-Borland" #define LL(n) n##I64 -#define stat(fname, buf) _stati64 (fname, buf) + +#define stat_alias _stati64 +#undef fstat_alias #define struct_stat struct stati64 -#define struct_fstat struct stat +#undef struct_fstat /* ------------------------------ */ /* Digital Mars Compiler section. */ @@ -132,7 +161,8 @@ so, delete this exception statement from your version. */ /* DMC supports 64-bit types, including long long, but not statting large files. */ -#undef stat +#undef stat_alias +#undef fstat_alias /* If left undefined, sysdep.h will define these to struct stat. */ #undef struct_stat #undef struct_fstat @@ -145,12 +175,61 @@ so, delete this exception statement from your version. */ #define HAVE_STDBOOL_H 1 #define HAVE_UINT32_T 1 -#undef SIZEOF_LONG_LONG /* avoid redefinition warning */ +#define HAVE_UINTPTR_T 1 +#define HAVE_INTPTR_T 1 + +#undef SIZEOF_LONG_LONG #define SIZEOF_LONG_LONG 8 #define HAVE__BOOL 1 #define HAVE_USLEEP 1 #define HAVE_STRTOLL 1 +#undef HAVE_UTIME_H /* no */ + + +/* -------------------- */ +/* OpenWatcom section. */ +/* -------------------- */ +#elif defined __WATCOMC__ + +#define OS_TYPE "Windows-Watcom" + +#define LL(n) n##LL + +#define stat_alias _stati64 +#define fstat_alias _fstati64 +#define struct_stat struct _stati64 +#define struct_fstat struct _stati64 + +#ifdef ENABLE_IPV6 +# define NEED_GAI_STRERROR +#endif + +#define HAVE_STDINT_H 1 +#define HAVE_INTTYPES_H 1 + +/* OpenWatcom 1.6 do have , but definition of '_Bool' is missing! */ +/* This was fixed in OpenWatcom 1.7 */ +#if __WATCOMC__ >= 1270 +#define HAVE_STDBOOL_H 1 +#define HAVE__BOOL 1 +#endif + +#define HAVE_STRTOLL 1 +#define HAVE_UINT32_T 1 +#undef HAVE_UTIME_H +#undef socklen_t /* avoid clash with */ + +#undef SIZEOF_LONG_LONG +#define SIZEOF_LONG_LONG 8 + +/* OpenWatcom needs _WIN32_WINNT==0x0501 defined to pull in getaddrinfo() + * and freeaddrinfo() etc. + */ +#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0501) +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 +#endif #else