Home | History | Annotate | Download | only in libexslt
      1 /*
      2  * exsltexports.h : macros for marking symbols as exportable/importable.
      3  *
      4  * See Copyright for the status of this software.
      5  *
      6  * igor (at) zlatkovic.com
      7  */
      8 
      9 #ifndef __EXSLT_EXPORTS_H__
     10 #define __EXSLT_EXPORTS_H__
     11 
     12 /**
     13  * EXSLTPUBFUN, EXSLTPUBVAR, EXSLTCALL
     14  *
     15  * Macros which declare an exportable function, an exportable variable and
     16  * the calling convention used for functions.
     17  *
     18  * Please use an extra block for every platform/compiler combination when
     19  * modifying this, rather than overlong #ifdef lines. This helps
     20  * readability as well as the fact that different compilers on the same
     21  * platform might need different definitions.
     22  */
     23 
     24 /**
     25  * EXSLTPUBFUN:
     26  *
     27  * Macros which declare an exportable function
     28  */
     29 #define EXSLTPUBFUN
     30 /**
     31  * EXSLTPUBVAR:
     32  *
     33  * Macros which declare an exportable variable
     34  */
     35 #define EXSLTPUBVAR extern
     36 /**
     37  * EXSLTCALL:
     38  *
     39  * Macros which declare the called convention for exported functions
     40  */
     41 #define EXSLTCALL
     42 
     43 /** DOC_DISABLE */
     44 
     45 /* Windows platform with MS compiler */
     46 #if defined(_WIN32) && defined(_MSC_VER)
     47   #undef EXSLTPUBFUN
     48   #undef EXSLTPUBVAR
     49   #undef EXSLTCALL
     50   #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
     51     #define EXSLTPUBFUN __declspec(dllexport)
     52     #define EXSLTPUBVAR __declspec(dllexport)
     53   #else
     54     #define EXSLTPUBFUN
     55     #if !defined(LIBEXSLT_STATIC)
     56       #define EXSLTPUBVAR __declspec(dllimport) extern
     57     #else
     58       #define EXSLTPUBVAR extern
     59     #endif
     60   #endif
     61   #define EXSLTCALL __cdecl
     62   #if !defined _REENTRANT
     63     #define _REENTRANT
     64   #endif
     65 #endif
     66 
     67 /* Windows platform with Borland compiler */
     68 #if defined(_WIN32) && defined(__BORLANDC__)
     69   #undef EXSLTPUBFUN
     70   #undef EXSLTPUBVAR
     71   #undef EXSLTCALL
     72   #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
     73     #define EXSLTPUBFUN __declspec(dllexport)
     74     #define EXSLTPUBVAR __declspec(dllexport) extern
     75   #else
     76     #define EXSLTPUBFUN
     77     #if !defined(LIBEXSLT_STATIC)
     78       #define EXSLTPUBVAR __declspec(dllimport) extern
     79     #else
     80       #define EXSLTPUBVAR extern
     81     #endif
     82   #endif
     83   #define EXSLTCALL __cdecl
     84   #if !defined _REENTRANT
     85     #define _REENTRANT
     86   #endif
     87 #endif
     88 
     89 /* Windows platform with GNU compiler (Mingw) */
     90 #if defined(_WIN32) && defined(__MINGW32__)
     91   #undef EXSLTPUBFUN
     92   #undef EXSLTPUBVAR
     93   #undef EXSLTCALL
     94 /*
     95   #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
     96 */
     97   #if !defined(LIBEXSLT_STATIC)
     98     #define EXSLTPUBFUN __declspec(dllexport)
     99     #define EXSLTPUBVAR __declspec(dllexport) extern
    100   #else
    101     #define EXSLTPUBFUN
    102     #if !defined(LIBEXSLT_STATIC)
    103       #define EXSLTPUBVAR __declspec(dllimport) extern
    104     #else
    105       #define EXSLTPUBVAR extern
    106     #endif
    107   #endif
    108   #define EXSLTCALL __cdecl
    109   #if !defined _REENTRANT
    110     #define _REENTRANT
    111   #endif
    112 #endif
    113 
    114 /* Cygwin platform, GNU compiler */
    115 #if defined(_WIN32) && defined(__CYGWIN__)
    116   #undef EXSLTPUBFUN
    117   #undef EXSLTPUBVAR
    118   #undef EXSLTCALL
    119   #if defined(IN_LIBEXSLT) && !defined(LIBEXSLT_STATIC)
    120     #define EXSLTPUBFUN __declspec(dllexport)
    121     #define EXSLTPUBVAR __declspec(dllexport)
    122   #else
    123     #define EXSLTPUBFUN
    124     #if !defined(LIBEXSLT_STATIC)
    125       #define EXSLTPUBVAR __declspec(dllimport) extern
    126     #else
    127       #define EXSLTPUBVAR
    128     #endif
    129   #endif
    130   #define EXSLTCALL __cdecl
    131 #endif
    132 
    133 /* Compatibility */
    134 #if !defined(LIBEXSLT_PUBLIC)
    135 #define LIBEXSLT_PUBLIC EXSLTPUBVAR
    136 #endif
    137 
    138 #endif /* __EXSLT_EXPORTS_H__ */
    139 
    140 
    141