X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap_cdefs.h;h=5de63085699efd2001c2ae08647eb77945113a24;hb=9514007d96ff2ab4575106996eb74ef80be7a2e1;hp=2f7ed6e987491c61bff4efc498be9356baecb136;hpb=2a869f5a99f537b246ba8640502e2a86117cb6e8;p=openldap diff --git a/include/ldap_cdefs.h b/include/ldap_cdefs.h index 2f7ed6e987..5de6308569 100644 --- a/include/ldap_cdefs.h +++ b/include/ldap_cdefs.h @@ -1,36 +1,146 @@ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted only + * as authorized by the OpenLDAP Public License. A copy of this + * license is available at http://www.OpenLDAP.org/license.html or + * in file LICENSE in the top-level directory of the distribution. + */ /* LDAP C Defines */ #ifndef _LDAP_CDEFS_H #define _LDAP_CDEFS_H -#if defined(__cplusplus) +#if defined(__cplusplus) || defined(c_plusplus) # define LDAP_BEGIN_DECL extern "C" { # define LDAP_END_DECL } #else -# define LDAP_BEGIN_DECL -# define LDAP_END_DECL +# define LDAP_BEGIN_DECL /* begin declarations */ +# define LDAP_END_DECL /* end declarations */ #endif -#if defined(__STDC__) || defined(__cplusplus) +#if !defined(LDAP_NO_PROTOTYPES) && ( defined(LDAP_NEEDS_PROTOTYPES) || \ + defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) ) + /* ANSI C or C++ */ # define LDAP_P(protos) protos # define LDAP_CONCAT1(x,y) x ## y # define LDAP_CONCAT(x,y) LDAP_CONCAT1(x,y) # define LDAP_STRING(x) #x /* stringify without expanding x */ # define LDAP_XSTRING(x) LDAP_STRING(x) /* expand x, then stringify */ -#else /* ! __STDC__ && ! __cplusplus */ + +#ifndef LDAP_CONST +# define LDAP_CONST const +#endif + +#else /* no prototypes */ + /* traditional C */ # define LDAP_P(protos) () # define LDAP_CONCAT(x,y) x/**/y # define LDAP_STRING(x) "x" -#endif /* __STDC__ || __cplusplus */ - -#ifndef LDAP_F -# ifdef _WIN32 -# define LDAP_F __declspec( dllexport ) -# else /* ! _WIN32 */ -# define LDAP_F extern -# endif /* _WIN32 */ -#endif /* LDAP_FDECL */ + +#ifndef LDAP_CONST +# define LDAP_CONST /* no const */ +#endif + +#endif /* no prototypes */ + +#if (__GNUC__) * 1000 + (__GNUC_MINOR__) >= 2006 +# define LDAP_GCCATTR(attrs) __attribute__(attrs) +#else +# define LDAP_GCCATTR(attrs) +#endif + + +/* Support for NT dynamic libraries. */ + +/* LBER library */ +#if defined(LBER_DECL) && defined(_WIN32) +# define LBER_F(type) extern __declspec(LBER_DECL) type +# define LBER_V(type) extern __declspec(LBER_DECL) type +#else +# define LBER_F(type) extern type +# define LBER_V(type) extern type +#endif + +/* LDAP library */ +#if defined(LDAP_DECL) && defined(_WIN32) +# define LDAP_F(type) extern __declspec(LDAP_DECL) type +# define LDAP_V(type) extern __declspec(LDAP_DECL) type +#else +# define LDAP_F(type) extern type +# define LDAP_V(type) extern type +#endif + +/* + * C library. Mingw32 links with the C run-time library by default, + * so the explicit definition of CSTATIC will keep dllimport from + * being defined. + */ +#if (defined(__MINGW32__) && !defined(CSTATIC) || \ + defined(_WIN32) && defined(_DLL)) +# define LDAP_LIBC_F(type) extern __declspec(dllimport) type +# define LDAP_LIBC_V(type) extern __declspec(dllimport) type +#else +# define LDAP_LIBC_F(type) extern type +# define LDAP_LIBC_V(type) extern type +#endif + +/* AVL library */ +#if defined(LDAP_AVL_DECL) && defined(_WIN32) +# define LDAP_AVL_F(type) extern __declspec(LDAP_AVL_DECL) type +# define LDAP_AVL_V(type) extern __declspec(LDAP_AVL_DECL) type +#else +# define LDAP_AVL_F(type) extern type +# define LDAP_AVL_V(type) extern type +#endif + +/* LDBM library */ +#if defined(LDAP_LDBM_DECL) && defined(_WIN32) +# define LDAP_LDBM_F(type) extern __declspec(LDAP_LDBM_DECL) type +# define LDAP_LDBM_V(type) extern __declspec(LDAP_LDBM_DECL) type +#else +# define LDAP_LDBM_F(type) extern type +# define LDAP_LDBM_V(type) extern type +#endif + +/* LDIF library */ +#if defined(LDAP_LDIF_DECL) && defined(_WIN32) +# define LDAP_LDIF_F(type) extern __declspec(LDAP_LDIF_DECL) type +# define LDAP_LDIF_V(type) extern __declspec(LDAP_LDIF_DECL) type +#else +# define LDAP_LDIF_F(type) extern type +# define LDAP_LDIF_V(type) extern type +#endif + +/* LUNICODE library */ +#if defined(LDAP_LUNICODE_DECL) && defined(_WIN32) +# define LDAP_LUNICODE_F(type) extern __declspec(LDAP_LUNICODE_DECL) type +# define LDAP_LUNICODE_V(type) extern __declspec(LDAP_LUNICODE_DECL) type +#else +# define LDAP_LUNICODE_F(type) extern type +# define LDAP_LUNICODE_V(type) extern type +#endif + +/* LUTIL library */ +#if defined(LDAP_LUTIL_DECL) && defined(_WIN32) +# define LDAP_LUTIL_F(type) extern __declspec(LDAP_LUTIL_DECL) type +# define LDAP_LUTIL_V(type) extern __declspec(LDAP_LUTIL_DECL) type +#else +# define LDAP_LUTIL_F(type) extern type +# define LDAP_LUTIL_V(type) extern type +#endif + +/* SLAPD (as a module exporting symbols) */ +#if defined(LDAP_SLAPD_DECL) && defined(_WIN32) +# define LDAP_SLAPD_F(type) extern __declspec(LDAP_SLAPD_DECL) type +# define LDAP_SLAPD_V(type) extern __declspec(LDAP_SLAPD_DECL) type +#else +# define LDAP_SLAPD_F(type) extern type +# define LDAP_SLAPD_V(type) extern type +#endif #endif /* _LDAP_CDEFS_H */