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