diff options
author | Richard Levitte <levitte@openssl.org> | 2000-12-31 00:15:57 +0000 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2000-12-31 00:15:57 +0000 |
commit | 21cd437886f448858e166c149f40604dfe6b7b7c (patch) | |
tree | bd43c4cd9c5d1bf3f5cadf59bc8c2a6e5bcee7fc /e_os2.h | |
parent | f09628e42f4652a91fd57e60af49e82533268331 (diff) | |
download | openssl-new-21cd437886f448858e166c149f40604dfe6b7b7c.tar.gz |
Define OPENSSL_EXPORT and OPENSSL_IMPORT and give OPENSSL_EXTERN the
default value OPENSSL_IMPORT. Explain the use of all those macros.
Diffstat (limited to 'e_os2.h')
-rw-r--r-- | e_os2.h | 35 |
1 files changed, 27 insertions, 8 deletions
@@ -17,22 +17,41 @@ extern "C" { # define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ #endif -/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, - to define and declare certain global - symbols that, with some compilers under VMS, have to be defined and - declared explicitely with globaldef and globalref. On other OS:es, - these macros are defined with something sensible. */ +/* Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare + certain global symbols that, with some compilers under VMS, have to be + defined and declared explicitely with globaldef and globalref. + Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare + DLL exports and imports for compilers under Win32. These are a little + more complicated to use. Basically, for any library that exports some + global variables, the following code must be present in the header file + that declares them, before OPENSSL_EXTERN is used: + + #ifdef SOME_BUILD_FLAG_MACRO + # undef OPENSSL_EXTERN + # define OPENSSL_EXTERN OPENSSL_EXPORT + #endif + + The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL + have some generally sensible values, and for OPENSSL_EXTERN to have the + value OPENSSL_IMPORT. +*/ #if defined(VMS) && !defined(__DECC) -# define OPENSSL_EXTERN globalref +# define OPENSSL_EXPORT globalref +# define OPENSSL_IMPORT globalref # define OPENSSL_GLOBAL globaldef +#elif defined(WINDOWS) +# define OPENSSL_EXPORT extern _declspec(dllexport) +# define OPENSSL_IMPORT extern _declspec(dllimport) +# define OPENSSL_GLOBAL #else -# define OPENSSL_EXTERN extern +# define OPENSSL_EXPORT extern +# define OPENSSL_IMPORT extern # define OPENSSL_GLOBAL #endif +#define OPENSSL_EXTERN OPENSSL_IMPORT #ifdef __cplusplus } #endif #endif - |