ec062ee721dbc860e632e43b9d656e570b47d2e6
[p5sagit/p5-mst-13.2.git] / EXTERN.h
1 /*    EXTERN.h
2  *
3  *    Copyright (c) 1991-1997, 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 #else
26 #  if defined(_MSC_VER) && defined(_WIN32)
27 #    ifdef PERLDLL
28 #      define EXT __declspec(dllexport)
29 #      define dEXT 
30 #      define EXTCONST __declspec(dllexport) const
31 #      define dEXTCONST const
32 #    else
33 #      if defined(__cplusplus)
34 #        define EXT extern __declspec(dllimport)
35 #        define dEXT 
36 #        define EXTCONST extern __declspec(dllimport) const
37 #        define dEXTCONST const
38 #      else
39 #        define EXT __declspec(dllimport)
40 #        define dEXT 
41 #        define EXTCONST __declspec(dllimport) const
42 #        define dEXTCONST const
43 #      endif
44 #    endif
45 #  else
46 #    define EXT extern
47 #    define dEXT
48 #    define EXTCONST extern const
49 #    define dEXTCONST const
50 #  endif
51 #endif
52
53 #undef INIT
54 #define INIT(x)
55
56 #undef DOINIT