xref: /onnv-gate/usr/src/cmd/perl/5.8.4/distrib/ext/Socket/Makefile.PL (revision 0:68f95e015346)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License, Version 1.0 only
6# (the "License").  You may not use this file except in compliance
7# with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22use ExtUtils::MakeMaker;
23use ExtUtils::Constant 0.11 'WriteConstants';
24use Config;
25WriteMakefile(
26    NAME	 => 'Socket',
27    VERSION_FROM => 'Socket.pm',
28   ($Config{libs} =~ /(-lsocks\S*)/ ? (LIBS => [ "$1" ] ) : ()),
29    MAN3PODS  	 => {}, 	# Pods will be built by installman.
30    XSPROTOARG   => '-noprototypes', 		# XXX remove later?
31    realclean => {FILES=> 'const-c.inc const-xs.inc'},
32);
33my @names = (qw(AF_802 AF_AAL AF_APPLETALK AF_CCITT AF_CHAOS AF_CTF
34		AF_DATAKIT AF_DECnet AF_DLI AF_ECMA AF_GOSIP AF_HYLINK
35		AF_IMPLINK AF_INET AF_INET6 AF_ISO AF_KEY
36		AF_LAST AF_LAT AF_LINK AF_MAX AF_NBS AF_NIT AF_NS
37		AF_OSI AF_OSINET AF_PUP AF_ROUTE AF_SNA
38		AF_UNIX AF_UNSPEC AF_USER AF_WAN AF_X25
39		IOV_MAX IPPROTO_TCP
40		MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_DONTWAIT
41		MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FIN
42		MSG_MAXIOVLEN MSG_MCAST MSG_NOSIGNAL MSG_RST MSG_SYN
43		MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE
44		PF_802 PF_AAL PF_APPLETALK PF_CCITT PF_CHAOS PF_CTF
45		PF_DATAKIT PF_DECnet PF_DLI PF_ECMA PF_GOSIP PF_HYLINK
46		PF_IMPLINK PF_INET PF_INET6 PF_ISO PF_KEY
47		PF_LAST PF_LAT PF_LINK PF_MAX PF_NBS PF_NIT PF_NS
48		PF_OSI PF_OSINET PF_PUP PF_ROUTE PF_SNA
49		PF_UNIX PF_UNSPEC PF_USER PF_WAN PF_X25
50		SCM_CONNECT SCM_CREDENTIALS SCM_CREDS SCM_TIMESTAMP
51		SOCK_DGRAM SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM
52		SOL_SOCKET SOMAXCONN
53		SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BROADCAST
54		SO_CHAMELEON SO_DEBUG SO_DETACH_FILTER SO_DGRAM_ERRIND
55		SO_DONTLINGER SO_DONTROUTE SO_ERROR SO_FAMILY
56		SO_KEEPALIVE SO_LINGER SO_OOBINLINE
57		SO_PASSCRED SO_PASSIFNAME SO_PEERCRED
58		SO_PROTOCOL SO_PROTOTYPE
59		SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO
60		SO_REUSEADDR SO_REUSEPORT
61		SO_SECURITY_AUTHENTICATION
62		SO_SECURITY_ENCRYPTION_NETWORK
63		SO_SECURITY_ENCRYPTION_TRANSPORT
64		SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO
65		SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE
66		TCP_KEEPALIVE TCP_MAXRT TCP_MAXSEG TCP_NODELAY TCP_STDURG
67		UIO_MAXIOV
68		),
69            {name=>"SHUT_RD", type=>"IV", default=>["IV", "0"]},
70            {name=>"SHUT_WR", type=>"IV", default=>["IV", "1"]},
71            {name=>"SHUT_RDWR", type=>"IV", default=>["IV", "2"]},
72);
73
74push @names,
75  {name=>$_, type=>"IV",
76   macro=>["#if defined($_) || defined(HAS_$_) /* might be an enum */\n",
77           "#endif\n"]}
78foreach qw (MSG_CTRUNC MSG_DONTROUTE MSG_OOB MSG_PEEK MSG_PROXY SCM_RIGHTS);
79
80push @names,
81{name => $_, type => "SV",
82 pre=>"struct in_addr ip_address; ip_address.s_addr = htonl($_);",
83 value => "sv_2mortal(newSVpvn((char *)&ip_address,sizeof ip_address ))",}
84         foreach qw(INADDR_ANY INADDR_LOOPBACK INADDR_NONE INADDR_BROADCAST);
85
86WriteConstants(
87    NAME => 'Socket',
88    NAMES => \@names,
89);
90