?RCS: $Id: d_socket.U,v 3.0.1.2 1997/02/28 15:46:00 ram Exp $ ?RCS: ?RCS: Copyright (c) 1991-1993, Raphael Manfredi ?RCS: ?RCS: You may redistribute only under the terms of the Artistic Licence, ?RCS: as specified in the README file that comes with the distribution. ?RCS: You may reuse parts of this distribution only within the terms of ?RCS: that same Artistic Licence; a copy of which may be found at the root ?RCS: of the source tree for dist 3.0. ?RCS: ?RCS: $Log: d_socket.U,v $ ?RCS: Revision 3.0.1.2 1997/02/28 15:46:00 ram ?RCS: patch61: replaced .a with $_a all over the place ?RCS: ?RCS: Revision 3.0.1.1 1994/01/24 14:08:04 ram ?RCS: patch16: can now safely declare private nm_extract in dependencies ?RCS: ?RCS: Revision 3.0 1993/08/18 12:07:26 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: ?MAKE:d_socket d_oldsock d_sockpair socketlib sockethdr: contains libc \ echo n c nm_opt nm_extract Inlibc Csym _a ?MAKE: -pick add $@ %< ?S:d_socket: ?S: This variable conditionally defines HAS_SOCKET, which indicates ?S: that the BSD socket interface is supported. ?S:. ?S:d_sockpair: ?S: This variable conditionally defines the HAS_SOCKETPAIR symbol, which ?S: indicates that the BSD socketpair() is supported. ?S:. ?S:d_oldsock: ?S: This variable conditionally defines the OLDSOCKET symbol, which ?S: indicates that the BSD socket interface is based on 4.1c and not 4.2. ?S:. ?S:socketlib: ?S: This variable has the names of any libraries needed for socket support. ?S:. ?S:sockethdr: ?S: This variable has any cpp -I flags needed for socket support. ?S:. ?C:HAS_SOCKET (SOCKET): ?C: This symbol, if defined, indicates that the BSD socket interface is ?C: supported. ?C:. ?C:HAS_SOCKETPAIR (SOCKETPAIR): ?C: This symbol, if defined, indicates that the BSD socketpair() call is ?C: supported. ?C:. ?C:USE_OLDSOCKET (OLDSOCKET): ?C: This symbol, if defined, indicates that the 4.1c BSD socket interface ?C: is supported instead of the 4.2/4.3 BSD socket interface. For instance, ?C: there is no setsockopt() call. ?C:. ?H:#$d_socket HAS_SOCKET /**/ ?H:#$d_sockpair HAS_SOCKETPAIR /**/ ?H:#$d_oldsock USE_OLDSOCKET /**/ ?H:. ?T:val ?LINT:set d_sockpair socketlib='' sockethdr='' : see whether socket exists echo " " $echo $n "Hmm... $c" >&4 if set socket val -f d_socket; eval $csym; $val; then echo "Looks like you have Berkeley networking support." >&4 d_socket="$define" ?X: now check for advanced features if set setsockopt val -f; eval $csym; $val; then d_oldsock="$undef" else echo "...but it uses the old 4.1c interface, rather than 4.2" >&4 d_oldsock="$define" fi else ?X: HP-UX, for one, puts all the socket stuff in socklib.o. Note that if we ?X: come here on HP-UX, then we must have used nm to get symbols, or we really ?X: don't have sockets anyway... if $contains socklib libc.list >/dev/null 2>&1; then echo "Looks like you have Berkeley networking support." >&4 d_socket="$define" : we will have to assume that it supports the 4.2 BSD interface d_oldsock="$undef" else echo "You don't have Berkeley networking in libc$_a..." >&4 ?X: look for an optional networking library if test -f /usr/lib/libnet$_a; then ?X: space between two '(' needed for ksh ( (nm $nm_opt /usr/lib/libnet$_a | eval $nm_extract) || \ ar t /usr/lib/libnet$_a) 2>/dev/null >> libc.list if $contains socket libc.list >/dev/null 2>&1; then echo "...but the Wollongong group seems to have hacked it in." >&4 socketlib="-lnet" sockethdr="-I/usr/netinclude" d_socket="$define" ?X: now check for advanced features if $contains setsockopt libc.list >/dev/null 2>&1; then d_oldsock="$undef" else echo "...using the old 4.1c interface, rather than 4.2" >&4 d_oldsock="$define" fi else echo "or even in libnet$_a, which is peculiar." >&4 d_socket="$undef" d_oldsock="$undef" fi else echo "or anywhere else I see." >&4 d_socket="$undef" d_oldsock="$undef" fi fi fi @if HAS_SOCKETPAIR || d_sockpair : see if socketpair exists set socketpair d_sockpair eval $inlibc @end