Add error codes for getaddrinfo() and getnameinfo()
[p5sagit/p5-mst-13.2.git] / ext / re / Makefile.PL
index bd0f1f7..dbc4142 100644 (file)
@@ -1,41 +1,61 @@
 use ExtUtils::MakeMaker;
+use File::Spec;
+use Config;
+
+my $object = 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)';
+
+my $defines = '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG -DPERL_EXT';
+
 WriteMakefile(
     NAME               => 're',
     VERSION_FROM       => 're.pm',
-    MAN3PODS           => {},  # Pods will be built by installman.
     XSPROTOARG         => '-noprototypes',
-    OBJECT             => 're_exec$(OBJ_EXT) re_comp$(OBJ_EXT) re$(OBJ_EXT)',
-    DEFINE             => '-DPERL_EXT_RE_BUILD -DPERL_EXT_RE_DEBUG',
+    OBJECT             => $object,
+    DEFINE             => $defines,
     clean              => { FILES => '*$(OBJ_EXT) *.c ../../lib/re.pm' },
 );
 
-sub MY::postamble {
-  if ($^O eq 'VMS') {
-    return <<'VMS_EOF';
-re_comp.c : [--]regcomp.c
-       - $(RM_F) $(MMS$TARGET_NAME)
-       $(CP) [--]regcomp.c $(MMS$TARGET_NAME)
+package MY;
 
-re_comp$(OBJ_EXT) : re_comp.c
+sub upupfile {
+    File::Spec->catfile(File::Spec->updir, File::Spec->updir, $_[0]);
+}
 
-re_exec.c : [--]regexec.c
-       - $(RM_F) $(MMS$TARGET_NAME)
-       $(CP) [--]regexec.c $(MMS$TARGET_NAME)
+sub postamble {
+    my $regcomp_c = upupfile('regcomp.c');
+    my $regexec_c = upupfile('regexec.c');
 
-re_exec$(OBJ_EXT) : re_exec.c
+    <<EOF;
+re_comp.c : $regcomp_c
+       - \$(RM_F) re_comp.c
+       \$(CP) $regcomp_c re_comp.c
 
+re_comp\$(OBJ_EXT) : re_comp.c
 
-VMS_EOF
-  } else {
-    return <<'EOF';
-re_comp.c: ../../regcomp.c
-       -$(RM_F) $@
-       $(CP) ../../regcomp.c $@
+re_exec.c : $regexec_c
+       - \$(RM_F) re_exec.c
+       \$(CP) $regexec_c re_exec.c
 
-re_exec.c: ../../regexec.c
-       -$(RM_F) $@
-       $(CP) ../../regexec.c $@
+re_exec\$(OBJ_EXT) : re_exec.c
 
 EOF
-  }
+}
+
+sub MY::c_o {
+    my($self) = @_;
+    package MY; # so that "SUPER" works right
+    my $inh = $self->SUPER::c_o(@_);
+    use Config;
+    if ($Config{osname} eq 'aix' && $Config{ccversion} eq '5.0.1.0') {
+       # Known buggy optimizer.
+       my $cccmd = $self->const_cccmd;
+       $cccmd =~ s/^CCCMD\s*=\s*//;
+       $cccmd =~ s/\s\$\(OPTIMIZE\)\s/ /;
+       $inh .= qq{
+
+re_comp\$\(OBJ_EXT\): re_comp.c
+\t$cccmd \$(CCCDLFLAGS) -I\$(PERL_INC) \$(DEFINE) \$*.c
+};
+    }
+    $inh;
 }