1 /* EXTERN.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 globalref 26 # define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare 27 # define EXTCONST globalref 28 # define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly 29 #else 30 # if defined(WIN32) && !defined(PERL_STATIC_SYMS) && !defined(PERL_OBJECT) 31 # ifdef PERLDLL 32 # define EXT extern __declspec(dllexport) 33 # define dEXT 34 # define EXTCONST extern __declspec(dllexport) const 35 # define dEXTCONST const 36 # else 37 # define EXT extern __declspec(dllimport) 38 # define dEXT 39 # define EXTCONST extern __declspec(dllimport) const 40 # define dEXTCONST const 41 # endif 42 # else 43 # if defined(__CYGWIN__) && defined(USEIMPORTLIB) 44 # define EXT extern __declspec(dllimport) 45 # define dEXT 46 # define EXTCONST extern __declspec(dllimport) const 47 # define dEXTCONST const 48 # else 49 # define EXT extern 50 # define dEXT 51 # define EXTCONST extern const 52 # define dEXTCONST const 53 # endif 54 # endif 55 #endif 56 57 #undef INIT 58 #define INIT(x) 59 60 #undef DOINIT 61