Apache Portable Runtime
apr_want.h
Go to the documentation of this file.
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 /* --------------------------------------------------------------------- */
APR Platform Definitions.