EXTERN.h revision 1.5
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