[inseparable changes from patch from perl5.003_23 to perl5.003_24]
[p5sagit/p5-mst-13.2.git] / win32 / EXTERN.h
1 /*    EXTERN.h
2  *
3  *    Copyright (c) 1991-1994, Larry Wall
4  *
5  *    You may distribute under the terms of either the GNU General Public
6  *    License or the Artistic License, as specified in the README file.
7  *
8  */
9
10 /*
11  * EXT  designates a global var which is defined in perl.h
12  * dEXT designates a global var which is defined in another
13  *      file, so we can't count on finding it in perl.h
14  *      (this practice should be avoided).
15  */
16 #undef EXT
17 #undef dEXT
18 #undef EXTCONST
19 #undef dEXTCONST
20 #if defined(VMS) && !defined(__GNUC__)
21 #  define EXT globalref
22 #  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
23 #  define EXTCONST globalref
24 #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
25 #elif defined(_MSC_VER) && defined(_WIN32)
26 #       ifdef PERLDLL
27 #               define EXT __declspec(dllexport)
28 #               define dEXT 
29 #               define EXTCONST __declspec(dllexport) const
30 #               define dEXTCONST const
31 #       else
32 #               define EXT __declspec(dllimport)
33 #               define dEXT 
34 #               define EXTCONST __declspec(dllimport) const
35 #               define dEXTCONST const
36 #       endif
37 #else
38 #  define EXT extern
39 #  define dEXT
40 #  define EXTCONST extern const
41 #  define dEXTCONST const
42 #endif
43
44 #undef INIT
45 #define INIT(x)
46
47 #undef DOINIT