apu.h.in revision 362181
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/*
18 * apu.h is generated from apu.h.in by configure -- do not edit apu.h
19 */
20/* @file apu.h
21 * @brief APR-Utility main file
22 */
23/**
24 * @defgroup APR_Util APR Utility Functions
25 * @{
26 */
27
28
29#ifndef APU_H
30#define APU_H
31
32/**
33 * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
34 * so that all public symbols are exported.
35 *
36 * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
37 * to provide static linkage when the dynamic library may be unavailable.
38 *
39 * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
40 * including the APR-UTIL public headers, to import and link the symbols from 
41 * the dynamic APR-UTIL library and assure appropriate indirection and calling
42 * conventions at compile time.
43 */
44
45#if defined(DOXYGEN) || !defined(WIN32)
46/**
47 * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
48 * use the most appropriate calling convention.  Public APR functions with 
49 * variable arguments must use APU_DECLARE_NONSTD().
50 *
51 * @fn APU_DECLARE(rettype) apr_func(args);
52 */
53#define APU_DECLARE(type)            type
54/**
55 * The public APR-UTIL functions using variable arguments are declared with 
56 * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
57 *
58 * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
59 */
60#define APU_DECLARE_NONSTD(type)     type
61/**
62 * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
63 * This assures the appropriate indirection is invoked at compile time.
64 *
65 * @fn APU_DECLARE_DATA type apr_variable;
66 * @note APU_DECLARE_DATA extern type apr_variable; syntax is required for
67 * declarations within headers to properly import the variable.
68 */
69#define APU_DECLARE_DATA
70#elif defined(APU_DECLARE_STATIC)
71#define APU_DECLARE(type)            type __stdcall
72#define APU_DECLARE_NONSTD(type)     type __cdecl
73#define APU_DECLARE_DATA
74#elif defined(APU_DECLARE_EXPORT)
75#define APU_DECLARE(type)            __declspec(dllexport) type __stdcall
76#define APU_DECLARE_NONSTD(type)     __declspec(dllexport) type __cdecl
77#define APU_DECLARE_DATA             __declspec(dllexport)
78#else
79#define APU_DECLARE(type)            __declspec(dllimport) type __stdcall
80#define APU_DECLARE_NONSTD(type)     __declspec(dllimport) type __cdecl
81#define APU_DECLARE_DATA             __declspec(dllimport)
82#endif
83
84#if !defined(WIN32) || defined(APU_MODULE_DECLARE_STATIC)
85/**
86 * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA.
87 *
88 * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols 
89 * declared with APU_MODULE_DECLARE_DATA are always exported.
90 * @code
91 * module APU_MODULE_DECLARE_DATA mod_tag
92 * @endcode
93 */
94#define APU_MODULE_DECLARE_DATA
95#else
96#define APU_MODULE_DECLARE_DATA           __declspec(dllexport)
97#endif
98
99/*
100 * we always have SDBM (it's in our codebase)
101 */
102#define APU_HAVE_SDBM   @apu_have_sdbm@
103#define APU_HAVE_GDBM   @apu_have_gdbm@
104#define APU_HAVE_NDBM   @apu_have_ndbm@
105#define APU_HAVE_DB     @apu_have_db@
106
107#if APU_HAVE_DB
108#define APU_HAVE_DB_VERSION    @apu_db_version@
109#endif
110
111#define APU_HAVE_PGSQL         @apu_have_pgsql@
112#define APU_HAVE_MYSQL         @apu_have_mysql@
113#define APU_HAVE_SQLITE3       @apu_have_sqlite3@
114#define APU_HAVE_SQLITE2       @apu_have_sqlite2@
115#define APU_HAVE_ORACLE        @apu_have_oracle@
116#define APU_HAVE_ODBC          @apu_have_odbc@
117
118#define APU_HAVE_CRYPTO        @apu_have_crypto@
119#define APU_HAVE_OPENSSL       @apu_have_openssl@
120#define APU_HAVE_NSS           @apu_have_nss@
121#define APU_HAVE_COMMONCRYPTO  @apu_have_commoncrypto@
122
123#define APU_HAVE_APR_ICONV     @have_apr_iconv@
124#define APU_HAVE_ICONV         @have_iconv@
125#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
126
127#endif /* APU_H */
128/** @} */
129