From ffc026ca61c97c09a33b77ec391b4ccdde50b0b4 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 7 Jul 1998 22:38:05 +0000 Subject: [PATCH] fixed shared/static issues on WIN32 --- src/include/shareLib.h | 32 ++++++++++++++++++++++++-------- src/libCom/misc/shareLib.h | 32 ++++++++++++++++++++++++-------- 2 files changed, 48 insertions(+), 16 deletions(-) diff --git a/src/include/shareLib.h b/src/include/shareLib.h index d8d3b3f69..c74ee5ede 100644 --- a/src/include/shareLib.h +++ b/src/include/shareLib.h @@ -74,16 +74,28 @@ * Also check for "EPICS_DLL_NO" not defined so that we will not use these * keywords if it is an object library build of base under WIN32. */ -#if (defined(_WIN32) && !defined(EPICS_DLL_NO)) && !defined(__CYGWIN32__) +#if defined(_WIN32) && !defined(__CYGWIN32__) # if defined(epicsExportSharedSymbols) -# define epicsShareExtern extern __declspec(dllexport) -# define epicsShareClass __declspec(dllexport) -# define epicsShareFunc __declspec(dllexport) +# if defined(EPICS_DLL_NO) /* this indicates that we are not building a DLL */ +# define epicsShareExtern extern +# define epicsShareClass +# define epicsShareFunc +# else +# define epicsShareExtern extern __declspec(dllexport) +# define epicsShareClass __declspec(dllexport) +# define epicsShareFunc __declspec(dllexport) +# endif # else -# define epicsShareExtern extern __declspec(dllimport) -# define epicsShareClass __declspec(dllimport) -# define epicsShareFunc __declspec(dllimport) +# if defined(_DLL) /* this indicates that we are being compiled to call a DLL */ +# define epicsShareExtern extern __declspec(dllimport) +# define epicsShareClass __declspec(dllimport) +# define epicsShareFunc __declspec(dllimport) +# else +# define epicsShareExtern extern +# define epicsShareClass +# define epicsShareFunc +# endif # endif /* * Subroutine removes arguments @@ -97,7 +109,11 @@ * (Those using either ... or va_list arguments) */ # define epicsShareAPIV __cdecl -# define epicsShareDef __declspec(dllexport) +# if defined(EPICS_DLL_NO) /* this indicates that we are not building a DLL */ +# define epicsShareDef +# else +# define epicsShareDef __declspec(dllexport) +# endif # define READONLY const /* * if its the old VAX C Compiler (not DEC C) diff --git a/src/libCom/misc/shareLib.h b/src/libCom/misc/shareLib.h index d8d3b3f69..c74ee5ede 100644 --- a/src/libCom/misc/shareLib.h +++ b/src/libCom/misc/shareLib.h @@ -74,16 +74,28 @@ * Also check for "EPICS_DLL_NO" not defined so that we will not use these * keywords if it is an object library build of base under WIN32. */ -#if (defined(_WIN32) && !defined(EPICS_DLL_NO)) && !defined(__CYGWIN32__) +#if defined(_WIN32) && !defined(__CYGWIN32__) # if defined(epicsExportSharedSymbols) -# define epicsShareExtern extern __declspec(dllexport) -# define epicsShareClass __declspec(dllexport) -# define epicsShareFunc __declspec(dllexport) +# if defined(EPICS_DLL_NO) /* this indicates that we are not building a DLL */ +# define epicsShareExtern extern +# define epicsShareClass +# define epicsShareFunc +# else +# define epicsShareExtern extern __declspec(dllexport) +# define epicsShareClass __declspec(dllexport) +# define epicsShareFunc __declspec(dllexport) +# endif # else -# define epicsShareExtern extern __declspec(dllimport) -# define epicsShareClass __declspec(dllimport) -# define epicsShareFunc __declspec(dllimport) +# if defined(_DLL) /* this indicates that we are being compiled to call a DLL */ +# define epicsShareExtern extern __declspec(dllimport) +# define epicsShareClass __declspec(dllimport) +# define epicsShareFunc __declspec(dllimport) +# else +# define epicsShareExtern extern +# define epicsShareClass +# define epicsShareFunc +# endif # endif /* * Subroutine removes arguments @@ -97,7 +109,11 @@ * (Those using either ... or va_list arguments) */ # define epicsShareAPIV __cdecl -# define epicsShareDef __declspec(dllexport) +# if defined(EPICS_DLL_NO) /* this indicates that we are not building a DLL */ +# define epicsShareDef +# else +# define epicsShareDef __declspec(dllexport) +# endif # define READONLY const /* * if its the old VAX C Compiler (not DEC C)