EXTERN.h revision 1.3
1/* EXTERN.h 2 * 3 * Copyright (c) 1991-1999, 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(__GNUC__) && !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# define EXT extern 44# define dEXT 45# define EXTCONST extern const 46# define dEXTCONST const 47# endif 48#endif 49 50#undef INIT 51#define INIT(x) 52 53#undef DOINIT 54