apr_want.h revision 256281
1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include "apr.h" /* configuration data */ 18/** 19 * @file apr_want.h 20 * @brief APR Standard Headers Support 21 * 22 * <PRE> 23 * Features: 24 * 25 * APR_WANT_STRFUNC: strcmp, strcat, strcpy, etc 26 * APR_WANT_MEMFUNC: memcmp, memcpy, etc 27 * APR_WANT_STDIO: <stdio.h> and related bits 28 * APR_WANT_IOVEC: struct iovec 29 * APR_WANT_BYTEFUNC: htons, htonl, ntohl, ntohs 30 * 31 * Typical usage: 32 * 33 * \#define APR_WANT_STRFUNC 34 * \#define APR_WANT_MEMFUNC 35 * \#include "apr_want.h" 36 * 37 * The appropriate headers will be included. 38 * 39 * Note: it is safe to use this in a header (it won't interfere with other 40 * headers' or source files' use of apr_want.h) 41 * </PRE> 42 */ 43 44/* --------------------------------------------------------------------- */ 45 46#ifdef APR_WANT_STRFUNC 47 48#if APR_HAVE_STRING_H 49#include <string.h> 50#endif 51#if APR_HAVE_STRINGS_H 52#include <strings.h> 53#endif 54 55#undef APR_WANT_STRFUNC 56#endif 57 58/* --------------------------------------------------------------------- */ 59 60#ifdef APR_WANT_MEMFUNC 61 62#if APR_HAVE_STRING_H 63#include <string.h> 64#endif 65 66#undef APR_WANT_MEMFUNC 67#endif 68 69/* --------------------------------------------------------------------- */ 70 71#ifdef APR_WANT_STDIO 72 73#if APR_HAVE_STDIO_H 74#include <stdio.h> 75#endif 76 77#undef APR_WANT_STDIO 78#endif 79 80/* --------------------------------------------------------------------- */ 81 82#ifdef APR_WANT_IOVEC 83 84#if APR_HAVE_IOVEC 85 86#if APR_HAVE_SYS_UIO_H 87#include <sys/uio.h> 88#endif 89 90#else 91 92#ifndef APR_IOVEC_DEFINED 93#define APR_IOVEC_DEFINED 94struct iovec 95{ 96 void *iov_base; 97 size_t iov_len; 98}; 99#endif /* !APR_IOVEC_DEFINED */ 100 101#endif /* APR_HAVE_IOVEC */ 102 103#undef APR_WANT_IOVEC 104#endif 105 106/* --------------------------------------------------------------------- */ 107 108#ifdef APR_WANT_BYTEFUNC 109 110/* Single Unix says they are in arpa/inet.h. Linux has them in 111 * netinet/in.h. FreeBSD has them in arpa/inet.h but requires that 112 * netinet/in.h be included first. 113 */ 114#if APR_HAVE_NETINET_IN_H 115#include <netinet/in.h> 116#endif 117#if APR_HAVE_ARPA_INET_H 118#include <arpa/inet.h> 119#endif 120 121#undef APR_WANT_BYTEFUNC 122#endif 123 124/* --------------------------------------------------------------------- */ 125