This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Handle PERLIO= and document a bit.
[perl5.git] / INTERN.h
CommitLineData
a0d0e21e 1/* INTERN.h
a687059c 2 *
3f774658 3 * Copyright (c) 1991-2002, Larry Wall
a687059c 4 *
132b68a5
LW
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.
8d063cd8 7 *
8d063cd8
LW
8 */
9
4633a7c4
LW
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 */
8d063cd8 16#undef EXT
4633a7c4 17#undef dEXT
36477c24
PP
18#undef EXTCONST
19#undef dEXTCONST
4633a7c4 20#if defined(VMS) && !defined(__GNUC__)
17f28c40
CB
21 /* Suppress portability warnings from DECC for VMS-specific extensions */
22# ifdef __DECC
23# pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
24# endif
4633a7c4
LW
25# define EXT globaldef {"$GLOBAL_RW_VARS"} noshare
26# define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
36477c24
PP
27# define EXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
28# define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
4633a7c4 29#else
7340a771 30#if defined(WIN32) && defined(__MINGW32__)
5db10396 31# define EXT __declspec(dllexport)
7340a771 32# define dEXT
5db10396 33# define EXTCONST __declspec(dllexport) const
7340a771 34# define dEXTCONST const
5db10396
GS
35#else
36#ifdef __cplusplus
37# define EXT
38# define dEXT
39# define EXTCONST extern const
40# define dEXTCONST const
f0f333f4 41#else
4633a7c4
LW
42# define EXT
43# define dEXT
36477c24
PP
44# define EXTCONST const
45# define dEXTCONST const
4633a7c4 46#endif
f0f333f4 47#endif
5db10396 48#endif
8d063cd8
LW
49
50#undef INIT
51#define INIT(x) = x
52
53#define DOINIT