bsd.lib.mk: Add INTERNALLIBPROF knob.
[dragonfly.git] / usr.bin / vgrind / vgrind.sh
blob79166d0519295013c60f1303d21db78ac3de93de
1 #!/bin/sh
3 # Copyright (c) 1980, 1993
4 # The Regents of the University of California. All rights reserved.
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
8 # are met:
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # 3. Neither the name of the University nor the names of its contributors
15 # may be used to endorse or promote products derived from this software
16 # without specific prior written permission.
18 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # SUCH DAMAGE.
30 # @(#)vgrind.sh 8.1 (Berkeley) 6/6/93
32 # $FreeBSD: src/usr.bin/vgrind/vgrind.sh,v 1.2.8.1 2003/06/14 14:26:25 schweikh Exp $
33 # $DragonFly: src/usr.bin/vgrind/vgrind.sh,v 1.2 2003/06/17 04:29:33 dillon Exp $
36 voptions=""
37 options=""
38 files=""
39 f=""
40 head=""
41 vf="/usr/libexec/vfontedpr"
42 tm="/usr/share/tmac"
43 postproc="psroff"
45 # Parse args
46 while test $# -gt 0; do
47 case $1 in
48 -f)
49 f="filter"
50 options="$options -f"
52 -t)
53 voptions="$voptions -t"
55 -o*)
56 voptions="$voptions $1"
58 -W)
59 voptions="$voptions -W"
61 -d)
62 if test $# -lt 2; then
63 echo "$0: option $1 must have argument" >&2
64 exit 1
66 options="$options $1 $2"
67 shift
69 -h)
70 if test $# -lt 2; then
71 echo "$0: option $1 must have argument" >&2
72 exit 1
74 head="$2"
75 shift
77 -p)
78 if test $# -lt 2; then
79 echo "$0: option $1 must have argument" >&2
80 exit 1
82 postproc="$2"
83 shift
85 -*)
86 options="$options $1"
89 files="$files $1"
91 esac
92 shift
93 done
95 if test -r index; then
96 echo > nindex
97 for i in $files; do
98 # make up a sed delete command for filenames
99 # being careful about slashes.
100 echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
101 done
102 sed -f nindex index > xindex
103 if test "x$f" = xfilter; then
104 if test "x$head" != x; then
105 $vf $options -h "$head" $files
106 else
107 $vf $options $files
108 fi | cat $tm/tmac.vgrind -
109 else
110 if test "x$head" != x; then
111 $vf $options -h "$head" $files
112 else
113 $vf $options $files
114 fi | sh -c "$postproc -rx1 $voptions -i -mvgrind 2>> xindex"
116 sort -df -k 1,2 xindex > index
117 rm nindex xindex
118 else
119 if test "x$f" = xfilter; then
120 if test "x$head" != x; then
121 $vf $options -h "$head" $files
122 else
123 $vf $options $files
124 fi | cat $tm/tmac.vgrind -
125 else
126 if test "x$head" != x; then
127 $vf $options -h "$head" $files
128 else
129 $vf $options $files
130 fi | $postproc -i $voptions -mvgrind