This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add test for experimental::builtin warnings
[perl5.git] / ext / re / Makefile.PL
1 use ExtUtils::MakeMaker;
2 use File::Spec;
3 use Config;
4
5 my $object = 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)';
6
7 my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT';
8
9 my @libs;
10 if ($^O eq 'cygwin' && $Config{usequadmath}) {
11     push @libs, qw(quadmath);
12 }
13 WriteMakefile(
14     NAME                => 're',
15     @libs ? ( 'LIBS' => [ join(" ", map { "-l$_" } @libs) ] ) : (),
16     VERSION_FROM        => 're.pm',
17     XSPROTOARG          => '-noprototypes',
18     OBJECT              => $object,
19     DEFINE             => $defines,
20     clean               => { FILES => '*$(OBJ_EXT) invlist_inline.h *.c ../../lib/re.pm' },
21 );
22
23 package MY;
24
25 sub upupfile {
26     File::Spec->catfile(File::Spec->updir, File::Spec->updir, $_[0]);
27 }
28
29 sub postamble {
30     my $regcomp_c = upupfile('regcomp.c');
31     my $regexec_c = upupfile('regexec.c');
32     my $dquote_c = upupfile('dquote.c');
33     my $invlist_inline_h = upupfile('invlist_inline.h');
34
35     <<EOF;
36 re_comp.c : $regcomp_c
37         - \$(RM_F) re_comp.c
38         \$(CP) $regcomp_c re_comp.c
39
40 re_comp\$(OBJ_EXT) : re_comp.c dquote.c invlist_inline.h
41
42 re_exec.c : $regexec_c
43         - \$(RM_F) re_exec.c
44         \$(CP) $regexec_c re_exec.c
45
46 re_exec\$(OBJ_EXT) : re_exec.c invlist_inline.h
47
48 dquote.c : $dquote_c
49         - \$(RM_F) dquote.c
50         \$(CP) $dquote_c dquote.c
51
52 invlist_inline.h : $invlist_inline_h
53         - \$(RM_F) invlist_inline.h
54         \$(CP) $invlist_inline_h invlist_inline.h
55
56 EOF
57 }
58
59 sub MY::c_o {
60     my($self) = @_;
61     package MY; # so that "SUPER" works right
62     my $inh = $self->SUPER::c_o(@_);
63     use Config;
64     if ($Config{osname} eq 'aix' && $Config{ccversion} eq '5.0.1.0') {
65         # Known buggy optimizer.
66         my $cccmd = $self->const_cccmd;
67         $cccmd =~ s/^CCCMD\s*=\s*//;
68         $cccmd =~ s/\s\$\(OPTIMIZE\)\s/ /;
69         $inh .= qq{
70
71 re_comp\$\(OBJ_EXT\): re_comp.c
72 \t$cccmd \$(CCCDLFLAGS) -I\$(PERL_INC) \$(DEFINE) \$*.c
73 };
74     }
75     $inh;
76 }