/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _DECAF_UTIL_CONFIG_H_ #define _DECAF_UTIL_CONFIG_H_ #include #ifdef DECAF_DLL #ifdef DECAF_EXPORTS #define DECAF_API __declspec(dllexport) #else #define DECAF_API __declspec(dllimport) #endif #else #define DECAF_API #endif #ifndef NULL #define NULL 0 #endif /** * The purpose of this header is to try to detect the supported headers * of the platform when the ./configure script is not being used to generate * the config.h file. */ #if defined(HAVE_CONFIG_H) /* config.h is generated by the ./configure script and it only used by unix like systems. */ #include #else /* !defined(HAVE_CONFIG_H) */ /** * Not using ./configure script and make system.. chances are your using the native build tools * of Windows or OS X to do this build */ #if defined(_WIN32) #ifndef HAVE_OBJBASE_H #define HAVE_OBJBASE_H #endif #ifndef HAVE_RPCDCE_H #define HAVE_RPCDCE_H #endif #ifndef HAVE_WINSOCK2_H #define HAVE_WINSOCK2_H #endif #ifndef HAVE_STRUCT_ADDRINFO #define HAVE_STRUCT_ADDRINFO #endif #ifndef HAVE_SYS_TIMEB_H #define HAVE_SYS_TIMEB_H #endif #ifndef HAVE_FTIME #define HAVE_FTIME #endif #ifndef HAVE_WINDOWS_H #define HAVE_WINDOWS_H #endif #ifndef HAVE_PROCESS_H #define HAVE_PROCESS_H #endif #ifdef _NATIVE_WCHAR_T_DEFINED #define HAVE_WCHAR_T #endif #if defined(_MSC_VER) && _MSC_VER >= 1400 #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE #endif #pragma warning(disable: 4996) #pragma warning(disable: 4250) #pragma warning(disable: 4351) #pragma warning(disable: 4822) #endif #ifndef _SECURE_SCL #define _SECURE_SCL 1 #endif #ifndef _SCL_SECURE_NO_WARNINGS #define _SCL_SECURE_NO_WARNINGS 1 #endif /* * Has windows.h already been included? If so, our preferences don't matter, * but we will still need the winsock things no matter what was included. * If not, include a restricted set of windows headers to our tastes. */ #ifndef _WINDOWS_ #ifndef WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN #endif #ifndef _WIN32_WINNT /* * Restrict the server to a subset of Windows XP header files by default */ #define _WIN32_WINNT 0x0501 #endif #ifndef NOUSER #define NOUSER #endif #ifndef NOMCX #define NOMCX #endif #ifndef NOIME #define NOIME #endif #include /* * Add a _very_few_ declarations missing from the restricted set of headers * (If this list becomes extensive, re-enable the required headers above!) * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now */ #define SW_HIDE 0 #ifndef _WIN32_WCE #include #include #include #else #include #endif #endif /* !_WINDOWS_ */ #else #ifndef HAVE_UUID_UUID_H #define HAVE_UUID_UUID_H #endif #ifndef HAVE_UUID_T #define HAVE_UUID_T #endif #ifndef HAVE_PTHREAD_H #define HAVE_PTHREAD_H #endif #endif #endif /* !defined(HAVE_CONFIG_H) */ #ifdef __GNUC__ #define DECAF_UNUSED __attribute__ ((__unused__)) #else #define DECAF_UNUSED #endif #if defined(_WIN32) #define DECAF_STDCALL __stdcall #else #define DECAF_STDCALL #endif #endif /*_DECAF_UTIL_CONFIG_H_*/