1 /* INTERN.h 2 * 3 * Copyright (c) 1991-2001, 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 /* Suppress portability warnings from DECC for VMS-specific extensions */ 22 # ifdef __DECC 23 # pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT) 24 # endif 25 # define EXT globaldef {"$GLOBAL_RW_VARS"} noshare 26 # define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare 27 # define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly 28 # define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly 29 #else 30 #if defined(WIN32) && defined(__MINGW32__) 31 # define EXT __declspec(dllexport) 32 # define dEXT 33 # define EXTCONST __declspec(dllexport) const 34 # define dEXTCONST const 35 #else 36 #ifdef __cplusplus 37 # define EXT 38 # define dEXT 39 # define EXTCONST extern const 40 # define dEXTCONST const 41 #else 42 # define EXT 43 # define dEXT 44 # define EXTCONST const 45 # define dEXTCONST const 46 #endif 47 #endif 48 #endif 49 50 #undef INIT 51 #define INIT(x) = x 52 53 #define DOINIT 54