File: mksyms.sh

package info (click to toggle)
talloc 2.0.1-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 1,636 kB
  • ctags: 1,172
  • sloc: ansic: 9,393; sh: 3,078; xml: 812; makefile: 162; perl: 107; awk: 46
file content (62 lines) | stat: -rwxr-xr-x 1,017 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#! /bin/sh

#
# mksyms.sh
#
# Extract symbols to export from C-header files.
# output in version-script format for linking shared libraries.
#
# This is the shell wrapper for the mksyms.awk core script.
#
# Copyright (C) 2008 Micheal Adam <obnox@samba.org>
#

LANG=C; export LANG
LC_ALL=C; export LC_ALL
LC_COLLATE=C; export LC_COLLATE

if [ $# -lt 2 ]
then
  echo "Usage: $0 awk output_file header_files"
  exit 1
fi

awk="$1"
shift

symsfile="$1"
shift
symsfile_tmp="$symsfile.$$.tmp~"

proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `"

echo creating $symsfile

mkdir -p `dirname $symsfile`

#Write header
cat > $symsfile_tmp << EOF
# This file is autogenerated, please DO NOT EDIT
{
    global:
EOF

#loop on each header
for i in $proto_src; do
${awk} -f `dirname $0`/mksyms.awk $i | sort >> $symsfile_tmp
done;

#Write tail
cat >> $symsfile_tmp << EOF

    local: *;
};
EOF

if cmp -s $symsfile $symsfile_tmp 2>/dev/null
then
  echo "$symsfile unchanged"
  rm $symsfile_tmp
else
  mv $symsfile_tmp $symsfile
fi