improve header inclusion process in a few small ways:
[asterisk-bristuff.git] / build_tools / strip_nonapi
blobade30c978a5727ce2aa23808005cb304f3736c1e
1 #!/bin/sh -e
3 # This script is designed to remove all non-API global symbols from an object
4 # file. The only global symbols that should be retained are those that belong
5 # to the official namespace. Unfortunately doing this is platform-specific, as
6 # the object file manipulation tools are not consistent across platforms.
8 # On platforms where this script does not know what to do, the object file
9 # will retain non-API global symbols, and this may have unpleasant side effects.
11 # Prefixes that belong to the official namespace are:
12 # ast_
13 # _ast_
14 # __ast_
15 # astman_
16 # pbx_
18 case "${PROC}" in
19 powerpc64)
20 TEXTSYM=" D "
23 TEXTSYM=" T "
25 esac
27 FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_"
29 case "${OSARCH}" in
30 linux-gnu)
31 nm ${1} | ${GREP} -e "$TEXTSYM" | cut -d" " -f3 | ${FILTER} > striplist
32 sed -e "s/^/-N /" striplist | xargs -n 40 ${STRIP} ${1}
33 rm -f striplist
37 esac