]> git.sur5r.net Git - openldap/blobdiff - include/ldap_cdefs.h
cleanup old TOOLID macro
[openldap] / include / ldap_cdefs.h
index b799e9d6c5c9f7260fa08ef255db488a743f8526..c4e78b4cc2023d3b785a54e6d838779014b1f090 100644 (file)
@@ -1,5 +1,6 @@
+/* $OpenLDAP$ */
 /*
- * Copyright 1998,1999 The OpenLDAP Foundation, Redwood City, California, USA
+ * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms are permitted only
@@ -12,7 +13,7 @@
 #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
@@ -20,9 +21,8 @@
 #      define LDAP_END_DECL    /* end declarations */
 #endif
 
-#if !defined(__NO_PROTOTYPES) && ( \
-       defined(__STDC__) || defined(__cplusplus) || \
-       defined(__NEED_PROTOTYPES) )
+#if !defined(__NO_PROTOTYPES) && ( defined(__NEED_PROTOTYPES) || \
+       defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) )
 
        /* ANSI C or C++ */
 #      define LDAP_P(protos)   protos
 
 #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. */
+
+/*
+ * 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 LIBC_F(type)     extern __declspec(dllimport) type
+#else
+#      define LIBC_F(type)     extern type
+#endif
+
+/* AVL library */
+#if defined(LIBAVL_DECL) && defined(_WIN32)
+#      define LIBAVL_F(type)   extern __declspec(LIBAVL_DECL) type
+#else
+#      define LIBAVL_F(type)   extern type
+#endif
+
+/* LBER library */
+#if defined(LIBLBER_DECL) && defined(_WIN32)
+#      define LIBLBER_F(type)  extern __declspec(LIBLBER_DECL) type
+#else
+#      define LIBLBER_F(type)  extern type
+#endif
+
+/* LDAP library */
+#if defined(LIBLDAP_DECL) && defined(_WIN32)
+#      define LIBLDAP_F(type)  extern __declspec(LIBLDAP_DECL) type
+#else
+#      define LIBLDAP_F(type)  extern type
+#endif
+
+/* LDBM library */
+#if defined(LIBLDBM_DECL) && defined(_WIN32)
+#      define LIBLDBM_F(type)  extern __declspec(LIBLDBM_DECL) type
+#else
+#      define LIBLDBM_F(type)  extern type
+#endif
 
-#ifndef LDAP_F_PRE
-#      ifdef _WIN32
-#              define LDAP_F_PRE       extern __declspec( dllexport )
-#      else /* ! _WIN32 */
-#              define LDAP_F_PRE       extern
-#      endif /* _WIN32 */
-#endif /* LDAP_FDECL */
-#ifndef LDAP_F_POST
-#      ifdef _WIN32
-#              define LDAP_F_POST
-#      else /* ! _WIN32 */
-#              define LDAP_F_POST      
-#      endif /* _WIN32 */
-#endif /* LDAP_FDECL */
-#ifndef LDAP_F
-#define LDAP_F(type)   LDAP_F_PRE type LDAP_F_POST
+/* LDIF library */
+#if defined(LIBLDIF_DECL) && defined(_WIN32)
+#      define LIBLDIF_F(type)  extern __declspec(LIBLDIF_DECL) type
+#else
+#      define LIBLDIF_F(type)  extern type
+#endif
+
+/* LUTIL library */
+#if defined(LIBLUTIL_DECL) && defined(_WIN32)
+#      define LIBLUTIL_F(type) extern __declspec(LIBLUTIL_DECL) type
+#else
+#      define LIBLUTIL_F(type) extern type
+#endif
+
+/* SLAPD (as a module exporting symbols) */
+#if defined(LIBSLAPD_DECL) && defined(_WIN32)
+#      define LIBSLAPD_F(type) extern __declspec(LIBSLAPD_DECL) type
+#else
+#      define LIBSLAPD_F(type) extern type
 #endif
 
 #endif /* _LDAP_CDEFS_H */