Blame config.h

Packit 8a864e
// Copyright (c) 1994, 1995, 1996 James Clark
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#ifndef config_INCLUDED
Packit 8a864e
#define config_INCLUDED 1
Packit 8a864e
Packit 8a864e
#define SP_INCLUDE_UNISTD_H
Packit 8a864e
#define SP_POSIX_FILENAMES
Packit 8a864e
Packit 8a864e
#ifdef __GNUG__
Packit 8a864e
// Ideally, this should be set in configure.in, I think
Packit 8a864e
// It's not missing, but it pulls in libg++
Packit 8a864e
#define SP_NEW_H_MISSING
Packit 8a864e
// set_new_handler() has to be declared extern "C"
Packit 8a864e
#define SP_SET_NEW_HANDLER_EXTERN_C
Packit 8a864e
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
Packit 8a864e
#define SP_ANSI_FOR_SCOPE
Packit 8a864e
#endif
Packit 8a864e
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
Packit 8a864e
#define SP_ANSI_LIB
Packit 8a864e
#define SP_NO_STD_NAMESPACE
Packit 8a864e
#undef SP_NEW_H_MISSING
Packit 8a864e
#endif
Packit 8a864e
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 9)
Packit 8a864e
#undef SP_NO_STD_NAMESPACE
Packit 8a864e
#endif
Packit 8a864e
#endif /* __GNUG__ */
Packit 8a864e
Packit 8a864e
#if defined(sun) || defined(__sun)
Packit 8a864e
// struct stat has st_blksize member
Packit 8a864e
#define SP_STAT_BLKSIZE
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#if (defined __MACH__) && (! defined __GNU__)
Packit 8a864e
#define SP_MUTEX_MACH
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef __EMX__
Packit 8a864e
// EMX 0.9a for OS/2
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MSDOS_FILENAMES
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef _MSC_VER
Packit 8a864e
// Microsoft Visual C++ 4.0
Packit 8a864e
#undef SP_INCLUDE_UNISTD_H
Packit 8a864e
#define SP_INCLUDE_IO_H
Packit 8a864e
#ifndef SP_ANSI_CLASS_INST
Packit 8a864e
#define SP_ANSI_CLASS_INST
Packit 8a864e
#endif
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MSDOS_FILENAMES
Packit 8a864e
#define SP_SHORT_HEADERS
Packit 8a864e
#pragma warning ( disable : 4660 ) // already instantiated
Packit 8a864e
#pragma warning ( disable : 4661 ) // missing def for decl member
Packit 8a864e
#pragma warning ( disable : 4786 ) // debug symbol truncated (>255 chars)
Packit 8a864e
#pragma warning ( disable : 4018 ) // signed/unsigned mismatch
Packit 8a864e
#pragma warning ( disable : 4251 ) // __declspec(dllexport)
Packit 8a864e
#pragma warning ( disable : 4275 )
Packit 8a864e
#pragma warning ( disable : 4237 ) // future reserved keyword
Packit 8a864e
#define huge verybig
Packit 8a864e
#if _MSC_VER == 900
Packit 8a864e
#define SP_DECLARE_PLACEMENT_OPERATOR_NEW
Packit 8a864e
#endif
Packit 8a864e
#define set_new_handler _set_new_handler
Packit 8a864e
// Function passed to set_new_handler() returns int and takes size_t argument.
Packit 8a864e
#define SP_FANCY_NEW_HANDLER
Packit 8a864e
Packit 8a864e
#if _MSC_VER >= 1100
Packit 8a864e
// Visual C++ 5.0
Packit 8a864e
#define SP_HAVE_BOOL
Packit 8a864e
#define SP_SIZEOF_BOOL_1
Packit 8a864e
#pragma warning ( disable : 4800 ) // forcing value to bool 'true' or
Packit 8a864e
                                   // 'false' (performance warning)
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#if _MSC_VER >= 1200
Packit 8a864e
// Visual C++ 6.0
Packit 8a864e
#define SP_HAVE_PLACEMENT_OPERATOR_DELETE
Packit 8a864e
#define SP_HAVE_TYPENAME
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#define SP_HAVE_SETMODE
Packit 8a864e
#define SP_DLLEXPORT __declspec(dllexport)
Packit 8a864e
#define SP_DLLIMPORT __declspec(dllimport)
Packit 8a864e
Packit 8a864e
#if defined(_DLL) || defined(_USRDLL) || defined(_MT)
Packit 8a864e
#define SP_USE_DLL
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef SP_USE_DLL
Packit 8a864e
#ifndef BUILD_LIBSP
Packit 8a864e
// It's not possible to export templates using __declspec(dllexport),
Packit 8a864e
// so instead we include the template definitions in the headers,
Packit 8a864e
// which allows Visual C++ to instantiate any needed templates
Packit 8a864e
// in the client.
Packit 8a864e
#define SP_DEFINE_TEMPLATES
Packit 8a864e
#endif
Packit 8a864e
#endif /* SP_USE_DLL */
Packit 8a864e
Packit 8a864e
#ifndef SP_MANUAL_INST
Packit 8a864e
#ifndef SP_DEFINE_TEMPLATES
Packit 8a864e
#define SP_MANUAL_INST
Packit 8a864e
#endif
Packit 8a864e
#endif /* not SP_MANUAL_INST */
Packit 8a864e
Packit 8a864e
// SP_WIDE_SYSTEM builds will not compile due to missing overloads
Packit 8a864e
// OutputCharStream &operator<<(wchar_t) and
Packit 8a864e
// OutputCharStream &operator<<(unsigned short*)
Packit 8a864e
// which are required by onsgmls; osx has probably similar issues.
Packit 8a864e
// Once these issues are addressed, the following lines should be
Packit 8a864e
// re-activated.
Packit 8a864e
Packit 8a864e
// #ifdef SP_MULTI_BYTE
Packit 8a864e
// #define SP_WIDE_SYSTEM
Packit 8a864e
// #endif
Packit 8a864e
Packit 8a864e
// wchar_t's base type is an unsigned short
Packit 8a864e
#define SP_WCHAR_T_USHORT
Packit 8a864e
Packit 8a864e
// Enable precompiled header support.
Packit 8a864e
#define SP_PCH
Packit 8a864e
// Don't compile in message text.
Packit 8a864e
#define SP_NO_MESSAGE_TEXT
Packit 8a864e
#ifdef _MT
Packit 8a864e
// Use Win32 critical section facilities
Packit 8a864e
#define SP_MUTEX_WIN32
Packit 8a864e
// Use the new Standard C++ library
Packit 8a864e
#define SP_ANSI_LIB
Packit 8a864e
#if _MSC_VER < 1100
Packit 8a864e
// Versions prior to 5.0 don't use the std namespace
Packit 8a864e
#define SP_NO_STD_NAMESPACE
Packit 8a864e
#endif
Packit 8a864e
#endif /* _MT */
Packit 8a864e
#endif /* _MSC_VER */
Packit 8a864e
Packit 8a864e
#ifdef __WATCOMC__
Packit 8a864e
// Watcom C++ 10.0a
Packit 8a864e
#define SP_MANUAL_INST
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MSDOS_FILENAMES
Packit 8a864e
#undef SP_INCLUDE_UNISTD_H
Packit 8a864e
#define SP_INCLUDE_IO_H
Packit 8a864e
#pragma warning 004 9
Packit 8a864e
#undef huge
Packit 8a864e
// Cannot handle T::~T in template.
Packit 8a864e
#define SP_QUAL_TEMPLATE_DTOR_BROKEN
Packit 8a864e
#define SP_HAVE_SETMODE
Packit 8a864e
#define _setmode setmode
Packit 8a864e
#if __WATCOMC__ < 1050
Packit 8a864e
#define _O_BINARY O_BINARY
Packit 8a864e
#endif
Packit 8a864e
#define SP_WCHAR_T_USHORT
Packit 8a864e
#if __WATCOMC__ >= 1100
Packit 8a864e
#define SP_HAVE_BOOL
Packit 8a864e
// #define SP_SIZEOF_BOOL_1
Packit 8a864e
#endif
Packit 8a864e
#endif /* __WATCOMC__ */
Packit 8a864e
Packit 8a864e
#ifdef __BORLANDC__
Packit 8a864e
// Borland C++ 5.0
Packit 8a864e
#define SP_ANSI_FOR_SCOPE
Packit 8a864e
#define SP_HAVE_RTTI
Packit 8a864e
#define SP_HAVE_SETMODE
Packit 8a864e
#undef SP_INCLUDE_UNISTD_H
Packit 8a864e
#define SP_INCLUDE_IO_H
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MSDOS_FILENAMES
Packit 8a864e
#define SP_HAVE_BOOL
Packit 8a864e
#define SP_SHORT_HEADERS
Packit 8a864e
#define _O_BINARY O_BINARY
Packit 8a864e
#define _setmode setmode
Packit 8a864e
#define SP_ANSI_CLASS_INST
Packit 8a864e
#define SP_MANUAL_INST
Packit 8a864e
// Building as a DLL doesn't work with Borland C++ yet.
Packit 8a864e
#define SP_DLLEXPORT __declspec(dllexport)
Packit 8a864e
#define SP_DLLIMPORT __declspec(dllimport)
Packit 8a864e
#ifdef SP_USE_DLL
Packit 8a864e
#ifndef BUILD_LIBSP
Packit 8a864e
#define SP_DEFINE_TEMPLATES
Packit 8a864e
#endif
Packit 8a864e
#endif /* SP_USE_DLL */
Packit 8a864e
#define SP_WCHAR_T_USHORT
Packit 8a864e
#endif /* __BORLANDC__ */
Packit 8a864e
Packit 8a864e
#ifdef __IBMCPP__
Packit 8a864e
// IBM CSet++ 2.1 from Horst Szillat <szillat@berlin.snafu.de>.
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MANUAL_INST
Packit 8a864e
#define SP_SHORT_HEADERS
Packit 8a864e
#define SP_MSDOS_FILENAMES
Packit 8a864e
#undef SP_INCLUDE_UNISTD_H
Packit 8a864e
#define SP_INCLUDE_IO_H
Packit 8a864e
#define S_IFMT (S_IFDIR|S_IFCHR|S_IFREG)
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef __xlC__
Packit 8a864e
// IBM CSet++ 3.1 on AIX 4.1.
Packit 8a864e
// Use CXX=xlC and CC=xlC in the Makefile.
Packit 8a864e
// Note that -g creates massive executables and that -O
Packit 8a864e
// takes ages to compile and creates core dumping executables!
Packit 8a864e
// I havn't tried the socket stuff.
Packit 8a864e
// <Chris_Paulson-Ellis@3mail.3com.com>
Packit 8a864e
#define SP_MANUAL_INST
Packit 8a864e
#define SP_HAVE_LOCALE
Packit 8a864e
#define SP_STAT_BLKSIZE
Packit 8a864e
#endif /* __xlC__ */
Packit 8a864e
Packit 8a864e
#ifdef macintosh
Packit 8a864e
// Apple MacOS. Tested only with Metrowerks CW10.
Packit 8a864e
// From Ashley Colin Yakeley <AshleyB@halcyon.com>
Packit 8a864e
#undef SP_POSIX_FILENAMES
Packit 8a864e
#define SP_MAC_FILENAMES
Packit 8a864e
#define SP_LINE_TERM1 '\r'
Packit 8a864e
Packit 8a864e
#ifdef __MWERKS__
Packit 8a864e
// Metrowerks for some platform (MacOS in this case)
Packit 8a864e
Packit 8a864e
#pragma mpwc_newline off
Packit 8a864e
#define SP_DEFINE_TEMPLATES
Packit 8a864e
// #define SP_USE_DLL -- __declspec doesn't work with classes (yet)
Packit 8a864e
#ifdef SP_USE_DLL
Packit 8a864e
#define SP_DLLEXPORT __declspec(export)
Packit 8a864e
#define SP_DLLIMPORT __declspec(import)
Packit 8a864e
#endif // SP_USE_DLL
Packit 8a864e
Packit 8a864e
#if __MWERKS__ >= 0x1000
Packit 8a864e
// bool option only defined for CW10 and later (note __MWERKS__ is BCD)
Packit 8a864e
#if __option(bool)
Packit 8a864e
#define SP_HAVE_BOOL
Packit 8a864e
#endif // __option(bool)
Packit 8a864e
#endif // __MWERKS__ >= 0x1000
Packit 8a864e
#endif // __MWERKS__
Packit 8a864e
Packit 8a864e
#if ('\n' != 10) || ('\r' != 13)
Packit 8a864e
#error "newlines incorrect"
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#endif /* macintosh */
Packit 8a864e
Packit 8a864e
#ifdef SP_HAVE_SETMODE
Packit 8a864e
#ifndef SP_LINE_TERM1
Packit 8a864e
#define SP_LINE_TERM1 '\r'
Packit 8a864e
#define SP_LINE_TERM2 '\n'
Packit 8a864e
#endif
Packit 8a864e
#endif /* not SP_HAVE_SETMODE */
Packit 8a864e
Packit 8a864e
#ifndef SP_LINE_TERM1
Packit 8a864e
#define SP_LINE_TERM1 '\n'
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifndef SP_ANSI_FOR_SCOPE
Packit 8a864e
// This simulates the new ANSI "for" scope rules
Packit 8a864e
#define for if (0); else for
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifndef SP_HAVE_TYPENAME
Packit 8a864e
#define typename /* as nothing */
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifndef SP_DLLEXPORT
Packit 8a864e
#define SP_DLLEXPORT /* as nothing */
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifndef SP_DLLIMPORT
Packit 8a864e
#define SP_DLLIMPORT /* as nothing */
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef SP_USE_DLL
Packit 8a864e
Packit 8a864e
#ifdef BUILD_LIBSP
Packit 8a864e
#define SP_API SP_DLLEXPORT
Packit 8a864e
#else
Packit 8a864e
#define SP_API SP_DLLIMPORT
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#else /* not SP_USE_DLL */
Packit 8a864e
Packit 8a864e
#define SP_API /* as nothing */
Packit 8a864e
Packit 8a864e
#endif /* not SP_USE_DLL */
Packit 8a864e
Packit 8a864e
// SP_WIDE_SYSTEM says that your OS provides wide character interfaces
Packit 8a864e
// SP_WIDE_SYSTEM currently works only with Visual C++ and Windows NT/95
Packit 8a864e
// SP_WIDE_SYSTEM implies SP_MULTI_BYTE
Packit 8a864e
#ifdef SP_WIDE_SYSTEM
Packit 8a864e
#ifndef SP_MULTI_BYTE
Packit 8a864e
#define SP_MULTI_BYTE
Packit 8a864e
#endif
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
#define SP_NAMESPACE_SCOPE SP_NAMESPACE::
Packit 8a864e
#else
Packit 8a864e
#define SP_NAMESPACE_SCOPE
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
#ifdef SP_MSDOS_FILENAMES
Packit 8a864e
#define PATH_SEPARATOR ';'
Packit 8a864e
#else
Packit 8a864e
#define PATH_SEPARATOR ':'
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
Packit 8a864e
/* new stuff */
Packit 8a864e
Packit 8a864e
#ifndef HAVE_MUTABLE
Packit 8a864e
#define mutable
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
// NOTE: This is processed as a Makefile, not as a header by autoconf.
Packit 8a864e
#define SP_PACKAGE "OpenSP"
Packit 8a864e
#define SP_VERSION "1.5.2"
Packit 8a864e
Packit 8a864e
#endif /* not config_INCLUDED */