1#!/bin/ksh -p 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, Version 1.0 only 7# (the "License"). You may not use this file except in compliance 8# with the License. 9# 10# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11# or http://www.opensolaris.org/os/licensing. 12# See the License for the specific language governing permissions 13# and limitations under the License. 14# 15# When distributing Covered Code, include this CDDL HEADER in each 16# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17# If applicable, add the following below this CDDL HEADER, with the 18# fields enclosed by brackets "[]" replaced with your own identifying 19# information: Portions Copyright [yyyy] [name of copyright owner] 20# 21# CDDL HEADER END 22# 23# 24# Copyright 2005 Sun Microsystems, Inc. All rights reserved. 25# Use is subject to license terms. 26# 27# ident "%Z%%M% %I% %E% SMI" 28# 29 30# 31# The CDPATH variable causes ksh's `cd' builtin to emit messages to stdout 32# under certain circumstances, which can really screw things up; unset it. 33# 34unset CDPATH 35 36PROG=`basename $0` 37PATH=/opt/onbld/bin:$PATH export PATH 38if [ -n "$BUILD_TOOLS" ]; then 39 PATH=$BUILD_TOOLS/onbld/bin:$PATH export PATH 40fi 41 42CONF=tools/scripts/build_cscope.conf 43 44# 45# Print the provided failure message and exit with an error. 46# 47fail() 48{ 49 echo $PROG: $@ > /dev/stderr 50 exit 1 51} 52 53if [ $# -ne 1 ]; then 54 echo "Usage: $PROG <env_file>" 55 exit 1 56fi 57 58# 59# Setup environment variables 60# 61if [ -f "$1" ]; then 62 if [[ $1 = */* ]]; then 63 . $1 64 else 65 . ./$1 66 fi 67elif [ -f "/opt/onbld/env/$1" ]; then 68 . "/opt/onbld/env/$1" 69else 70 fail "cannot find env file as $1 or /opt/onbld/env/$1" 71fi 72 73[ -z "$SRC" ] && fail "\$SRC is not set" 74[ ! -d "$SRC" ] && fail "\$SRC ($SRC) is not a directory" 75 76# 77# Despite our name, we actually build cscope, ctags, and etags 78# cross-references. 79# 80cd $SRC 81while read name flags dirs; do 82 [ "$name" = "" -o "$name" = "#" ] && continue 83 [ "$flags" = "\"\"" ] && flags= 84 xref -c $dirs 85 xref $flags $dirs || fail "cannot build $name cross-reference" 86done < $CONF 87