// Copyright 1997-1998 Omni Development, Inc.  All rights reserved.
//
// $Header: /LocalDeveloper/Source/CVS/OmniGroup/OmniBase/FrameworkDefines.h,v 1.2 1998/01/21 07:15:32 kc Exp $

#ifndef _OmniBaseDEFINES_H
#define _OmniBaseDEFINES_H

//
//  Platform specific defs for externs
//

//
// For MACH
//

#if defined(__MACH__)

#ifdef __cplusplus
// This isnt extern "C" because the compiler will not allow this if it has
// seen an extern "Objective-C"
#define OmniBase_EXTERN		extern
#define OmniBase_PRIVATE_EXTERN	__private_extern__
#else
#define OmniBase_EXTERN		extern
#define OmniBase_PRIVATE_EXTERN	__private_extern__
#endif

//
// For Windows
//

#elif defined(WIN32)

#ifndef _NSBUILDING_OmniBase_DLL
#define OmniBaseDLL_GOOP	__declspec(dllimport)
#else
#define OmniBaseDLL_GOOP	__declspec(dllexport)
#endif

#ifdef __cplusplus
#define OmniBase_EXTERN		extern "C" OmniBaseDLL_GOOP
#define OmniBase_PRIVATE_EXTERN	extern
#else
#define OmniBase_EXTERN		OmniBaseDLL_GOOP extern
#define OmniBase_PRIVATE_EXTERN	extern
#endif

//
//  For Solaris
//

#elif defined(SOLARIS)

#ifdef __cplusplus
#define OmniBase_EXTERN		extern "C"
#define OmniBase_PRIVATE_EXTERN	extern "C"
#else
#define OmniBase_EXTERN		extern
#define OmniBase_PRIVATE_EXTERN	extern
#endif

#endif

#endif // _OmniBaseDEFINES_H

