]> git.vpit.fr Git - perl/modules/indirect.git/blob - xsh/caps.h
The Big Boilerplate Factorization
[perl/modules/indirect.git] / xsh / caps.h
1 #ifndef XSH_CAPS_H
2 #define XSH_CAPS_H 1
3
4 #define XSH_HAS_PERL(R, V, S) (PERL_REVISION > (R) || (PERL_REVISION == (R) && (PERL_VERSION > (V) || (PERL_VERSION == (V) && (PERL_SUBVERSION >= (S))))))
5
6 #define XSH_HAS_PERL_BRANCH(R, V, S) (PERL_REVISION == (R) && PERL_VERSION == (V) && PERL_SUBVERSION >= (S))
7
8 #define XSH_HAS_PERL_EXACT(R, V, S) ((PERL_REVISION == (R)) && (PERL_VERSION == (V)) && (PERL_SUBVERSION == (S)))
9
10 #ifndef XSH_PERL_PATCHLEVEL
11 # ifdef PERL_PATCHNUM
12 #  define XSH_PERL_PATCHLEVEL PERL_PATCHNUM
13 # else
14 #  define XSH_PERL_PATCHLEVEL 0
15 # endif
16 #endif
17
18 #define XSH_HAS_PERL_MAINT(R, V, S, P) (PERL_REVISION == (R) && PERL_VERSION == (V) && (XSH_PERL_PATCHLEVEL >= (P) || (!XSH_PERL_PATCHLEVEL && PERL_SUBVERSION >= (S))))
19
20 #ifndef XSH_MULTIPLICITY
21 # if defined(MULTIPLICITY)
22 #  define XSH_MULTIPLICITY 1
23 # else
24 #  define XSH_MULTIPLICITY 0
25 # endif
26 #endif
27 #if XSH_MULTIPLICITY
28 # ifndef PERL_IMPLICIT_CONTEXT
29 #  error MULTIPLICITY builds must set PERL_IMPLICIT_CONTEXT
30 # endif
31 # ifndef tTHX
32 #  define tTHX PerlInterpreter*
33 # endif
34 #endif
35
36 #if XSH_MULTIPLICITY && defined(USE_ITHREADS) && defined(dMY_CXT) && defined(MY_CXT) && defined(START_MY_CXT) && defined(MY_CXT_INIT) && (defined(MY_CXT_CLONE) || defined(dMY_CXT_SV))
37 # define XSH_THREADSAFE 1
38 #else
39 # define XSH_THREADSAFE 0
40 #endif
41
42 /* Safe unless stated otherwise in Makefile.PL */
43 #ifndef XSH_FORKSAFE
44 # define XSH_FORKSAFE 1
45 #endif
46
47 #endif /* XSH_CAPS_H */