source: branches/samba-3.5.x/lib/talloc/script/mksyms.awk

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 939 bytes
Line 
1#
2# mksyms.awk
3#
4# Extract symbols to export from C-header files.
5# output in version-script format for linking shared libraries.
6#
7# Copyright (C) 2008 Micheal Adam <obnox@samba.org>
8#
9BEGIN {
10 inheader=0;
11}
12
13END {
14}
15
16{
17 if (inheader) {
18 if (match($0,"[)][^()]*[;][ \t]*$")) {
19 inheader = 0;
20 }
21 next;
22 }
23}
24
25/^static/ || /^[ \t]*typedef/ || !/^[a-zA-Z\_]/ {
26 next;
27}
28
29/^extern[ \t]+[^()]+[;][ \t]*$/ {
30 gsub(/[^ \t]+[ \t]+/, "");
31 sub(/[;][ \t]*$/, "");
32 printf " %s;\n", $0;
33 next;
34}
35
36# look for function headers:
37{
38 gotstart = 0;
39 if ($0 ~ /^[A-Za-z_][A-Za-z0-9_]+/) {
40 gotstart = 1;
41 }
42 if(!gotstart) {
43 next;
44 }
45}
46
47/[_A-Za-z0-9]+[ \t]*[(].*[)][^()]*;[ \t]*$/ {
48 sub(/[(].*$/, "");
49 gsub(/[^ \t]+[ \t]+/, "");
50 gsub(/^[*]+/, "");
51 printf " %s;\n",$0;
52 next;
53}
54
55/[_A-Za-z0-9]+[ \t]*[(]/ {
56 inheader=1;
57 sub(/[(].*$/, "");
58 gsub(/[^ \t]+[ \t]+/, "");
59 gsub(/^[*]/, "");
60 printf " %s;\n",$0;
61 next;
62}
63
Note: See TracBrowser for help on using the repository browser.