summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-24 18:42:55 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-24 18:42:55 +0000
commitb4957ebb9d908191450f653ec568079330e8f4a2 (patch)
treede7490e1fa1f4235e189b4694c5a4a7b742bd4da
parentAdded routines included by C library. (diff)
downloadrtems-b4957ebb9d908191450f653ec568079330e8f4a2.tar.bz2
New file.
-rw-r--r--doc/posix_users/gen_size_report154
1 files changed, 154 insertions, 0 deletions
diff --git a/doc/posix_users/gen_size_report b/doc/posix_users/gen_size_report
new file mode 100644
index 0000000000..06b9bb5054
--- /dev/null
+++ b/doc/posix_users/gen_size_report
@@ -0,0 +1,154 @@
+#
+# Hack of a script to generate a very long list which contains
+# the size information for every service listed in this manual
+#
+# This script must be modified by the user to tailor it for their
+# environment. This is VERY ugly and could be replaced by something
+# nicer in the future if this report style is useful.
+#
+# $Id$
+#
+
+#cpu=sparc
+#bsp=erc32
+
+cpu=powerpc
+bsp=mcp750
+
+objdir=/usr1/rtems/build/build-${cpu}-rtems/${cpu}-rtems/c/${bsp}/
+libc=/opt/rtems/${cpu}-rtems/lib/libc.a
+srcdir=$r/src
+docdir=$d
+nm=${cpu}-rtems-nm
+size=${cpu}-rtems-size
+ar=${cpu}-rtems-ar
+
+check_objs()
+{
+ for i in *.o
+ do
+ ${nm} $i | grep "T ${1}$" >/dev/null
+ if [ $? -eq 0 ] ; then
+ echo $i
+ return 0
+ fi
+ done
+ return 1
+}
+per_manager()
+{
+ docfile=$1
+ shift
+ subdirs=$*
+ grep ^@item ${docfile} | grep "@code.* - " | \
+ grep -v "@item E" | \
+ grep -v "@code{CONFIGURE" | \
+ grep -v "@value{RPREFIX" | \
+ sed -e 's/@value{DIRPREFIX}/rtems_/' | \
+ cut -d'{' -f2 | sed -e 's/}//' | cut -d'-' -f1 >/tmp/XXX.size
+
+ if [ `wc -c </tmp/XXX.size` -eq 1 ] ; then
+ return
+ fi
+ echo "====> `grep ^@chapter ${docfile} | sed -e 's/@chapter //'`"
+ cat /tmp/XXX.size | while read line
+ do
+ # echo $line
+ found=no
+ for subd in ${subdirs}
+ do
+ if [ ${found} = "no" ] ; then
+ cd ${objdir}/${subd}/o-optimize/
+ objfile=`check_objs $line`
+ if [ $? -eq 0 ] ; then
+ found=yes
+ #echo ${objfile}
+ objcode=`${size} ${objfile} | tail -1 | cut -f1`
+ objdata=`${size} ${objfile} | tail -1 | cut -f2`
+ objbss=`${size} ${objfile} | tail -1 | cut -f3`
+ objcode=`echo ${objcode}`
+ objdata=`echo ${objdata}`
+ objbss=`echo ${objbss}`
+ echo "${line} - ${objcode}, ${objdata}, ${objbss}"
+ fi
+ fi
+ done
+ if [ ${found} = "no" ] ; then
+ echo "$line - macro or not implemented"
+ fi
+
+ done
+}
+
+
+# extract libc
+if [ ! -d ${objdir}/newlib_extract/o-optimize ] ; then
+ mkdir -p ${objdir}/newlib_extract/o-optimize
+ cd ${objdir}/newlib_extract/o-optimize
+ list=`${ar} t ${libc}`
+ for i in $list
+ do
+ ${ar} x ${libc} ${i}
+ done
+fi
+
+# grab the size of the Classic API
+#
+# NOTE: This API is always configured.
+#
+cd ${docdir}/user
+echo
+echo "=============================================================="
+echo "=============================================================="
+echo "==== ===="
+echo "==== CLASSIC API SIZE INFORMATION ===="
+echo "==== ===="
+echo "=============================================================="
+echo "=============================================================="
+echo
+for i in *.t
+do
+ per_manager $i exec/rtems/src exec/sapi/src lib/libc
+done
+
+# Grab the size of the Classic API
+cd ${docdir}/posix_users
+echo
+echo "=============================================================="
+echo "=============================================================="
+echo "==== ===="
+echo "==== POSIX 1003.1b API SIZE INFORMATION ===="
+echo "==== ===="
+echo "=============================================================="
+echo "=============================================================="
+echo
+if [ -r ${objdir}/../../../${bsp}/lib/libposix.a ] ; then
+ for i in *.t
+ do
+ per_manager $i exec/posix/src lib/libc newlib_extract
+ done
+else
+ echo "POSIX API not configured."
+fi
+
+# Grab the size of the ITRON API
+cd ${docdir}/itron3.0
+echo
+echo "=============================================================="
+echo "=============================================================="
+echo "==== ===="
+echo "==== ITRON 3.0 API SIZE INFORMATION ===="
+echo "==== ===="
+echo "=============================================================="
+echo "=============================================================="
+echo
+if [ -r ${objdir}/../../../${bsp}/lib/libitron.a ] ; then
+ for i in *.t
+ do
+ per_manager $i exec/itron/src
+ done
+else
+ echo "ITRON API not configured."
+fi
+
+