#if defined _WIN32 || defined __CYGWIN__
#define DLL_PUBLIC __declspec(dllexport)
#else
  #if defined __GNUC__
    #define DLL_PUBLIC __attribute__ ((visibility("default")))
  #else
    #pragma message ("Compiler does not support symbol visibility.")
    #define DLL_PUBLIC
  #endif
#endif

#if defined SHAR
int DLL_PUBLIC func() {
    return 1;
}
#elif defined STAT
int func() {
    return 0;
}
#else
#error "Missing type definition."
#endif

