OLD | NEW |
| (Empty) |
1 #! /bin/sh | |
2 | |
3 # | |
4 # mksyms.sh | |
5 # | |
6 # Extract symbols to export from C-header files. | |
7 # output in version-script format for linking shared libraries. | |
8 # | |
9 # This is the shell wrapper for the mksyms.awk core script. | |
10 # | |
11 # Copyright (C) 2008 Micheal Adam <obnox@samba.org> | |
12 # | |
13 | |
14 LANG=C; export LANG | |
15 LC_ALL=C; export LC_ALL | |
16 LC_COLLATE=C; export LC_COLLATE | |
17 | |
18 if [ $# -lt 2 ] | |
19 then | |
20 echo "Usage: $0 awk output_file header_files" | |
21 exit 1 | |
22 fi | |
23 | |
24 awk="$1" | |
25 shift | |
26 | |
27 symsfile="$1" | |
28 shift | |
29 symsfile_tmp="$symsfile.$$.tmp~" | |
30 | |
31 proto_src="`echo $@ | tr ' ' '\n' | sort | uniq `" | |
32 | |
33 echo creating $symsfile | |
34 | |
35 mkdir -p `dirname $symsfile` | |
36 | |
37 #Write header | |
38 cat > $symsfile_tmp << EOF | |
39 # This file is autogenerated, please DO NOT EDIT | |
40 { | |
41 global: | |
42 EOF | |
43 | |
44 #loop on each header | |
45 for i in $proto_src; do | |
46 ${awk} -f `dirname $0`/mksyms.awk $i | sort >> $symsfile_tmp | |
47 done; | |
48 | |
49 #Write tail | |
50 cat >> $symsfile_tmp << EOF | |
51 | |
52 local: *; | |
53 }; | |
54 EOF | |
55 | |
56 if cmp -s $symsfile $symsfile_tmp 2>/dev/null | |
57 then | |
58 echo "$symsfile unchanged" | |
59 rm $symsfile_tmp | |
60 else | |
61 mv $symsfile_tmp $symsfile | |
62 fi | |
OLD | NEW |