/* sigc++/config/sigcconfig.h.in. */ /* This file controls all the configurablity of sigc++ with regards to different compilers. If you are begining a new port of sigc++ to a compiler this is where to start. Unix compilers are handled automatically by configure. Other platforms require proper identification here. To add a new port, first identify your compilers unique predefine and create a LIBSIGC_{compiler} in the detection stage. Then place a section which defines for the behavior of your compiler in the platform section. */ #ifndef _SIGC_CONFIG_H_ #define _SIGC_CONFIG_H_ // autoconf likes to place a lot of stuff we don't want. #if 0 /* Define if you have the header file. */ #undef HAVE_DLFCN_H /* Name of package */ #undef PACKAGE /* Version number of package */ #undef VERSION #endif /* 0 */ #undef SIGC_MAJOR_VERSION #undef SIGC_MINOR_VERSION #undef SIGC_MICRO_VERSION // Detect common platforms #if defined(__MWERKS__) #define LIBSIGC_MWERKS #elif defined(_WIN32) // Win32 compilers have a lot of varation #if defined(__BORLANDC__) #define LIBSIGC_BC #define LIBSIGC_DLL #elif defined(_MSC_VER) #if _MSC_VER > 1300 #define LIBSIGC_MSVC_NET #else #define LIBSIGC_MSVC #define LIBSIGC_DLL #endif #elif defined(__CYGWIN__) // cygwin is considered unix and doesn't need DLL decl. #define LIBSIGC_GCC #elif defined(__MINGW32__) // LIBSIGC_DLL not strictly required for latest gcc on mingw // (that uses auto-import). #define LIBSIGC_DLL #define LIBSIGC_GCC #elif defined(__ICL) // Intel compiler #define LIBSIGC_INTEL #else #error "Unknown architecture (send me gcc --dumpspecs)" #endif #else #define LIBSIGC_GCC #endif /* _WIN32 */ // Compiler specific definitions #ifdef LIBSIGC_GCC #undef SIGC_CXX_INT_CTOR #undef SIGC_CXX_NAMESPACES #undef SIGC_CXX_PARTIAL_SPEC #undef SIGC_CXX_SPECIALIZE_REFERENCES #undef SIGC_CXX_VOID_RETURN #undef SIGC_CXX_VOID_CAST_RETURN #undef SIGC_CXX_EXPLICIT #undef SIGC_CXX_EXPLICIT_COPY #endif /* LIBSIGC_GCC */ // I guess the configure checks can't be run on these plaforms, // so we specify these compiler features based on our experience. // These platforms are detected above based on compiler-defined macros. // murrayc: #ifdef LIBSIGC_BC #define SIGC_CXX_INT_CTOR 1 #define SIGC_CXX_NAMESPACES 1 #define SIGC_CXX_PARTIAL_SPEC 1 #define SIGC_CXX_SPECIALIZE_REFERENCES 1 #define SIGC_CXX_VOID_RETURN 1 #define SIGC_CXX_VOID_CAST_RETURN 1 //#define SIGC_CXX_MEMBER_FUNC_TEMPLATES 1 //#define SIGC_CXX_MEMBER_CLASS_TEMPLATES 1 //#define SIGC_CXX_MUTABLE 1 //#define SIGC_CXX_FRIEND_TEMPLATES 1 #define SIGC_CXX_EXPLICIT explicit #define SIGC_CXX_EXPLICIT_COPY explicit #endif /* LIBSIGC_BC */ #ifdef LIBSIGC_MSVC_NET #define SIGC_CXX_INT_CTOR 1 #define SIGC_CXX_NAMESPACES 1 #define SIGC_CXX_PARTIAL_SPEC 1 #define SIGC_CXX_SPECIALIZE_REFERENCES 1 #define SIGC_CXX_VOID_RETURN 1 #define SIGC_CXX_VOID_CAST_RETURN 1 #define SIGC_CXX_EXPLICIT explicit #define SIGC_CXX_EXPLICIT_COPY explicit #endif /* LIBSIGC_MSVC_NET */ #ifdef LIBSIGC_MSVC #define SIGC_CXX_INT_CTOR 1 #define SIGC_CXX_NAMESPACES 1 //#define SIGC_CXX_MEMBER_FUNC_TEMPLATES 1 //#define SIGC_CXX_MEMBER_CLASS_TEMPLATES 1 //#define SIGC_CXX_TEMPLATE_CCTOR 1 //#define SIGC_CXX_MUTABLE 1 #define SIGC_CXX_EXPLICIT explicit #define SIGC_CXX_EXPLICIT_COPY explicit #endif /* LIBSIGC_MSVC */ #ifdef LIBSIGC_MWERKS #define SIGC_CXX_INT_CTOR 1 #define SIGC_CXX_NAMESPACES 1 #define SIGC_CXX_PARTIAL_SPEC 1 #define SIGC_CXX_SPECIALIZE_REFERENCES 1 #define SIGC_CXX_VOID_RETURN 1 #define SIGC_CXX_VOID_CAST_RETURN 1 //#define SIGC_CXX_MEMBER_FUNC_TEMPLATES 1 //#define SIGC_CXX_MEMBER_CLASS_TEMPLATES 1 //#define SIGC_CXX_MUTABLE 1 #define SIGC_CXX_EXPLICIT explicit #define SIGC_CXX_EXPLICIT_COPY explicit #endif /* LIBSIGC_MWERKS */ #ifdef LIBSIGC_INTEL #define SIGC_CXX_INT_CTOR 1 #define SIGC_CXX_NAMESPACES 1 #define SIGC_CXX_PARTIAL_SPEC 1 #define SIGC_CXX_SPECIALIZE_REFERENCES 1 #define SIGC_CXX_VOID_RETURN 1 #define SIGC_CXX_VOID_CAST_RETURN 1 #define SIGC_CXX_EXPLICIT explicit #define SIGC_CXX_EXPLICIT_COPY explicit #endif /* LIBSIGC_INTEL */ // Window DLL declarations #ifdef LIBSIGC_DLL #if defined(LIBSIGC_COMPILATION) && defined(DLL_EXPORT) #define LIBSIGC_API __declspec(dllexport) #define LIBSIGC_TMPL #elif !defined(LIBSIGC_COMPILATION) #define LIBSIGC_API __declspec(dllimport) #define LIBSIGC_TMPL extern #else #define LIBSIGC_API #endif /* LIBSIGC_COMPILATION - DLL_EXPORT */ #else #define LIBSIGC_API #endif /* LIBSIGC_DLL */ #endif /* _SIGC_CONFIG_H_ */