1251886Speter/* $FreeBSD: releng/11.0/usr.bin/svn/lib/libapr_util/apu.h 286562 2015-08-10 00:53:45Z peter $ */
2251886Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
3251886Speter * contributor license agreements.  See the NOTICE file distributed with
4251886Speter * this work for additional information regarding copyright ownership.
5251886Speter * The ASF licenses this file to You under the Apache License, Version 2.0
6251886Speter * (the "License"); you may not use this file except in compliance with
7251886Speter * the License.  You may obtain a copy of the License at
8251886Speter *
9251886Speter *     http://www.apache.org/licenses/LICENSE-2.0
10251886Speter *
11251886Speter * Unless required by applicable law or agreed to in writing, software
12251886Speter * distributed under the License is distributed on an "AS IS" BASIS,
13251886Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14251886Speter * See the License for the specific language governing permissions and
15251886Speter * limitations under the License.
16251886Speter */
17251886Speter
18251886Speter/*
19251886Speter * apu.h is generated from apu.h.in by configure -- do not edit apu.h
20251886Speter */
21251886Speter/* @file apu.h
22251886Speter * @brief APR-Utility main file
23251886Speter */
24251886Speter/**
25251886Speter * @defgroup APR_Util APR Utility Functions
26251886Speter * @{
27251886Speter */
28251886Speter
29251886Speter
30251886Speter#ifndef APU_H
31251886Speter#define APU_H
32251886Speter
33251886Speter/**
34251886Speter * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library,
35251886Speter * so that all public symbols are exported.
36251886Speter *
37251886Speter * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers,
38251886Speter * to provide static linkage when the dynamic library may be unavailable.
39251886Speter *
40251886Speter * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when
41251886Speter * including the APR-UTIL public headers, to import and link the symbols from
42251886Speter * the dynamic APR-UTIL library and assure appropriate indirection and calling
43251886Speter * conventions at compile time.
44251886Speter */
45251886Speter
46253734Speter#if defined(DOXYGEN) || !defined(WIN32)
47251886Speter/**
48251886Speter * The public APR-UTIL functions are declared with APU_DECLARE(), so they may
49251886Speter * use the most appropriate calling convention.  Public APR functions with
50251886Speter * variable arguments must use APU_DECLARE_NONSTD().
51251886Speter *
52252454Speter * @fn APU_DECLARE(rettype) apr_func(args);
53251886Speter */
54251886Speter#define APU_DECLARE(type)            type
55251886Speter/**
56251886Speter * The public APR-UTIL functions using variable arguments are declared with
57251886Speter * APU_DECLARE_NONSTD(), as they must use the C language calling convention.
58251886Speter *
59252454Speter * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...);
60251886Speter */
61251886Speter#define APU_DECLARE_NONSTD(type)     type
62251886Speter/**
63251886Speter * The public APR-UTIL variables are declared with APU_DECLARE_DATA.
64251886Speter * This assures the appropriate indirection is invoked at compile time.
65251886Speter *
66252454Speter * @fn APU_DECLARE_DATA type apr_variable;
67252454Speter * @note APU_DECLARE_DATA extern type apr_variable; syntax is required for
68251886Speter * declarations within headers to properly import the variable.
69251886Speter */
70251886Speter#define APU_DECLARE_DATA
71253734Speter#elif defined(APU_DECLARE_STATIC)
72253734Speter#define APU_DECLARE(type)            type __stdcall
73253734Speter#define APU_DECLARE_NONSTD(type)     type __cdecl
74253734Speter#define APU_DECLARE_DATA
75253734Speter#elif defined(APU_DECLARE_EXPORT)
76253734Speter#define APU_DECLARE(type)            __declspec(dllexport) type __stdcall
77253734Speter#define APU_DECLARE_NONSTD(type)     __declspec(dllexport) type __cdecl
78253734Speter#define APU_DECLARE_DATA             __declspec(dllexport)
79253734Speter#else
80253734Speter#define APU_DECLARE(type)            __declspec(dllimport) type __stdcall
81253734Speter#define APU_DECLARE_NONSTD(type)     __declspec(dllimport) type __cdecl
82253734Speter#define APU_DECLARE_DATA             __declspec(dllimport)
83253734Speter#endif
84252454Speter
85252454Speter#if !defined(WIN32) || defined(APU_MODULE_DECLARE_STATIC)
86252454Speter/**
87252454Speter * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA.
88252454Speter *
89252454Speter * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols
90252454Speter * declared with APU_MODULE_DECLARE_DATA are always exported.
91252454Speter * @code
92252454Speter * module APU_MODULE_DECLARE_DATA mod_tag
93252454Speter * @endcode
94252454Speter */
95252454Speter#define APU_MODULE_DECLARE_DATA
96252454Speter#else
97252454Speter#define APU_MODULE_DECLARE_DATA           __declspec(dllexport)
98252454Speter#endif
99252454Speter
100251886Speter/*
101251886Speter * we always have SDBM (it's in our codebase)
102251886Speter */
103251886Speter#define APU_HAVE_SDBM   1
104251886Speter#define APU_HAVE_GDBM   0
105251886Speter#define APU_HAVE_NDBM   0
106251886Speter#define APU_HAVE_DB     0
107251886Speter
108251886Speter#if APU_HAVE_DB
109251886Speter#define APU_HAVE_DB_VERSION    0
110252454Speter#endif
111251886Speter
112251886Speter#define APU_HAVE_PGSQL         0
113251886Speter#define APU_HAVE_MYSQL         0
114251886Speter#define APU_HAVE_SQLITE3       0
115251886Speter#define APU_HAVE_SQLITE2       0
116252454Speter#define APU_HAVE_ORACLE        0
117252454Speter#define APU_HAVE_FREETDS       0
118252454Speter#define APU_HAVE_ODBC          0
119251886Speter
120286504Speter#define APU_HAVE_CRYPTO        1
121286504Speter#define APU_HAVE_OPENSSL       1
122252454Speter#define APU_HAVE_NSS           0
123252454Speter
124251886Speter#define APU_HAVE_APR_ICONV     0
125286562Speter#ifndef APU_HAVE_ICONV
126286561Speter#define APU_HAVE_ICONV         0
127286562Speter#endif
128251886Speter#define APR_HAS_XLATE          (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
129251886Speter
130251886Speter#endif /* APU_H */
131251886Speter/** @} */
132