xref: /OK3568_Linux_fs/external/xserver/hw/xfree86/sdksyms.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyuncat > sdksyms.c << EOF
4*4882a593Smuzhiyun/* This file is automatically generated by sdksyms.sh. */
5*4882a593Smuzhiyun#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun#ifdef HAVE_XORG_CONFIG_H
8*4882a593Smuzhiyun#include <xorg-config.h>
9*4882a593Smuzhiyun#endif
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/* These must be included first */
13*4882a593Smuzhiyun#include "misc.h"
14*4882a593Smuzhiyun#include "miscstruct.h"
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun/* render/Makefile.am */
18*4882a593Smuzhiyun#include "picture.h"
19*4882a593Smuzhiyun#include "mipict.h"
20*4882a593Smuzhiyun#include "glyphstr.h"
21*4882a593Smuzhiyun#include "picturestr.h"
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun/* fb/Makefile.am -- module */
25*4882a593Smuzhiyun/*
26*4882a593Smuzhiyun#include "fb.h"
27*4882a593Smuzhiyun#include "fbrop.h"
28*4882a593Smuzhiyun#include "fboverlay.h"
29*4882a593Smuzhiyun#include "wfbrename.h"
30*4882a593Smuzhiyun#include "fbpict.h"
31*4882a593Smuzhiyun */
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun/* miext/shadow/Makefile.am -- module */
35*4882a593Smuzhiyun/*
36*4882a593Smuzhiyun#include "shadow.h"
37*4882a593Smuzhiyun */
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun/* miext/damage/Makefile.am */
41*4882a593Smuzhiyun#include "damage.h"
42*4882a593Smuzhiyun#include "damagestr.h"
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun/* miext/sync/Makefile.am */
45*4882a593Smuzhiyun#include "misync.h"
46*4882a593Smuzhiyun#include "misyncstr.h"
47*4882a593Smuzhiyun#if HAVE_XSHMFENCE
48*4882a593Smuzhiyun#include "misyncshm.h"
49*4882a593Smuzhiyun#endif
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun/* Xext/Makefile.am -- half is module, half is builtin */
52*4882a593Smuzhiyun#ifdef XV
53*4882a593Smuzhiyun#include "xvdix.h"
54*4882a593Smuzhiyun#include "xvmcext.h"
55*4882a593Smuzhiyun#endif
56*4882a593Smuzhiyun#include "geext.h"
57*4882a593Smuzhiyun#ifdef MITSHM
58*4882a593Smuzhiyun#include "shmint.h"
59*4882a593Smuzhiyun#endif
60*4882a593Smuzhiyun#include "syncsdk.h"
61*4882a593Smuzhiyun#ifdef XINERAMA
62*4882a593Smuzhiyun# include "panoramiXsrv.h"
63*4882a593Smuzhiyun# include "panoramiX.h"
64*4882a593Smuzhiyun#endif
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun/* glx/Makefile.am */
67*4882a593Smuzhiyun#ifdef GLX
68*4882a593Smuzhiyun#include "vndserver.h"
69*4882a593Smuzhiyun#endif
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun/* hw/xfree86/int10/Makefile.am -- module */
72*4882a593Smuzhiyun/*
73*4882a593Smuzhiyun#include "xf86int10.h"
74*4882a593Smuzhiyun */
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun/* hw/xfree86/i2c/Makefile.am -- "mostly" modules */
78*4882a593Smuzhiyun#include "xf86i2c.h"
79*4882a593Smuzhiyun/*
80*4882a593Smuzhiyun#include "bt829.h"
81*4882a593Smuzhiyun#include "fi1236.h"
82*4882a593Smuzhiyun#include "msp3430.h"
83*4882a593Smuzhiyun#include "tda8425.h"
84*4882a593Smuzhiyun#include "tda9850.h"
85*4882a593Smuzhiyun#include "tda9885.h"
86*4882a593Smuzhiyun#include "uda1380.h"
87*4882a593Smuzhiyun#include "i2c_def.h"
88*4882a593Smuzhiyun */
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun/* hw/xfree86/modes/Makefile.am */
92*4882a593Smuzhiyun#include "xf86Crtc.h"
93*4882a593Smuzhiyun#include "xf86Modes.h"
94*4882a593Smuzhiyun#include "xf86RandR12.h"
95*4882a593Smuzhiyun/* #include "xf86Rename.h" */
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun/* hw/xfree86/ddc/Makefile.am */
99*4882a593Smuzhiyun#include "edid.h"
100*4882a593Smuzhiyun#include "xf86DDC.h"
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun/* hw/xfree86/dri2/Makefile.am -- module */
104*4882a593Smuzhiyun#ifdef DRI2
105*4882a593Smuzhiyun# include "dri2.h"
106*4882a593Smuzhiyun#endif
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun# include "dri3.h"
109*4882a593Smuzhiyun
110*4882a593Smuzhiyun/* hw/xfree86/vgahw/Makefile.am -- module */
111*4882a593Smuzhiyun/*
112*4882a593Smuzhiyun#include "vgaHW.h"
113*4882a593Smuzhiyun */
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun/* hw/xfree86/fbdevhw/Makefile.am -- module */
117*4882a593Smuzhiyun/*
118*4882a593Smuzhiyun#include "fbdevhw.h"
119*4882a593Smuzhiyun */
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun/* hw/xfree86/common/Makefile.am */
123*4882a593Smuzhiyun#include "compiler.h"
124*4882a593Smuzhiyun#include "fourcc.h"
125*4882a593Smuzhiyun#include "xf86.h"
126*4882a593Smuzhiyun#include "xf86Module.h"
127*4882a593Smuzhiyun#include "xf86Opt.h"
128*4882a593Smuzhiyun#ifdef XSERVER_LIBPCIACCESS
129*4882a593Smuzhiyun #include "xf86VGAarbiter.h"
130*4882a593Smuzhiyun#endif
131*4882a593Smuzhiyun#include "xf86Priv.h"
132*4882a593Smuzhiyun#include "xf86Privstr.h"
133*4882a593Smuzhiyun#include "xf86cmap.h"
134*4882a593Smuzhiyun#include "xf86fbman.h"
135*4882a593Smuzhiyun#include "xf86str.h"
136*4882a593Smuzhiyun#include "xf86Xinput.h"
137*4882a593Smuzhiyun#include "xisb.h"
138*4882a593Smuzhiyun#ifdef XV
139*4882a593Smuzhiyun# include "xf86xv.h"
140*4882a593Smuzhiyun# include "xf86xvmc.h"
141*4882a593Smuzhiyun# include "xf86xvpriv.h"
142*4882a593Smuzhiyun#endif
143*4882a593Smuzhiyun#include "xorgVersion.h"
144*4882a593Smuzhiyun#if defined(__sparc__) || defined(__sparc)
145*4882a593Smuzhiyun# include "xf86sbusBus.h"
146*4882a593Smuzhiyun#endif
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun/* hw/xfree86/ramdac/Makefile.am */
150*4882a593Smuzhiyun#include "BT.h"
151*4882a593Smuzhiyun#include "IBM.h"
152*4882a593Smuzhiyun#include "TI.h"
153*4882a593Smuzhiyun#include "xf86Cursor.h"
154*4882a593Smuzhiyun#include "xf86RamDac.h"
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun
157*4882a593Smuzhiyun/* hw/xfree86/shadowfb/Makefile.am -- module */
158*4882a593Smuzhiyun/*
159*4882a593Smuzhiyun#include "shadowfb.h"
160*4882a593Smuzhiyun */
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun
163*4882a593Smuzhiyun/* hw/xfree86/os-support/solaris/Makefile.am */
164*4882a593Smuzhiyun#if defined(sun386)
165*4882a593Smuzhiyun# include "agpgart.h"
166*4882a593Smuzhiyun#endif
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun/* hw/xfree86/os-support/Makefile.am */
170*4882a593Smuzhiyun#include "xf86_OSproc.h"
171*4882a593Smuzhiyun#include "xf86_OSlib.h"
172*4882a593Smuzhiyun
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun/* hw/xfree86/os-support/bus/Makefile.am */
175*4882a593Smuzhiyun#ifdef XSERVER_LIBPCIACCESS
176*4882a593Smuzhiyun# include "xf86Pci.h"
177*4882a593Smuzhiyun#endif
178*4882a593Smuzhiyun#if defined(__sparc__) || defined(__sparc)
179*4882a593Smuzhiyun# include "xf86Sbus.h"
180*4882a593Smuzhiyun#endif
181*4882a593Smuzhiyun
182*4882a593Smuzhiyun
183*4882a593Smuzhiyun/* hw/xfree86/parser/Makefile.am */
184*4882a593Smuzhiyun#include "xf86Parser.h"
185*4882a593Smuzhiyun#include "xf86Optrec.h"
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun/* hw/xfree86/vbe/Makefile.am -- module */
189*4882a593Smuzhiyun/*
190*4882a593Smuzhiyun#include "vbe.h"
191*4882a593Smuzhiyun#include "vbeModes.h"
192*4882a593Smuzhiyun */
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun/* hw/xfree86/dri/Makefile.am -- module */
196*4882a593Smuzhiyun#ifdef XF86DRI
197*4882a593Smuzhiyun# include "dri.h"
198*4882a593Smuzhiyun# include "sarea.h"
199*4882a593Smuzhiyun# include "dristruct.h"
200*4882a593Smuzhiyun#endif
201*4882a593Smuzhiyun
202*4882a593Smuzhiyun
203*4882a593Smuzhiyun/* mi/Makefile.am */
204*4882a593Smuzhiyun#include "micmap.h"
205*4882a593Smuzhiyun#include "miline.h"
206*4882a593Smuzhiyun#include "mipointer.h"
207*4882a593Smuzhiyun#include "mi.h"
208*4882a593Smuzhiyun#include "migc.h"
209*4882a593Smuzhiyun#include "mipointrst.h"
210*4882a593Smuzhiyun#include "mizerarc.h"
211*4882a593Smuzhiyun#include "micoord.h"
212*4882a593Smuzhiyun#include "mifillarc.h"
213*4882a593Smuzhiyun#include "mistruct.h"
214*4882a593Smuzhiyun#include "mioverlay.h"
215*4882a593Smuzhiyun
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun/* randr/Makefile.am */
218*4882a593Smuzhiyun#include "randrstr.h"
219*4882a593Smuzhiyun#include "rrtransform.h"
220*4882a593Smuzhiyun
221*4882a593Smuzhiyun
222*4882a593Smuzhiyun/* dbe/Makefile.am -- module */
223*4882a593Smuzhiyun#ifdef DBE
224*4882a593Smuzhiyun#include "dbestruct.h"
225*4882a593Smuzhiyun#endif
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun/* exa/Makefile.am -- module */
229*4882a593Smuzhiyun/*
230*4882a593Smuzhiyun#include "exa.h"
231*4882a593Smuzhiyun */
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun#ifdef COMPOSITE
234*4882a593Smuzhiyun#include "compositeext.h"
235*4882a593Smuzhiyun#endif
236*4882a593Smuzhiyun
237*4882a593Smuzhiyun/* xfixes/Makefile.am */
238*4882a593Smuzhiyun#include "xfixes.h"
239*4882a593Smuzhiyun
240*4882a593Smuzhiyun
241*4882a593Smuzhiyun/* include/Makefile.am */
242*4882a593Smuzhiyun#include "XIstubs.h"
243*4882a593Smuzhiyun#include "Xprintf.h"
244*4882a593Smuzhiyun#include "closestr.h"
245*4882a593Smuzhiyun#include "closure.h"
246*4882a593Smuzhiyun#include "colormap.h"
247*4882a593Smuzhiyun#include "colormapst.h"
248*4882a593Smuzhiyun#include "hotplug.h"
249*4882a593Smuzhiyun#include "client.h"
250*4882a593Smuzhiyun#include "cursor.h"
251*4882a593Smuzhiyun#include "cursorstr.h"
252*4882a593Smuzhiyun#include "dix.h"
253*4882a593Smuzhiyun#include "dixaccess.h"
254*4882a593Smuzhiyun#include "dixevents.h"
255*4882a593Smuzhiyun#define _FONTPROTO_H
256*4882a593Smuzhiyun#include "dixfont.h"
257*4882a593Smuzhiyun#include "dixfontstr.h"
258*4882a593Smuzhiyun#include "dixgrabs.h"
259*4882a593Smuzhiyun#include "dixstruct.h"
260*4882a593Smuzhiyun#include "exevents.h"
261*4882a593Smuzhiyun#include "extension.h"
262*4882a593Smuzhiyun#include "extnsionst.h"
263*4882a593Smuzhiyun#include "gc.h"
264*4882a593Smuzhiyun#include "gcstruct.h"
265*4882a593Smuzhiyun#include "globals.h"
266*4882a593Smuzhiyun#include "input.h"
267*4882a593Smuzhiyun#include "inputstr.h"
268*4882a593Smuzhiyun/* already included */
269*4882a593Smuzhiyun/*
270*4882a593Smuzhiyun#include "misc.h"
271*4882a593Smuzhiyun#include "miscstruct.h"
272*4882a593Smuzhiyun */
273*4882a593Smuzhiyun#include "opaque.h"
274*4882a593Smuzhiyun#include "os.h"
275*4882a593Smuzhiyun#include "pixmap.h"
276*4882a593Smuzhiyun#include "pixmapstr.h"
277*4882a593Smuzhiyun#include "privates.h"
278*4882a593Smuzhiyun#include "property.h"
279*4882a593Smuzhiyun#include "propertyst.h"
280*4882a593Smuzhiyun#include "ptrveloc.h"
281*4882a593Smuzhiyun#include "region.h"
282*4882a593Smuzhiyun#include "regionstr.h"
283*4882a593Smuzhiyun#include "registry.h"
284*4882a593Smuzhiyun#include "resource.h"
285*4882a593Smuzhiyun#include "rgb.h"
286*4882a593Smuzhiyun#include "screenint.h"
287*4882a593Smuzhiyun#include "scrnintstr.h"
288*4882a593Smuzhiyun#include "selection.h"
289*4882a593Smuzhiyun#include "servermd.h"
290*4882a593Smuzhiyun#include "site.h"
291*4882a593Smuzhiyun#include "validate.h"
292*4882a593Smuzhiyun#include "window.h"
293*4882a593Smuzhiyun#include "windowstr.h"
294*4882a593Smuzhiyun#include "xace.h"
295*4882a593Smuzhiyun#include "xkbfile.h"
296*4882a593Smuzhiyun#include "xkbsrv.h"
297*4882a593Smuzhiyun#include "xkbstr.h"
298*4882a593Smuzhiyun#include "xkbrules.h"
299*4882a593Smuzhiyun#include "xserver-properties.h"
300*4882a593Smuzhiyun
301*4882a593SmuzhiyunEOF
302*4882a593Smuzhiyun
303*4882a593Smuzhiyuntopdir=$(readlink -f $1)
304*4882a593Smuzhiyunshift
305*4882a593SmuzhiyunLC_ALL=C
306*4882a593Smuzhiyunexport LC_ALL
307*4882a593Smuzhiyun${CPP:-cpp} "$@" sdksyms.c > /dev/null || exit $?
308*4882a593Smuzhiyun${CPP:-cpp} "$@" sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
309*4882a593SmuzhiyunBEGIN {
310*4882a593Smuzhiyun    sdk = 0;
311*4882a593Smuzhiyun    print("/*");
312*4882a593Smuzhiyun    print(" * These symbols are referenced to ensure they");
313*4882a593Smuzhiyun    print(" * will be available in the X Server binary.");
314*4882a593Smuzhiyun    print(" */");
315*4882a593Smuzhiyun    printf("/* topdir=%s */\n", topdir);
316*4882a593Smuzhiyun    print("_X_HIDDEN void *xorg_symbols[] = {");
317*4882a593Smuzhiyun
318*4882a593Smuzhiyun    printf("sdksyms.c:") > "sdksyms.dep";
319*4882a593Smuzhiyun}
320*4882a593Smuzhiyun/^# [0-9]+ "/ {
321*4882a593Smuzhiyun    # Match preprocessor linemarkers which have the form:
322*4882a593Smuzhiyun    # # linenum "filename" flags
323*4882a593Smuzhiyun    #
324*4882a593Smuzhiyun    # Only process text for sdk exports where the linemarker filename has a
325*4882a593Smuzhiyun    # relative path, or an absolute path matching $top_srcdir.
326*4882a593Smuzhiyun    #
327*4882a593Smuzhiyun
328*4882a593Smuzhiyun    # canonicalize filename
329*4882a593Smuzhiyun    if ($3 in canonicalized) {
330*4882a593Smuzhiyun	c = canonicalized[$3]
331*4882a593Smuzhiyun    } else {
332*4882a593Smuzhiyun	cmd = "readlink -f " $3
333*4882a593Smuzhiyun	cmd | getline c
334*4882a593Smuzhiyun	close(cmd)
335*4882a593Smuzhiyun        canonicalized[$3] = c
336*4882a593Smuzhiyun    }
337*4882a593Smuzhiyun    # note that index() starts at 1; 0 means no match.
338*4882a593Smuzhiyun    sdk = $3 !~ /^"\// || index(c, topdir) == 1;
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun    if (sdk && $3 ~ /\.h"$/) {
341*4882a593Smuzhiyun	# remove quotes
342*4882a593Smuzhiyun	gsub(/"/, "", $3);
343*4882a593Smuzhiyun	line = $2;
344*4882a593Smuzhiyun	header = $3;
345*4882a593Smuzhiyun	if (! headers[$3]) {
346*4882a593Smuzhiyun	    printf(" \\\n  %s", $3) >> "sdksyms.dep";
347*4882a593Smuzhiyun	    headers[$3] = 1;
348*4882a593Smuzhiyun	}
349*4882a593Smuzhiyun    }
350*4882a593Smuzhiyun    next;
351*4882a593Smuzhiyun}
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun/^extern[ 	]/  {
354*4882a593Smuzhiyun    if (sdk) {
355*4882a593Smuzhiyun	n = 3;
356*4882a593Smuzhiyun
357*4882a593Smuzhiyun        # skip line numbers GCC 5 adds before __attribute__
358*4882a593Smuzhiyun        while ($n == "" || $0 ~ /^# [0-9]+ "/) {
359*4882a593Smuzhiyun           getline;
360*4882a593Smuzhiyun           n = 1;
361*4882a593Smuzhiyun        }
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun	# skip attribute, if any
364*4882a593Smuzhiyun	while ($n ~ /^(__attribute__|__global)/ ||
365*4882a593Smuzhiyun	    # skip modifiers, if any
366*4882a593Smuzhiyun	    $n ~ /^\*?(unsigned|const|volatile|struct|_X_EXPORT)$/ ||
367*4882a593Smuzhiyun	    # skip pointer
368*4882a593Smuzhiyun	    $n ~ /^[a-zA-Z0-9_]*\*$/) {
369*4882a593Smuzhiyun	    n++;
370*4882a593Smuzhiyun            # skip line numbers GCC 5 adds after __attribute__
371*4882a593Smuzhiyun            while ($n == "" || $0 ~ /^# [0-9]+ "/) {
372*4882a593Smuzhiyun               getline;
373*4882a593Smuzhiyun               n = 1;
374*4882a593Smuzhiyun            }
375*4882a593Smuzhiyun        }
376*4882a593Smuzhiyun	# hack: pid_t becomes __pid_t on NetBSD, same for uint32_t -> __uint32_t.
377*4882a593Smuzhiyun	# GCC 5 inserts additional lines around this.
378*4882a593Smuzhiyun        if (($1 == "__pid_t" || $1 == "__uint32_t") && NF == 1) {
379*4882a593Smuzhiyun            getline;
380*4882a593Smuzhiyun            n++;
381*4882a593Smuzhiyun            # skip line numbers GCC 5 adds (after typedef return type?)
382*4882a593Smuzhiyun            while ($n == "" || $0 ~ /^# [0-9]+ "/) {
383*4882a593Smuzhiyun               getline;
384*4882a593Smuzhiyun               n = 1;
385*4882a593Smuzhiyun            }
386*4882a593Smuzhiyun	}
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun	# type specifier may not be set, as in
389*4882a593Smuzhiyun	#   extern _X_EXPORT unsigned name(...)
390*4882a593Smuzhiyun	if ($n !~ /[^a-zA-Z0-9_]/)
391*4882a593Smuzhiyun	    n++;
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun	# go back if we are at the parameter list already
394*4882a593Smuzhiyun	if ($n ~ /^[(]([^*].*)?$/)
395*4882a593Smuzhiyun	    n--;
396*4882a593Smuzhiyun
397*4882a593Smuzhiyun	# match
398*4882a593Smuzhiyun	#    extern _X_EXPORT type (* name[])(...)
399*4882a593Smuzhiyun	if ($n ~ /^[^a-zA-Z0-9_]+$/)
400*4882a593Smuzhiyun	    n++;
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun	# match
403*4882a593Smuzhiyun	#	extern _X_EXPORT const name *const ...
404*4882a593Smuzhiyun	if ($n ~ /^([^a-zA-Z0-9_]+)?const$/)
405*4882a593Smuzhiyun	    n++;
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun	# actual name may be in the next line, as in
408*4882a593Smuzhiyun	#   extern _X_EXPORT type
409*4882a593Smuzhiyun	# possibly ending with a *
410*4882a593Smuzhiyun	#   name(...)
411*4882a593Smuzhiyun	if ($n == "" || $n ~ /^\*+$/) {
412*4882a593Smuzhiyun	    getline;
413*4882a593Smuzhiyun	    n = 1;
414*4882a593Smuzhiyun	    # indent may have inserted a blank link
415*4882a593Smuzhiyun	    if ($0 == "")
416*4882a593Smuzhiyun		getline;
417*4882a593Smuzhiyun	}
418*4882a593Smuzhiyun
419*4882a593Smuzhiyun	# dont modify $0 or $n
420*4882a593Smuzhiyun	symbol = $n;
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun	# remove starting non word chars
423*4882a593Smuzhiyun	sub(/^[^a-zA-Z0-9_]+/, "",symbol);
424*4882a593Smuzhiyun
425*4882a593Smuzhiyun	# remove from first non word to end of line
426*4882a593Smuzhiyun	sub(/[^a-zA-Z0-9_].*/, "", symbol);
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun	#print;
429*4882a593Smuzhiyun	if (symbol != "")
430*4882a593Smuzhiyun	    printf("    (void *) &%-50s /* %s:%s */\n", symbol ",", header, line);
431*4882a593Smuzhiyun    }
432*4882a593Smuzhiyun}
433*4882a593Smuzhiyun
434*4882a593Smuzhiyun{
435*4882a593Smuzhiyun    line++;
436*4882a593Smuzhiyun}
437*4882a593Smuzhiyun
438*4882a593SmuzhiyunEND {
439*4882a593Smuzhiyun    print("};");
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun    print("") >> "sdksyms.dep";
442*4882a593Smuzhiyun}' > _sdksyms.c
443*4882a593Smuzhiyun
444*4882a593SmuzhiyunSTATUS=$?
445*4882a593Smuzhiyun
446*4882a593Smuzhiyuncat _sdksyms.c >> sdksyms.c
447*4882a593Smuzhiyunrm _sdksyms.c
448*4882a593Smuzhiyun
449*4882a593Smuzhiyun[ $? != 0 ] && exit $?
450*4882a593Smuzhiyun
451*4882a593Smuzhiyunexit $STATUS
452