1251876Speter/* Licensed to the Apache Software Foundation (ASF) under one or more 2251876Speter * contributor license agreements. See the NOTICE file distributed with 3251876Speter * this work for additional information regarding copyright ownership. 4251876Speter * The ASF licenses this file to You under the Apache License, Version 2.0 5251876Speter * (the "License"); you may not use this file except in compliance with 6251876Speter * the License. You may obtain a copy of the License at 7251876Speter * 8251876Speter * http://www.apache.org/licenses/LICENSE-2.0 9251876Speter * 10251876Speter * Unless required by applicable law or agreed to in writing, software 11251876Speter * distributed under the License is distributed on an "AS IS" BASIS, 12251876Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13251876Speter * See the License for the specific language governing permissions and 14251876Speter * limitations under the License. 15251876Speter */ 16251876Speter 17251876Speter/* 18251876Speter * apu.h is generated from apu.h.in by configure -- do not edit apu.h 19251876Speter */ 20251876Speter/* @file apu.h 21251876Speter * @brief APR-Utility main file 22251876Speter */ 23251876Speter/** 24251876Speter * @defgroup APR_Util APR Utility Functions 25251876Speter * @{ 26251876Speter */ 27251876Speter 28251876Speter 29251876Speter#ifndef APU_H 30251876Speter#define APU_H 31251876Speter 32251876Speter/** 33251876Speter * APU_DECLARE_EXPORT is defined when building the APR-UTIL dynamic library, 34251876Speter * so that all public symbols are exported. 35251876Speter * 36251876Speter * APU_DECLARE_STATIC is defined when including the APR-UTIL public headers, 37251876Speter * to provide static linkage when the dynamic library may be unavailable. 38251876Speter * 39251876Speter * APU_DECLARE_STATIC and APU_DECLARE_EXPORT are left undefined when 40251876Speter * including the APR-UTIL public headers, to import and link the symbols from 41251876Speter * the dynamic APR-UTIL library and assure appropriate indirection and calling 42251876Speter * conventions at compile time. 43251876Speter */ 44251876Speter 45253734Speter#if defined(DOXYGEN) || !defined(WIN32) 46251876Speter/** 47251876Speter * The public APR-UTIL functions are declared with APU_DECLARE(), so they may 48251876Speter * use the most appropriate calling convention. Public APR functions with 49251876Speter * variable arguments must use APU_DECLARE_NONSTD(). 50251876Speter * 51251876Speter * @fn APU_DECLARE(rettype) apr_func(args); 52251876Speter */ 53251876Speter#define APU_DECLARE(type) type 54251876Speter/** 55251876Speter * The public APR-UTIL functions using variable arguments are declared with 56251876Speter * APU_DECLARE_NONSTD(), as they must use the C language calling convention. 57251876Speter * 58251876Speter * @fn APU_DECLARE_NONSTD(rettype) apr_func(args, ...); 59251876Speter */ 60251876Speter#define APU_DECLARE_NONSTD(type) type 61251876Speter/** 62251876Speter * The public APR-UTIL variables are declared with APU_DECLARE_DATA. 63251876Speter * This assures the appropriate indirection is invoked at compile time. 64251876Speter * 65251876Speter * @fn APU_DECLARE_DATA type apr_variable; 66251876Speter * @note APU_DECLARE_DATA extern type apr_variable; syntax is required for 67251876Speter * declarations within headers to properly import the variable. 68251876Speter */ 69251876Speter#define APU_DECLARE_DATA 70253734Speter#elif defined(APU_DECLARE_STATIC) 71253734Speter#define APU_DECLARE(type) type __stdcall 72253734Speter#define APU_DECLARE_NONSTD(type) type __cdecl 73253734Speter#define APU_DECLARE_DATA 74253734Speter#elif defined(APU_DECLARE_EXPORT) 75253734Speter#define APU_DECLARE(type) __declspec(dllexport) type __stdcall 76253734Speter#define APU_DECLARE_NONSTD(type) __declspec(dllexport) type __cdecl 77253734Speter#define APU_DECLARE_DATA __declspec(dllexport) 78253734Speter#else 79253734Speter#define APU_DECLARE(type) __declspec(dllimport) type __stdcall 80253734Speter#define APU_DECLARE_NONSTD(type) __declspec(dllimport) type __cdecl 81253734Speter#define APU_DECLARE_DATA __declspec(dllimport) 82253734Speter#endif 83251876Speter 84251876Speter#if !defined(WIN32) || defined(APU_MODULE_DECLARE_STATIC) 85251876Speter/** 86251876Speter * Declare a dso module's exported module structure as APU_MODULE_DECLARE_DATA. 87251876Speter * 88251876Speter * Unless APU_MODULE_DECLARE_STATIC is defined at compile time, symbols 89251876Speter * declared with APU_MODULE_DECLARE_DATA are always exported. 90251876Speter * @code 91251876Speter * module APU_MODULE_DECLARE_DATA mod_tag 92251876Speter * @endcode 93251876Speter */ 94251876Speter#define APU_MODULE_DECLARE_DATA 95251876Speter#else 96251876Speter#define APU_MODULE_DECLARE_DATA __declspec(dllexport) 97251876Speter#endif 98251876Speter 99251876Speter/* 100251876Speter * we always have SDBM (it's in our codebase) 101251876Speter */ 102251876Speter#define APU_HAVE_SDBM @apu_have_sdbm@ 103251876Speter#define APU_HAVE_GDBM @apu_have_gdbm@ 104251876Speter#define APU_HAVE_NDBM @apu_have_ndbm@ 105251876Speter#define APU_HAVE_DB @apu_have_db@ 106251876Speter 107251876Speter#if APU_HAVE_DB 108251876Speter#define APU_HAVE_DB_VERSION @apu_db_version@ 109251876Speter#endif 110251876Speter 111251876Speter#define APU_HAVE_PGSQL @apu_have_pgsql@ 112251876Speter#define APU_HAVE_MYSQL @apu_have_mysql@ 113251876Speter#define APU_HAVE_SQLITE3 @apu_have_sqlite3@ 114251876Speter#define APU_HAVE_SQLITE2 @apu_have_sqlite2@ 115251876Speter#define APU_HAVE_ORACLE @apu_have_oracle@ 116251876Speter#define APU_HAVE_FREETDS @apu_have_freetds@ 117251876Speter#define APU_HAVE_ODBC @apu_have_odbc@ 118251876Speter 119251876Speter#define APU_HAVE_CRYPTO @apu_have_crypto@ 120251876Speter#define APU_HAVE_OPENSSL @apu_have_openssl@ 121251876Speter#define APU_HAVE_NSS @apu_have_nss@ 122251876Speter 123251876Speter#define APU_HAVE_APR_ICONV @have_apr_iconv@ 124251876Speter#define APU_HAVE_ICONV @have_iconv@ 125251876Speter#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV) 126251876Speter 127251876Speter#endif /* APU_H */ 128251876Speter/** @} */ 129