#
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#ident "%Z%%M% %I% %E% SMI"
#
# Generate a header for lint output for subdirectories of
#
# lint_hdr [-s] target_file [elfclass]
#
# where:
# target - Name of main target (library or program name)
# elfclass - If present, 32 or 64, giving the ELFCLASS of
# the code being linted.
#
# The resulting header looks like the following:
#
# [elfclass - ]target [sgssubdir]
# ----------------------------------------------------
#
# If the elfclass is omitted, then the header does not include
# it. If the target matches 'dirname sgssubdir', then sgssubdir
# is displayed without the target and without the square brackets.
#
# The -s option specifies that this is a sub-header, used when
# multiple lints are done within a single target. If -s is specified,
# the sgssubdir is not shown (presumably it was already shown in an earlier
# call to link_hdr), and a shorter dashed line is used:
#
# [elfclass - ]target
# ========================
#
use warnings;
use strict;
use Cwd;
use vars qw($sub);
$script = 'lint_hdr';
$usage = "usage: $script target [elfclass]\n";
$sub = 0;
while ($_ = $ARGV[0],/^-/) {
ARG: {
if (/^-s$/) {
$sub = 1;
last ARG;
}
# If it gets here, it's an unknown option
die $usage;
}
shift;
}
if ($sub) {
print "\n$elfclass$target\n========================\n";
exit 0;
}
# Clip the path up through ..sgs/, leaving the path from sgs to current dir
# Normally, we format the target and directory like this:
# target [dir]
# However, if this is the special case where $dir is equal to
# and prog matches our target name, then just show dir without brackets.
$target = '';
} else {
$dir = " [$dir]";
}
print "\n$elfclass$target$dir\n";
print "------------------------------------------------------------\n";
exit 0;