Sys::Syslog doesn't need ppport.h in core
[p5sagit/p5-mst-13.2.git] / ext / Sys / Syslog / Makefile.PL
1 use strict;
2 use ExtUtils::MakeMaker;
3 eval 'use ExtUtils::MakeMaker::Coverage';
4 require 5.006;
5
6 WriteMakefile(
7     NAME            => 'Sys::Syslog',
8     LICENSE         => 'perl',
9     VERSION_FROM    => 'Syslog.pm', 
10     ABSTRACT_FROM   => 'Syslog.pm', 
11     INSTALLDIRS     => 'perl',
12     MAN3PODS        => {},      # Pods will be built by installman.
13     XSPROTOARG      => '-noprototypes',
14     PREREQ_PM       => {
15         'Test::More' => 0,
16         'XSLoader'   => 0,
17     },
18     dist            => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
19     clean           => { FILES => 'Sys-Syslog-*' }, 
20     realclean       => { FILES => 'const-c.inc const-xs.inc macros.all' },
21     (
22         (grep { $_ eq 'PERL_CORE=1' } @ARGV)
23             ? ()
24             : ('DEFINE' => '-DUSE_PPPORT_H')
25     ),
26 );
27
28 my $_PATH_LOG;
29
30 if (-S "/dev/log" and -w "/dev/log") {
31     # Most unixes have a unix domain socket /dev/log.
32     $_PATH_LOG = "/dev/log";
33 } elsif (-c "/dev/conslog" and -w "/dev/conslog") {
34     # SunOS 5.8 has a worldwritable /dev/conslog STREAMS log driver.
35     # The /dev/log STREAMS log driver on this platform has permissions
36     # and ownership `crw-r----- root sys'.  /dev/conslog has more liberal
37     # permissions.
38     $_PATH_LOG = "/dev/conslog";
39 } else {
40     $_PATH_LOG = "";
41 }
42
43 if(eval {require ExtUtils::Constant; 1}) {
44     my @names = (
45             # levels
46             qw(
47                 LOG_ALERT LOG_CRIT LOG_DEBUG LOG_EMERG LOG_ERR 
48                 LOG_INFO LOG_NOTICE LOG_WARNING
49             ), 
50
51             # facilities
52             qw(
53                 LOG_AUTH LOG_AUTHPRIV LOG_CRON LOG_DAEMON LOG_FTP
54                 LOG_INSTALL LOG_KERN LOG_LAUNCHD LOG_LFMT LOG_LOCAL0 
55                 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 
56                 LOG_LOCAL6 LOG_LOCAL7 LOG_LPR LOG_MAIL LOG_NETINFO 
57                 LOG_NEWS LOG_RAS LOG_REMOTEAUTH LOG_SYSLOG LOG_USER LOG_UUCP 
58             ), 
59
60             # options
61             qw(
62                 LOG_CONS LOG_PID LOG_NDELAY LOG_NOWAIT LOG_ODELAY LOG_PERROR 
63             ), 
64
65             # others macros
66             qw(
67                 LOG_FACMASK LOG_NFACILITIES LOG_PRIMASK 
68             ), 
69
70            { name => "_PATH_LOG", type => "PV", default => [ "PV", qq("$_PATH_LOG") ] },
71     );
72
73     ExtUtils::Constant::WriteConstants(
74         ($] > 5.009002 ? (PROXYSUBS => 1) : ()),
75         NAME => 'Sys::Syslog',
76         NAMES => \@names,
77     );
78
79     open(MACROS, '>macros.all') or warn "can't write 'macros.all': $!\n";
80     print MACROS join $/, grep {!ref} @names;
81     close(MACROS);
82
83 } else {
84     require File::Copy;
85     require File::Spec;
86     foreach my $file ('const-c.inc', 'const-xs.inc') {
87         my $fallback = File::Spec->catfile('fallback', $file);
88         File::Copy::copy($fallback, $file) or die "Can't copy $fallback to $ $!";
89     }
90 }