probe_ipv6.sh revision 2127:ba8e8855927c
146283Sdfr#!/bin/sh
298944Sobrien
346283Sdfr# Copyright 2003 by Sun Microsystems, Inc. All rights reserved.
498944Sobrien# Use is subject to license terms.
546283Sdfr#
698944Sobrien#pragma ident	"%Z%%M%	%I%	%E% SMI"
798944Sobrien
898944Sobrienset -e
998944SobrienPATH=/bin:/usr/bin:$PATH; export PATH
1046283Sdfrtrap "rm -f tmp$$[abc].[oc]" 0
1198944Sobrientarget=port_ipv6
1298944Sobriennew=new_${target}.h
1398944Sobrienold=${target}.h
1498944Sobrien
1546283Sdfrcat > tmp$$a.c <<EOF
1698944Sobrien#include <sys/types.h>
1798944Sobrien#include <netinet/in.h>
1898944Sobrienstruct sockaddr_in6 xx;
1998944SobrienEOF
2046283Sdfr
2146283Sdfrcat > tmp$$b.c <<EOF
2246283Sdfr#include <sys/types.h>
2346283Sdfr#include <netinet/in.h>
2446283Sdfrstruct in6_addr xx;
25EOF
26
27cat > tmp$$c.c <<EOF
28#include <sys/types.h>
29#include <netinet/in.h>
30struct sockaddr_in6 xx;
31main() { xx.sin6_scope_id = 0; }
32EOF
33
34cat > ${new} <<EOF
35
36/* This file is automatically generated. Do Not Edit. */
37
38#ifndef ${target}_h
39#define ${target}_h
40
41EOF
42
43if ${CC} -c tmp$$a.c > /dev/null 2>&1
44then
45        echo "#define HAS_INET6_STRUCTS" >> ${new}
46        if ${CC} -c tmp$$b.c > /dev/null 2>&1
47        then
48		:
49	else
50                echo "#define in6_addr in_addr6" >> ${new}
51        fi
52	if ${CC} -c tmp$$c.c > /dev/null 2>&1
53	then
54		echo "#define HAVE_SIN6_SCOPE_ID" >> ${new}
55	else
56		echo "#undef HAVE_SIN6_SCOPE_ID" >> ${new}
57	fi
58else
59        echo "#undef HAS_INET6_STRUCTS" >> ${new}
60fi
61echo  >> ${new}
62echo "#endif" >> ${new}
63if [ -f ${old} ]; then
64        if cmp -s ${new} ${old} ; then
65                rm -f ${new}
66        else
67                rm -f ${old}
68                mv ${new} ${old}
69        fi
70else
71        mv ${new} ${old}
72fi
73exit 0
74