xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/EXTERN.h (revision 0:68f95e015346)
1*0Sstevel@tonic-gate /*    EXTERN.h
2*0Sstevel@tonic-gate  *
3*0Sstevel@tonic-gate  *    Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999,
4*0Sstevel@tonic-gate  *    2000, 2001, by Larry Wall and others
5*0Sstevel@tonic-gate  *
6*0Sstevel@tonic-gate  *    You may distribute under the terms of either the GNU General Public
7*0Sstevel@tonic-gate  *    License or the Artistic License, as specified in the README file.
8*0Sstevel@tonic-gate  *
9*0Sstevel@tonic-gate  */
10*0Sstevel@tonic-gate 
11*0Sstevel@tonic-gate /*
12*0Sstevel@tonic-gate  * EXT  designates a global var which is defined in perl.h
13*0Sstevel@tonic-gate  * dEXT designates a global var which is defined in another
14*0Sstevel@tonic-gate  *      file, so we can't count on finding it in perl.h
15*0Sstevel@tonic-gate  *      (this practice should be avoided).
16*0Sstevel@tonic-gate  */
17*0Sstevel@tonic-gate #undef EXT
18*0Sstevel@tonic-gate #undef dEXT
19*0Sstevel@tonic-gate #undef EXTCONST
20*0Sstevel@tonic-gate #undef dEXTCONST
21*0Sstevel@tonic-gate #if defined(VMS) && !defined(__GNUC__)
22*0Sstevel@tonic-gate     /* Suppress portability warnings from DECC for VMS-specific extensions */
23*0Sstevel@tonic-gate #  ifdef __DECC
24*0Sstevel@tonic-gate #    pragma message disable (GLOBALEXT,NOSHAREEXT,READONLYEXT)
25*0Sstevel@tonic-gate #  endif
26*0Sstevel@tonic-gate #  define EXT globalref
27*0Sstevel@tonic-gate #  define dEXT globaldef {"$GLOBAL_RW_VARS"} noshare
28*0Sstevel@tonic-gate #  define EXTCONST globalref
29*0Sstevel@tonic-gate #  define dEXTCONST globaldef {"$GLOBAL_RO_VARS"} readonly
30*0Sstevel@tonic-gate #else
31*0Sstevel@tonic-gate #  if defined(WIN32) && !defined(PERL_STATIC_SYMS)
32*0Sstevel@tonic-gate #    ifdef PERLDLL
33*0Sstevel@tonic-gate #      define EXT extern __declspec(dllexport)
34*0Sstevel@tonic-gate #      define dEXT
35*0Sstevel@tonic-gate #      define EXTCONST extern __declspec(dllexport) const
36*0Sstevel@tonic-gate #      define dEXTCONST const
37*0Sstevel@tonic-gate #    else
38*0Sstevel@tonic-gate #      define EXT extern __declspec(dllimport)
39*0Sstevel@tonic-gate #      define dEXT
40*0Sstevel@tonic-gate #      define EXTCONST extern __declspec(dllimport) const
41*0Sstevel@tonic-gate #      define dEXTCONST const
42*0Sstevel@tonic-gate #    endif
43*0Sstevel@tonic-gate #  else
44*0Sstevel@tonic-gate #    if defined(__CYGWIN__) && defined(USEIMPORTLIB)
45*0Sstevel@tonic-gate #      define EXT extern __declspec(dllimport)
46*0Sstevel@tonic-gate #      define dEXT
47*0Sstevel@tonic-gate #      define EXTCONST extern __declspec(dllimport) const
48*0Sstevel@tonic-gate #      define dEXTCONST const
49*0Sstevel@tonic-gate #    else
50*0Sstevel@tonic-gate #      define EXT extern
51*0Sstevel@tonic-gate #      define dEXT
52*0Sstevel@tonic-gate #      define EXTCONST extern const
53*0Sstevel@tonic-gate #      define dEXTCONST const
54*0Sstevel@tonic-gate #    endif
55*0Sstevel@tonic-gate #  endif
56*0Sstevel@tonic-gate #endif
57*0Sstevel@tonic-gate 
58*0Sstevel@tonic-gate #undef INIT
59*0Sstevel@tonic-gate #define INIT(x)
60*0Sstevel@tonic-gate 
61*0Sstevel@tonic-gate #undef DOINIT
62