X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FPOSIX%2FMakefile.PL;h=5569e17fd8a477efd9e2fc1b7a8757a481be9c90;hb=8565c31a574ba4f7dc8cd69b66988949074e120d;hp=499d76a99f7df81687045fc9774dade014a68071;hpb=ae052913d35fc9a3eba38f8fe345d776f2522568;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL index 499d76a..5569e17 100644 --- a/ext/POSIX/Makefile.PL +++ b/ext/POSIX/Makefile.PL @@ -5,6 +5,14 @@ BEGIN { @INC = '../../lib';} use ExtUtils::MakeMaker; use ExtUtils::Constant 0.11 'WriteConstants'; use Config; +my $rt_signals; +if ($Config{sig_name} =~ /\bRTMIN\b/ && $Config{sig_name} =~ /\bRTMAX\b/) { + # Yes, it really has them. (Some systems define the C pre-processor + # symbols, but they depend on other macros that are only defined during + # kernel compilation + $rt_signals++; +} + my @libs; if ($^O ne 'MSWin32') { @libs = ('LIBS' => ["-lm -lposix -lcposix"]); @@ -12,7 +20,6 @@ if ($^O ne 'MSWin32') { WriteMakefile( NAME => 'POSIX', @libs, - MAN3PODS => {}, # Pods will be built by installman. XSPROTOARG => '-noprototypes', # XXX remove later? VERSION_FROM => 'POSIX.pm', realclean => {FILES=> 'const-c.inc const-xs.inc'}, @@ -33,22 +40,18 @@ my @names = ENOTTY ENXIO EOF EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY - EUSERS EWOULDBLOCK EXDEV FD_CLOEXEC FILENAME_MAX F_DUPFD F_GETFD - F_GETFL F_GETLK F_OK F_RDLCK F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK - F_WRLCK HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR INLCR INPCK - INT_MAX INT_MIN ISIG ISTRIP IXOFF IXON LC_ALL LC_COLLATE LC_CTYPE - LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME LINK_MAX LONG_MAX LONG_MIN - L_ctermid L_cuserid L_tmpnam MAX_CANON MAX_INPUT MB_LEN_MAX - NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST O_ACCMODE O_APPEND - O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC O_WRONLY + EUSERS EWOULDBLOCK EXDEV FILENAME_MAX F_OK HUPCL ICANON ICRNL IEXTEN + IGNBRK IGNCR IGNPAR INLCR INPCK INT_MAX INT_MIN ISIG ISTRIP IXOFF IXON + LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME + LINK_MAX LONG_MAX LONG_MIN L_ctermid L_cuserid L_tmpnam MAX_CANON + MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK + MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX - SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM + SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX - STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX - S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID - S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF + STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK @@ -59,13 +62,11 @@ my @names = _SC_VERSION), {name=>"CLK_TCK", not_constant=>1}, {name=>"MB_CUR_MAX", not_constant=>1}, - {name=>"SIGRTMAX", not_constant=>1}, - {name=>"SIGRTMIN", not_constant=>1}, {name=>"EXIT_FAILURE", default=>["IV", "1"]}, {name=>"EXIT_SUCCESS", default=>["IV", "0"]}, - {name=>"SIG_DFL", value=>"(IV)SIG_DFL"}, - {name=>"SIG_ERR", value=>"(IV)SIG_ERR"}, - {name=>"SIG_IGN", value=>"(IV)SIG_IGN"}, + {name=>"SIG_DFL", value=>"PTR2IV(SIG_DFL)", not_constant=>1}, + {name=>"SIG_ERR", value=>"PTR2IV(SIG_ERR)", not_constant=>1}, + {name=>"SIG_IGN", value=>"PTR2IV(SIG_IGN)", not_constant=>1}, # L_tmpnam[e] was a typo--retained for compatibility {name=>"L_tmpname", value=>"L_tmpnam"}, {name=>"NULL", value=>"0"}, @@ -90,15 +91,14 @@ push @names, {name=>$_, type=>"UV"} foreach (qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK SA_RESETHAND SA_RESTART SA_SIGINFO UCHAR_MAX UINT_MAX ULONG_MAX USHRT_MAX)); push @names, {name=>$_, type=>"NV", not_constant=>1} - foreach (qw(LDBL_MAX LDBL_MIN LDBL_EPSILON)); + foreach (qw(DBL_MAX FLT_MAX LDBL_MAX LDBL_MIN LDBL_EPSILON + DBL_EPSILON DBL_MIN FLT_EPSILON FLT_MIN)); push @names, {name=>$_, type=>"NV"} - foreach (qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG DBL_MAX DBL_MAX_10_EXP - DBL_MAX_EXP DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP - FLT_DIG FLT_EPSILON FLT_MANT_DIG FLT_MAX FLT_MAX_10_EXP - FLT_MAX_EXP FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX - LDBL_DIG LDBL_MANT_DIG LDBL_MAX_10_EXP - LDBL_MAX_EXP LDBL_MIN_10_EXP LDBL_MIN_EXP)); + foreach (qw(DBL_DIG DBL_MANT_DIG DBL_MAX_10_EXP DBL_MAX_EXP DBL_MIN_10_EXP + DBL_MIN_EXP FLT_DIG FLT_MANT_DIG FLT_MAX_10_EXP FLT_MAX_EXP + FLT_MIN_10_EXP FLT_MIN_EXP FLT_RADIX LDBL_DIG LDBL_MANT_DIG + LDBL_MAX_10_EXP LDBL_MAX_EXP LDBL_MIN_10_EXP LDBL_MIN_EXP)); push @names, {name=>$_, type=>"IV", default=>["IV", "0"]} foreach (qw(_POSIX_ARG_MAX _POSIX_CHILD_MAX _POSIX_CHOWN_RESTRICTED @@ -108,8 +108,18 @@ push @names, {name=>$_, type=>"IV", default=>["IV", "0"]} _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VDISABLE _POSIX_VERSION )); +if ($rt_signals) { + push @names, {name=>"SIGRTMAX", not_constant=>1}, + {name=>"SIGRTMIN", not_constant=>1}, +} else { + # Well, it seems that your vendor has defined them, but not in a way that + # would actually compile. + push @names, {name=>"SIGRTMAX", macro=>0}, + {name=>"SIGRTMIN", macro=>0}, +} + WriteConstants( - PROXYSUBS => 1, + ($] > 5.009002 ? (PROXYSUBS => 1) : ()), NAME => 'POSIX', NAMES => \@names, );