xref: /titanic_44/usr/src/tools/scripts/checkproto.sh (revision 3f7d54a6b84904c8f4d8daa4c7b577bede7df8b9)
1#!/bin/ksh -e
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance 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#
22#
23# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26#ident	"%Z%%M%	%I%	%E% SMI"
27#
28MACH=`uname -p`
29PLIST=/tmp/protolist.$$
30
31usage() {
32	echo "usage: $0 <workspace>"
33	exit 1
34}
35
36OPTIND=1
37while getopts X flag
38do
39	case $flag in
40	*)	usage
41		;;
42	esac
43done
44
45shift `expr $OPTIND - 1`
46
47if [ $# = 0 -a "${CODEMGR_WS}" != "" ]; then
48	WS=${CODEMGR_WS}
49elif [ $# -ne 1 ]; then
50	usage
51else
52	WS=$1
53fi
54
55
56GUFLAG="-gu"
57if [ "${NIGHTLY_OPTIONS%o*}" != "$NIGHTLY_OPTIONS" ]; then
58	GUFLAG=
59fi
60
61if [ ! -d ${WS} ]; then
62	echo "${WS} is not a workspace"
63	exit 1
64fi
65
66if [ -z "${SRC}" ]; then
67	SRC=${WS}/usr/src
68fi
69
70PROTO=${WS}/proto/root_${MACH}
71
72rm -f $PLIST
73
74pkglocns="${SRC}/pkgdefs"
75[ -d ${SRC}/../closed/pkgdefs ] && pkglocns="$pkglocns ${SRC}/../closed/pkgdefs"
76
77exceptions=""
78pkgdefs=""
79for p in $pkglocns; do
80	efile="$p/etc/exception_list_${MACH}"
81	[ -f $efile ] && exceptions="$exceptions -e $efile"
82	pkgdefs="$pkgdefs -d $p"
83done
84
85protolist ${PROTO} > $PLIST
86protocmp ${GUFLAG} $exceptions $pkgdefs ${PLIST}
87
88rm -f $PLIST
89