1*cc02d7e2SAndroid Build Coastguard Worker #ifndef __CARES_BUILD_H 2*cc02d7e2SAndroid Build Coastguard Worker #define __CARES_BUILD_H 3*cc02d7e2SAndroid Build Coastguard Worker 4*cc02d7e2SAndroid Build Coastguard Worker 5*cc02d7e2SAndroid Build Coastguard Worker /* Copyright (C) 2009 - 2013 by Daniel Stenberg et al 6*cc02d7e2SAndroid Build Coastguard Worker * 7*cc02d7e2SAndroid Build Coastguard Worker * Permission to use, copy, modify, and distribute this software and its 8*cc02d7e2SAndroid Build Coastguard Worker * documentation for any purpose and without fee is hereby granted, provided 9*cc02d7e2SAndroid Build Coastguard Worker * that the above copyright notice appear in all copies and that both that 10*cc02d7e2SAndroid Build Coastguard Worker * copyright notice and this permission notice appear in supporting 11*cc02d7e2SAndroid Build Coastguard Worker * documentation, and that the name of M.I.T. not be used in advertising or 12*cc02d7e2SAndroid Build Coastguard Worker * publicity pertaining to distribution of the software without specific, 13*cc02d7e2SAndroid Build Coastguard Worker * written prior permission. M.I.T. makes no representations about the 14*cc02d7e2SAndroid Build Coastguard Worker * suitability of this software for any purpose. It is provided "as is" 15*cc02d7e2SAndroid Build Coastguard Worker * without express or implied warranty. 16*cc02d7e2SAndroid Build Coastguard Worker */ 17*cc02d7e2SAndroid Build Coastguard Worker 18*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 19*cc02d7e2SAndroid Build Coastguard Worker /* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ 20*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 21*cc02d7e2SAndroid Build Coastguard Worker 22*cc02d7e2SAndroid Build Coastguard Worker /* 23*cc02d7e2SAndroid Build Coastguard Worker * NOTE 1: 24*cc02d7e2SAndroid Build Coastguard Worker * ------- 25*cc02d7e2SAndroid Build Coastguard Worker * 26*cc02d7e2SAndroid Build Coastguard Worker * See file ares_build.h.in, run configure, and forget that this file 27*cc02d7e2SAndroid Build Coastguard Worker * exists it is only used for non-configure systems. 28*cc02d7e2SAndroid Build Coastguard Worker * But you can keep reading if you want ;-) 29*cc02d7e2SAndroid Build Coastguard Worker * 30*cc02d7e2SAndroid Build Coastguard Worker */ 31*cc02d7e2SAndroid Build Coastguard Worker 32*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 33*cc02d7e2SAndroid Build Coastguard Worker /* NOTES FOR NON-CONFIGURE SYSTEMS */ 34*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 35*cc02d7e2SAndroid Build Coastguard Worker 36*cc02d7e2SAndroid Build Coastguard Worker /* 37*cc02d7e2SAndroid Build Coastguard Worker * NOTE 1: 38*cc02d7e2SAndroid Build Coastguard Worker * ------- 39*cc02d7e2SAndroid Build Coastguard Worker * 40*cc02d7e2SAndroid Build Coastguard Worker * Nothing in this file is intended to be modified or adjusted by the 41*cc02d7e2SAndroid Build Coastguard Worker * c-ares library user nor by the c-ares library builder. 42*cc02d7e2SAndroid Build Coastguard Worker * 43*cc02d7e2SAndroid Build Coastguard Worker * If you think that something actually needs to be changed, adjusted 44*cc02d7e2SAndroid Build Coastguard Worker * or fixed in this file, then, report it on the c-ares development 45*cc02d7e2SAndroid Build Coastguard Worker * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/ 46*cc02d7e2SAndroid Build Coastguard Worker * 47*cc02d7e2SAndroid Build Coastguard Worker * Try to keep one section per platform, compiler and architecture, 48*cc02d7e2SAndroid Build Coastguard Worker * otherwise, if an existing section is reused for a different one and 49*cc02d7e2SAndroid Build Coastguard Worker * later on the original is adjusted, probably the piggybacking one can 50*cc02d7e2SAndroid Build Coastguard Worker * be adversely changed. 51*cc02d7e2SAndroid Build Coastguard Worker * 52*cc02d7e2SAndroid Build Coastguard Worker * In order to differentiate between platforms/compilers/architectures 53*cc02d7e2SAndroid Build Coastguard Worker * use only compiler built in predefined preprocessor symbols. 54*cc02d7e2SAndroid Build Coastguard Worker * 55*cc02d7e2SAndroid Build Coastguard Worker * This header file shall only export symbols which are 'cares' or 'CARES' 56*cc02d7e2SAndroid Build Coastguard Worker * prefixed, otherwise public name space would be polluted. 57*cc02d7e2SAndroid Build Coastguard Worker * 58*cc02d7e2SAndroid Build Coastguard Worker * NOTE 2: 59*cc02d7e2SAndroid Build Coastguard Worker * ------- 60*cc02d7e2SAndroid Build Coastguard Worker * 61*cc02d7e2SAndroid Build Coastguard Worker * Right now you might be staring at file ares_build.h.dist or ares_build.h, 62*cc02d7e2SAndroid Build Coastguard Worker * this is due to the following reason: file ares_build.h.dist is renamed 63*cc02d7e2SAndroid Build Coastguard Worker * to ares_build.h when the c-ares source code distribution archive file is 64*cc02d7e2SAndroid Build Coastguard Worker * created. 65*cc02d7e2SAndroid Build Coastguard Worker * 66*cc02d7e2SAndroid Build Coastguard Worker * File ares_build.h.dist is not included in the distribution archive. 67*cc02d7e2SAndroid Build Coastguard Worker * File ares_build.h is not present in the git tree. 68*cc02d7e2SAndroid Build Coastguard Worker * 69*cc02d7e2SAndroid Build Coastguard Worker * The distributed ares_build.h file is only intended to be used on systems 70*cc02d7e2SAndroid Build Coastguard Worker * which can not run the also distributed configure script. 71*cc02d7e2SAndroid Build Coastguard Worker * 72*cc02d7e2SAndroid Build Coastguard Worker * On systems capable of running the configure script, the configure process 73*cc02d7e2SAndroid Build Coastguard Worker * will overwrite the distributed ares_build.h file with one that is suitable 74*cc02d7e2SAndroid Build Coastguard Worker * and specific to the library being configured and built, which is generated 75*cc02d7e2SAndroid Build Coastguard Worker * from the ares_build.h.in template file. 76*cc02d7e2SAndroid Build Coastguard Worker * 77*cc02d7e2SAndroid Build Coastguard Worker * If you check out from git on a non-configure platform, you must run the 78*cc02d7e2SAndroid Build Coastguard Worker * appropriate buildconf* script to set up ares_build.h and other local files. 79*cc02d7e2SAndroid Build Coastguard Worker * 80*cc02d7e2SAndroid Build Coastguard Worker */ 81*cc02d7e2SAndroid Build Coastguard Worker 82*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 83*cc02d7e2SAndroid Build Coastguard Worker /* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ 84*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 85*cc02d7e2SAndroid Build Coastguard Worker 86*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_TYPEOF_ARES_SOCKLEN_T 87*cc02d7e2SAndroid Build Coastguard Worker # error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h" 88*cc02d7e2SAndroid Build Coastguard Worker Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined 89*cc02d7e2SAndroid Build Coastguard Worker #endif 90*cc02d7e2SAndroid Build Coastguard Worker 91*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 92*cc02d7e2SAndroid Build Coastguard Worker /* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */ 93*cc02d7e2SAndroid Build Coastguard Worker /* ================================================================ */ 94*cc02d7e2SAndroid Build Coastguard Worker 95*cc02d7e2SAndroid Build Coastguard Worker #if defined(__DJGPP__) || defined(__GO32__) 96*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 97*cc02d7e2SAndroid Build Coastguard Worker 98*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__SALFORDC__) 99*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 100*cc02d7e2SAndroid Build Coastguard Worker 101*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__BORLANDC__) 102*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 103*cc02d7e2SAndroid Build Coastguard Worker 104*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__TURBOC__) 105*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 106*cc02d7e2SAndroid Build Coastguard Worker 107*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__WATCOMC__) 108*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 109*cc02d7e2SAndroid Build Coastguard Worker 110*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__POCC__) 111*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 112*cc02d7e2SAndroid Build Coastguard Worker 113*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__LCC__) 114*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 115*cc02d7e2SAndroid Build Coastguard Worker 116*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__SYMBIAN32__) 117*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int 118*cc02d7e2SAndroid Build Coastguard Worker 119*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MWERKS__) 120*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 121*cc02d7e2SAndroid Build Coastguard Worker 122*cc02d7e2SAndroid Build Coastguard Worker #elif defined(_WIN32_WCE) 123*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 124*cc02d7e2SAndroid Build Coastguard Worker 125*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MINGW32__) 126*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 127*cc02d7e2SAndroid Build Coastguard Worker 128*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__VMS) 129*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int 130*cc02d7e2SAndroid Build Coastguard Worker 131*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__OS400__) 132*cc02d7e2SAndroid Build Coastguard Worker # if defined(__ILEC400__) 133*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t 134*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_TYPES_H 1 135*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_SOCKET_H 1 136*cc02d7e2SAndroid Build Coastguard Worker # endif 137*cc02d7e2SAndroid Build Coastguard Worker 138*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__MVS__) 139*cc02d7e2SAndroid Build Coastguard Worker # if defined(__IBMC__) || defined(__IBMCPP__) 140*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t 141*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_TYPES_H 1 142*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_SOCKET_H 1 143*cc02d7e2SAndroid Build Coastguard Worker # endif 144*cc02d7e2SAndroid Build Coastguard Worker 145*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__370__) 146*cc02d7e2SAndroid Build Coastguard Worker # if defined(__IBMC__) || defined(__IBMCPP__) 147*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t 148*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_TYPES_H 1 149*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_SOCKET_H 1 150*cc02d7e2SAndroid Build Coastguard Worker # endif 151*cc02d7e2SAndroid Build Coastguard Worker 152*cc02d7e2SAndroid Build Coastguard Worker #elif defined(TPF) 153*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 154*cc02d7e2SAndroid Build Coastguard Worker 155*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */ 156*cc02d7e2SAndroid Build Coastguard Worker /* KEEP MSVC THE PENULTIMATE ENTRY */ 157*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */ 158*cc02d7e2SAndroid Build Coastguard Worker 159*cc02d7e2SAndroid Build Coastguard Worker #elif defined(_MSC_VER) 160*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T int 161*cc02d7e2SAndroid Build Coastguard Worker 162*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */ 163*cc02d7e2SAndroid Build Coastguard Worker /* KEEP GENERIC GCC THE LAST ENTRY */ 164*cc02d7e2SAndroid Build Coastguard Worker /* ===================================== */ 165*cc02d7e2SAndroid Build Coastguard Worker 166*cc02d7e2SAndroid Build Coastguard Worker #elif defined(__GNUC__) 167*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t 168*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_TYPES_H 1 169*cc02d7e2SAndroid Build Coastguard Worker # define CARES_PULL_SYS_SOCKET_H 1 170*cc02d7e2SAndroid Build Coastguard Worker 171*cc02d7e2SAndroid Build Coastguard Worker #else 172*cc02d7e2SAndroid Build Coastguard Worker # error "Unknown non-configure build target!" 173*cc02d7e2SAndroid Build Coastguard Worker Error Compilation_aborted_Unknown_non_configure_build_target 174*cc02d7e2SAndroid Build Coastguard Worker #endif 175*cc02d7e2SAndroid Build Coastguard Worker 176*cc02d7e2SAndroid Build Coastguard Worker /* CARES_PULL_SYS_TYPES_H is defined above when inclusion of header file */ 177*cc02d7e2SAndroid Build Coastguard Worker /* sys/types.h is required here to properly make type definitions below. */ 178*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_PULL_SYS_TYPES_H 179*cc02d7e2SAndroid Build Coastguard Worker # include <sys/types.h> 180*cc02d7e2SAndroid Build Coastguard Worker #endif 181*cc02d7e2SAndroid Build Coastguard Worker 182*cc02d7e2SAndroid Build Coastguard Worker /* CARES_PULL_SYS_SOCKET_H is defined above when inclusion of header file */ 183*cc02d7e2SAndroid Build Coastguard Worker /* sys/socket.h is required here to properly make type definitions below. */ 184*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_PULL_SYS_SOCKET_H 185*cc02d7e2SAndroid Build Coastguard Worker # include <sys/socket.h> 186*cc02d7e2SAndroid Build Coastguard Worker #endif 187*cc02d7e2SAndroid Build Coastguard Worker 188*cc02d7e2SAndroid Build Coastguard Worker /* Data type definition of ares_socklen_t. */ 189*cc02d7e2SAndroid Build Coastguard Worker 190*cc02d7e2SAndroid Build Coastguard Worker #ifdef CARES_TYPEOF_ARES_SOCKLEN_T 191*cc02d7e2SAndroid Build Coastguard Worker typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t; 192*cc02d7e2SAndroid Build Coastguard Worker #endif 193*cc02d7e2SAndroid Build Coastguard Worker 194*cc02d7e2SAndroid Build Coastguard Worker /* Data type definition of ares_ssize_t. */ 195*cc02d7e2SAndroid Build Coastguard Worker /* gRPC Manuel edit here! 196*cc02d7e2SAndroid Build Coastguard Worker * Possibly include <_mingw.h> header to define __int64 type under mingw */ 197*cc02d7e2SAndroid Build Coastguard Worker #ifdef _WIN32 198*cc02d7e2SAndroid Build Coastguard Worker # ifdef _WIN64 199*cc02d7e2SAndroid Build Coastguard Worker # ifdef __MINGW32__ 200*cc02d7e2SAndroid Build Coastguard Worker # include <_mingw.h> 201*cc02d7e2SAndroid Build Coastguard Worker # endif 202*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SSIZE_T __int64 203*cc02d7e2SAndroid Build Coastguard Worker # else 204*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SSIZE_T long 205*cc02d7e2SAndroid Build Coastguard Worker # endif 206*cc02d7e2SAndroid Build Coastguard Worker #else 207*cc02d7e2SAndroid Build Coastguard Worker # define CARES_TYPEOF_ARES_SSIZE_T ssize_t 208*cc02d7e2SAndroid Build Coastguard Worker #endif 209*cc02d7e2SAndroid Build Coastguard Worker 210*cc02d7e2SAndroid Build Coastguard Worker typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t; 211*cc02d7e2SAndroid Build Coastguard Worker 212*cc02d7e2SAndroid Build Coastguard Worker /* IMPORTANT: gRPC MANUAL EDIT HERE! 213*cc02d7e2SAndroid Build Coastguard Worker * Undefine UNICODE, as c-ares does not use the ANSI version of functions 214*cc02d7e2SAndroid Build Coastguard Worker * explicitly. */ 215*cc02d7e2SAndroid Build Coastguard Worker #ifdef UNICODE 216*cc02d7e2SAndroid Build Coastguard Worker # undef UNICODE 217*cc02d7e2SAndroid Build Coastguard Worker #endif 218*cc02d7e2SAndroid Build Coastguard Worker 219*cc02d7e2SAndroid Build Coastguard Worker #ifdef _UNICODE 220*cc02d7e2SAndroid Build Coastguard Worker # undef _UNICODE 221*cc02d7e2SAndroid Build Coastguard Worker #endif 222*cc02d7e2SAndroid Build Coastguard Worker 223*cc02d7e2SAndroid Build Coastguard Worker #endif /* __CARES_BUILD_H */ 224