This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5380delta: a messy commit to get things started
[perl5.git] / EXTERN.h
... / ...
CommitLineData
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 *
14 * dEXT: designates a global var which is defined in another
15 * file, so we can't count on finding it in perl.h
16 * (this practice should be avoided).
17 */
18#undef EXT
19#undef dEXT
20#undef EXTCONST
21#undef dEXTCONST
22
23# if defined(WIN32) && !defined(PERL_STATIC_SYMS)
24 /* miniperl should not export anything */
25# if defined(PERL_IS_MINIPERL)
26# define EXT extern
27# define dEXT
28# define EXTCONST extern const
29# define dEXTCONST const
30# elif defined(PERLDLL)
31# define EXT EXTERN_C __declspec(dllexport)
32# define dEXT
33# define EXTCONST EXTERN_C __declspec(dllexport) const
34# define dEXTCONST const
35# else
36# define EXT EXTERN_C __declspec(dllimport)
37# define dEXT
38# define EXTCONST EXTERN_C __declspec(dllimport) const
39# define dEXTCONST const
40# endif
41# else
42# if defined(__CYGWIN__) && defined(USEIMPORTLIB)
43# define EXT extern __declspec(dllimport)
44# define dEXT
45# define EXTCONST extern __declspec(dllimport) const
46# define dEXTCONST const
47# else
48# define EXT extern
49# define dEXT
50# define EXTCONST extern const
51# define dEXTCONST const
52# endif
53# endif
54
55#undef INIT
56#define INIT(...)
57
58#undef DOINIT