OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [doc/] [posix_users/] [gen_size_report] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
#
2
#  Hack of a script to generate a very long list which contains
3
#  the size information for every service listed in this manual
4
#
5
#  This script must be modified by the user to tailor it for their
6
#  environment.  This is VERY ugly and could be replaced by something
7
#  nicer in the future if this report style is useful.
8
#
9
#  gen_size_report,v 1.5 2002/01/17 21:47:45 joel Exp
10
#
11
 
12
#cpu=sparc
13
#bsp=erc32
14
 
15
#cpu=powerpc
16
#bsp=mcp750
17
 
18
cpu=v850
19
bsp=bare
20
symprefix=_
21
 
22
#objdir=/usr1/rtems/build/build-${cpu}-rtems/${cpu}-rtems/c/${bsp}/
23
#libc=/opt/rtems/${cpu}-rtems/lib/libc.a
24
#libm=/opt/rtems/${cpu}-rtems/lib/libm.a
25
objdir=/usr1/rtems/work/tools-v850/b-rtems/${cpu}-rtems/c/${bsp}/
26
libc=/usr2/test-v850/${cpu}-rtems/lib/libc.a
27
libm=/usr2/test-v850/${cpu}-rtems/lib/libm.a
28
srcdir=$r/src
29
docdir=$d
30
nm=${cpu}-rtems-nm
31
size=${cpu}-rtems-size
32
ar=${cpu}-rtems-ar
33
 
34
#
35
#  All customization should be above this point
36
#
37
 
38
check_objs()
39
{
40
  for i in *.o
41
  do
42
    ${nm} $i | grep "T ${symprefix}${1}$" >/dev/null
43
    if [ $? -eq  0 ] ; then
44
      echo $i
45
      return 0
46
    fi
47
  done
48
  return 1
49
}
50
per_manager()
51
{
52
  docfile=$1
53
  shift
54
  subdirs=$*
55
  grep ^@item ${docfile} | grep "@code.* - " | \
56
    grep -v "@item E" | \
57
    grep -v "@code{CONFIGURE" | \
58
    grep -v "@value{RPREFIX" | \
59
    sed -e 's/@value{DIRPREFIX}/rtems_/' | \
60
    cut -d'{' -f2 | sed -e 's/}//' | cut -d'-' -f1 >/tmp/XXX.size
61
 
62
  if [ `wc -c 
63
    return
64
  fi
65
  echo "====> `grep ^@chapter ${docfile} | sed -e 's/@chapter //'`"
66
  cat /tmp/XXX.size | while read line
67
  do
68
    # echo $line
69
    found=no
70
    for subd in ${subdirs}
71
    do
72
      if [ ${found} = "no" ] ; then
73
        cd ${objdir}/${subd}/o-optimize/
74
        objfile=`check_objs $line`
75
        if [ $? -eq 0 ] ; then
76
           found=yes
77
           #echo ${objfile}
78
           objcode=`${size} ${objfile} | tail -1 | cut -f1`
79
           objdata=`${size} ${objfile} | tail -1 | cut -f2`
80
           objbss=`${size} ${objfile} | tail -1 | cut -f3`
81
           objcode=`echo ${objcode}`
82
           objdata=`echo ${objdata}`
83
           objbss=`echo ${objbss}`
84
           echo "${line} - ${objcode}, ${objdata}, ${objbss}"
85
        fi
86
      fi
87
    done
88
    if [ ${found} = "no" ] ; then
89
      echo "$line - macro or not implemented"
90
    fi
91
 
92
  done
93
}
94
 
95
 
96
# extract libc
97
if [ ! -d ${objdir}/newlib_extract/o-optimize ] ; then
98
  mkdir -p ${objdir}/newlib_extract/o-optimize
99
  cd ${objdir}/newlib_extract/o-optimize
100
  list=`${ar} t ${libc}`
101
  for i in $list
102
  do
103
    ${ar} x ${libc} ${i}
104
  done
105
fi
106
 
107
# extract libm
108
if [ ! -d ${objdir}/libm_extract/o-optimize ] ; then
109
  mkdir -p ${objdir}/libm_extract/o-optimize
110
  cd ${objdir}/libm_extract/o-optimize
111
  list=`${ar} t ${libm}`
112
  for i in $list
113
  do
114
    ${ar} x ${libm} ${i}
115
  done
116
fi
117
 
118
# grab the size of the Classic API
119
#
120
#  NOTE: This API is always configured.
121
#
122
cd ${docdir}/user
123
echo
124
echo "=============================================================="
125
echo "=============================================================="
126
echo "====                                                      ===="
127
echo "====            CLASSIC API SIZE INFORMATION              ===="
128
echo "====                                                      ===="
129
echo "=============================================================="
130
echo "=============================================================="
131
echo
132
if [ -r ${objdir}/../../../${bsp}/lib/librtems.a ] ; then
133
  for i in *.t
134
  do
135
    per_manager $i exec/rtems/src exec/sapi/src lib/libc
136
  done
137
else
138
  echo "RTEMS Classic API not configured."
139
fi
140
 
141
# Grab the size of the POSIX API
142
cd ${docdir}/posix_users
143
echo
144
echo "=============================================================="
145
echo "=============================================================="
146
echo "====                                                      ===="
147
echo "====         POSIX 1003.1b API SIZE INFORMATION           ===="
148
echo "====                                                      ===="
149
echo "=============================================================="
150
echo "=============================================================="
151
echo
152
if [ -r ${objdir}/../../../${bsp}/lib/libposix.a ] ; then
153
  for i in `ls -1 *.t | grep -v libc.t | grep -v libm.t`
154
  do
155
    per_manager $i exec/posix/src lib/libc newlib_extract
156
  done
157
else
158
  echo "POSIX API not configured."
159
fi
160
 
161
# Grab the size of the POSIX routines provided by the C Library
162
cd ${docdir}/posix_users
163
echo
164
echo "=============================================================="
165
echo "=============================================================="
166
echo "====                                                      ===="
167
echo "====             LIBC API SIZE INFORMATION                ===="
168
echo "====                                                      ===="
169
echo "=============================================================="
170
echo "=============================================================="
171
echo
172
for i in libc.t
173
do
174
  per_manager $i exec/posix/src lib/libc newlib_extract
175
done
176
 
177
# Grab the size of the libm routines
178
cd ${docdir}/posix_users
179
echo
180
echo "=============================================================="
181
echo "=============================================================="
182
echo "====                                                      ===="
183
echo "====             LIBM API SIZE INFORMATION                ===="
184
echo "====                                                      ===="
185
echo "=============================================================="
186
echo "=============================================================="
187
echo
188
for i in libm.t
189
do
190
  per_manager $i exec/posix/src lib/libc libm_extract
191
done
192
 
193
# Grab the size of the ITRON API
194
cd ${docdir}/itron3.0
195
echo
196
echo "=============================================================="
197
echo "=============================================================="
198
echo "====                                                      ===="
199
echo "====           ITRON 3.0 API SIZE INFORMATION             ===="
200
echo "====                                                      ===="
201
echo "=============================================================="
202
echo "=============================================================="
203
echo
204
if [ -r ${objdir}/../../../${bsp}/lib/libitron.a ] ; then
205
  for i in *.t
206
  do
207
    per_manager $i exec/itron/src
208
  done
209
else
210
  echo "ITRON API not configured."
211
fi
212
 
213
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.