This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
YA resync with mainstem, including VMS patches from others
[perl5.git] / EXTERN.h
... / ...
CommitLineData
1/* EXTERN.h
2 *
3 * Copyright (c) 1991-2000, 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