3 use ExtUtils::MakeMaker;
8 # compiler files ########################################
9 ['regcomp.c' => 'dquote.c', 'invlist_inline.h' ],
10 ['regcomp_invlist.c' => 'invlist_inline.h' ],
14 # execution engine files ################################
15 ['regexec.c' => 'invlist_inline.h' ],
16 # misc files ############################################
18 ['invlist_inline.h' ],
19 #########################################################
22 my @objects = 're$(OBJ_EXT)';
23 foreach my $tuple (@files) {
24 my $src_file = $tuple->[0];
25 if ($src_file=~s/reg/re_/ and $src_file=~s/\.c/\$(OBJ_EXT)/) {
26 push @objects, $src_file;
30 my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT';
33 if ($^O eq 'cygwin' && $Config{usequadmath}) {
34 push @libs, qw(quadmath);
38 @libs ? ( 'LIBS' => [ join(" ", map { "-l$_" } @libs) ] ) : (),
39 VERSION_FROM => 're.pm',
40 XSPROTOARG => '-noprototypes',
43 clean => { FILES => '*$(OBJ_EXT) invlist_inline.h *.c ../../lib/re.pm' },
48 File::Spec->catfile(File::Spec->updir, File::Spec->updir, $_[0]);
54 foreach my $tuple (@::files) {
55 my ($file, @deps) = @$tuple;
56 my $src_file = upupfile($file);
58 $target =~ s/^reg/re_/;
63 \$(CP) $src_file $target
66 next if $target eq $file;
67 my $base_name = $target;
68 if ($base_name=~s/\.c\z//) {
70 $base_name\$(OBJ_EXT) : $target @deps
80 package MY; # so that "SUPER" works right
81 my $inh = $self->SUPER::c_o(@_);
83 if ($Config{osname} eq 'aix' && $Config{ccversion} eq '5.0.1.0') {
84 # Known buggy optimizer.
85 my $cccmd = $self->const_cccmd;
86 $cccmd =~ s/^CCCMD\s*=\s*//;
87 $cccmd =~ s/\s\$\(OPTIMIZE\)\s/ /;
90 re_comp\$\(OBJ_EXT\): re_comp.c
91 \t$cccmd \$(CCCDLFLAGS) -I\$(PERL_INC) \$(DEFINE) \$*.c