]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/apr/include/apr_want.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / apr / include / apr_want.h
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
94 struct 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 /* --------------------------------------------------------------------- */