home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277248_apu.h < prev    next >
C/C++ Source or Header  |  2004-09-23  |  4KB  |  121 lines

  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 */
  121.