This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
locale.t, pat_advanced.t: Remove TODOs
[perl5.git] / EXTERN.h
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     /* miniperl should not export anything */
33 #    if defined(PERL_IS_MINIPERL) && !defined(UNDER_CE) && defined(_MSC_VER)
34 #      define EXT extern
35 #      define dEXT 
36 #      define EXTCONST extern const
37 #      define dEXTCONST const
38 #    else
39 #      if defined(PERLDLL) || defined(__SYMBIAN32__)
40 #        define EXT extern __declspec(dllexport)
41 #        define dEXT 
42 #        define EXTCONST extern __declspec(dllexport) const
43 #        define dEXTCONST const
44 #      else
45 #        define EXT extern __declspec(dllimport)
46 #        define dEXT 
47 #        define EXTCONST extern __declspec(dllimport) const
48 #        define dEXTCONST const
49 #      endif
50 #    endif
51 #  else
52 #    if defined(__CYGWIN__) && defined(USEIMPORTLIB)
53 #      define EXT extern __declspec(dllimport)
54 #      define dEXT 
55 #      define EXTCONST extern __declspec(dllimport) const
56 #      define dEXTCONST const
57 #    else
58 #      define EXT extern
59 #      define dEXT
60 #      define EXTCONST extern const
61 #      define dEXTCONST const
62 #    endif
63 #  endif
64 #endif
65
66 #undef INIT
67 #define INIT(x)
68
69 #undef DOINIT