]> git.sur5r.net Git - openldap/blob - include/ldap_cdefs.h
Add OpenLDAP RCS Id
[openldap] / include / ldap_cdefs.h
1 /* $OpenLDAP$ */
2 /*
3  * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms are permitted only
7  * as authorized by the OpenLDAP Public License.  A copy of this
8  * license is available at http://www.OpenLDAP.org/license.html or
9  * in file LICENSE in the top-level directory of the distribution.
10  */
11 /* LDAP C Defines */
12
13 #ifndef _LDAP_CDEFS_H
14 #define _LDAP_CDEFS_H
15
16 #if defined(__cplusplus) || defined(c_plusplus)
17 #       define LDAP_BEGIN_DECL  extern "C" {
18 #       define LDAP_END_DECL    }
19 #else
20 #       define LDAP_BEGIN_DECL  /* begin declarations */
21 #       define LDAP_END_DECL    /* end declarations */
22 #endif
23
24 #if !defined(__NO_PROTOTYPES) && ( defined(__NEED_PROTOTYPES) || \
25         defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) )
26
27         /* ANSI C or C++ */
28 #       define LDAP_P(protos)   protos
29 #       define LDAP_CONCAT1(x,y)        x ## y
30 #       define LDAP_CONCAT(x,y) LDAP_CONCAT1(x,y)
31 #       define LDAP_STRING(x)   #x /* stringify without expanding x */
32 #       define LDAP_XSTRING(x)  LDAP_STRING(x) /* expand x, then stringify */
33
34 #ifndef LDAP_CONST
35 #       define LDAP_CONST       const
36 #endif
37
38 #else /* no prototypes */
39
40         /* traditional C */
41 #       define LDAP_P(protos)   ()
42 #       define LDAP_CONCAT(x,y) x/**/y
43 #       define LDAP_STRING(x)   "x"
44
45 #ifndef LDAP_CONST
46 #       define LDAP_CONST       /* no const */
47 #endif
48
49 #endif /* no prototypes */
50
51 #if _WIN32 && _DLL
52 #       define LDAP_F_IMPORT    extern __declspec( dllimport )
53 #       define LDAP_F_EXPORT    extern __declspec( dllexport )
54 #else
55 #       define LDAP_F_IMPORT    extern
56 #       define LDAP_F_EXPORT    extern
57 #endif
58
59 #endif /* _LDAP_CDEFS_H */
60
61 /* purposely allow these to be redefined */
62 #ifndef LDAP_F_PRE
63 #       define LDAP_F_PRE       LDAP_F_IMPORT
64 #endif
65 #ifndef LDAP_F_POST
66 #       define LDAP_F_POST      /* no post */
67 #endif
68 #ifndef LDAP_F
69 #define LDAP_F(type)    LDAP_F_PRE type LDAP_F_POST
70 #endif
71