upload http
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / srclib / apr-util / include / apu.hw
1 /* Copyright 2000-2004 The Apache Software Foundation
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 /* 
17  * Note: This is a Windows specific version of apu.h. It is renamed to
18  * apu.h at the start of a Windows build.
19  */
20 /* @file apu.h
21  * @brief APR-Utility main file
22  */
23
24 #ifdef WIN32
25 #ifndef APU_H
26 #define APU_H
27 /**
28  * @defgroup APR_Util APR Utility Functions
29  * @{
30  */
31
32
33 /**
34  * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
35  * so that all public symbols are exported.
36  *
37  * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
38  * to provide static linkage when the dynamic library may be unavailable.
39  *
40  * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
41  * including the APR-UTIL public headers, to import and link the symbols from 
42  * the dynamic APR-UTIL library and assure appropriate indirection and calling
43  * conventions at compile time.
44  */
45
46 #if !defined(WIN32)
47 /**
48  * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
49  * use the most appropriate calling convention.  Public APR functions with 
50  * variable arguments must use APU_DECLARE_NONSTD().
51  *
52  * @deffunc APU_DECLARE(rettype) apr_func(args);
53  */
54 #define APU_DECLARE(type)            type
55 /**
56  * The public APR-UTIL functions using variable arguments are declared with 
57  * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
58  *
59  * @deffunc APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
60  */
61 #define APU_DECLARE_NONSTD(type)     type
62 /**
63  * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
64  * This assures the appropriate indirection is invoked at compile time.
65  *
66  * @deffunc APU_DECLARE_DATA type apr_variable;
67  * @tip extern APU_DECLARE_DATA type apr_variable; syntax is required for
68  * declarations within headers to properly import the variable.
69  */
70 #define APU_DECLARE_DATA
71 #elif defined(APU_DECLARE_STATIC)
72 #define APU_DECLARE(type)            type __stdcall
73 #define APU_DECLARE_NONSTD(type)     type
74 #define APU_DECLARE_DATA
75 #elif defined(APU_DECLARE_EXPORT)
76 #define APU_DECLARE(type)            __declspec(dllexport) type __stdcall
77 #define APU_DECLARE_NONSTD(type)     __declspec(dllexport) type
78 #define APU_DECLARE_DATA             __declspec(dllexport)
79 #else
80 /**
81  * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
82  * use the most appropriate calling convention.  Public APR functions with 
83  * variable arguments must use APU_DECLARE_NONSTD().
84  *
85  */
86 #define APU_DECLARE(type)            __declspec(dllimport) type __stdcall
87 /**
88  * The public APR-UTIL functions using variable arguments are declared with 
89  * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
90  *
91  */
92 #define APU_DECLARE_NONSTD(type)     __declspec(dllimport) type
93 /**
94  * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
95  * This assures the appropriate indirection is invoked at compile time.
96  *
97  * @remark extern APU_DECLARE_DATA type apr_variable; syntax is required for
98  * declarations within headers to properly import the variable.
99  */
100 #define APU_DECLARE_DATA             __declspec(dllimport)
101 #endif
102 /** @} */
103 /*
104  * we always have SDBM (it's in our codebase)
105  */
106 #define APU_HAVE_SDBM   1
107 #define APU_HAVE_GDBM   0
108
109 /* Allow external override */
110 #if !defined(APU_HAVE_DB)
111 #define APU_HAVE_DB     0
112 #endif
113
114
115 #define APU_HAVE_APR_ICONV     1
116 #define APU_HAVE_ICONV         0
117 #define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
118
119 #endif /* APU_H */
120 #endif /* WIN32 */