1706f2543Smrg#!/bin/sh
2706f2543Smrg
3706f2543Smrgcat > sdksyms.c << EOF
4706f2543Smrg/* This file is automatically generated by sdksyms.sh. */
5706f2543Smrg#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
6706f2543Smrg
7706f2543Smrg#ifdef HAVE_XORG_CONFIG_H
8706f2543Smrg#include <xorg-config.h>
9706f2543Smrg#endif
10706f2543Smrg
11706f2543Smrg
12706f2543Smrg/* These must be included first */
13706f2543Smrg#include "misc.h"
14706f2543Smrg#include "miscstruct.h"
15706f2543Smrg
16706f2543Smrg
17706f2543Smrg/* render/Makefile.am */
18706f2543Smrg#include "picture.h"
19706f2543Smrg#include "mipict.h"
20706f2543Smrg#include "glyphstr.h"
21706f2543Smrg#include "picturestr.h"
22706f2543Smrg
23706f2543Smrg
24706f2543Smrg/* fb/Makefile.am -- module */
25706f2543Smrg/*
26706f2543Smrg#include "fb.h"
27706f2543Smrg#include "fbrop.h"
28706f2543Smrg#include "fboverlay.h"
29706f2543Smrg#include "wfbrename.h"
30706f2543Smrg#include "fbpict.h"
31706f2543Smrg */
32706f2543Smrg
33706f2543Smrg
34706f2543Smrg/* miext/shadow/Makefile.am -- module */
35706f2543Smrg/*
36706f2543Smrg#include "shadow.h"
37706f2543Smrg */
38706f2543Smrg
39706f2543Smrg
40706f2543Smrg/* miext/damage/Makefile.am */
41706f2543Smrg#include "damage.h"
42706f2543Smrg#include "damagestr.h"
43706f2543Smrg
44706f2543Smrg/* miext/sync/Makefile.am */
45706f2543Smrg#include "misync.h"
46706f2543Smrg#include "misyncstr.h"
47706f2543Smrg
48706f2543Smrg/* Xext/Makefile.am -- half is module, half is builtin */
49706f2543Smrg/*
50706f2543Smrg#include "xvdix.h"
51706f2543Smrg#include "xvmcext.h"
52706f2543Smrg */
53706f2543Smrg#include "geext.h"
54706f2543Smrg#include "geint.h"
55706f2543Smrg#include "shmint.h"
56706f2543Smrg#include "syncsdk.h"
57706f2543Smrg#if XINERAMA
58706f2543Smrg# include "panoramiXsrv.h"
59706f2543Smrg# include "panoramiX.h"
60706f2543Smrg#endif
61706f2543Smrg
62706f2543Smrg
63706f2543Smrg/* hw/xfree86/int10/Makefile.am -- module */
64706f2543Smrg/*
65706f2543Smrg#include "xf86int10.h"
66706f2543Smrg */
67706f2543Smrg
68706f2543Smrg
69706f2543Smrg/* hw/xfree86/i2c/Makefile.am -- "mostly" modules */
70706f2543Smrg#include "xf86i2c.h"
71706f2543Smrg/*
72706f2543Smrg#include "bt829.h"
73706f2543Smrg#include "fi1236.h"
74706f2543Smrg#include "msp3430.h"
75706f2543Smrg#include "tda8425.h"
76706f2543Smrg#include "tda9850.h"
77706f2543Smrg#include "tda9885.h"
78706f2543Smrg#include "uda1380.h"
79706f2543Smrg#include "i2c_def.h"
80706f2543Smrg */
81706f2543Smrg
82706f2543Smrg
83706f2543Smrg/* hw/xfree86/modes/Makefile.am */
84706f2543Smrg#include "xf86Crtc.h"
85706f2543Smrg#include "xf86Modes.h"
86706f2543Smrg#include "xf86RandR12.h"
87706f2543Smrg/* #include "xf86Rename.h" */
88706f2543Smrg
89706f2543Smrg
90706f2543Smrg/* hw/xfree86/ddc/Makefile.am */
91706f2543Smrg#include "edid.h"
92706f2543Smrg#include "xf86DDC.h"
93706f2543Smrg
94706f2543Smrg
95706f2543Smrg/* hw/xfree86/dri2/Makefile.am -- module */
96706f2543Smrg/*
97706f2543Smrg#if DRI2
98706f2543Smrg# include "dri2.h"
99706f2543Smrg#endif
100706f2543Smrg */
101706f2543Smrg
102706f2543Smrg
103706f2543Smrg/* hw/xfree86/vgahw/Makefile.am -- module */
104706f2543Smrg/*
105706f2543Smrg#include "vgaHW.h"
106706f2543Smrg */
107706f2543Smrg
108706f2543Smrg
109706f2543Smrg/* hw/xfree86/fbdevhw/Makefile.am -- module */
110706f2543Smrg/*
111706f2543Smrg#include "fbdevhw.h"
112706f2543Smrg */
113706f2543Smrg
114706f2543Smrg
115706f2543Smrg/* hw/xfree86/common/Makefile.am */
116706f2543Smrg#include "compiler.h"
117706f2543Smrg#include "fourcc.h"
118706f2543Smrg#include "xf86.h"
119706f2543Smrg#include "xf86Module.h"
120706f2543Smrg#include "xf86Opt.h"
121706f2543Smrg#include "xf86PciInfo.h"
122706f2543Smrg#include "xf86Priv.h"
123706f2543Smrg#include "xf86Privstr.h"
124706f2543Smrg#include "xf86cmap.h"
125706f2543Smrg#include "xf86fbman.h"
126706f2543Smrg#include "xf86str.h"
127706f2543Smrg#include "xf86Xinput.h"
128706f2543Smrg#include "xf86VGAarbiter.h"
129706f2543Smrg#include "xisb.h"
130706f2543Smrg#if XV
131706f2543Smrg# include "xf86xv.h"
132706f2543Smrg# include "xf86xvmc.h"
133706f2543Smrg# include "xf86xvpriv.h"
134706f2543Smrg#endif
135706f2543Smrg/* XF86VidMode code is in libextmod module */
136706f2543Smrg/*
137706f2543Smrg#if XF86VIDMODE
138706f2543Smrg# include "vidmodeproc.h"
139706f2543Smrg#endif
140706f2543Smrg */
141706f2543Smrg#include "xorgVersion.h"
142706f2543Smrg#if defined(__sparc__) || defined(__sparc)
143706f2543Smrg# include "xf86sbusBus.h"
144706f2543Smrg#endif
145706f2543Smrg
146706f2543Smrg
147706f2543Smrg/* hw/xfree86/ramdac/Makefile.am */
148706f2543Smrg#include "BT.h"
149706f2543Smrg#include "IBM.h"
150706f2543Smrg#include "TI.h"
151706f2543Smrg#include "xf86Cursor.h"
152706f2543Smrg#include "xf86RamDac.h"
153706f2543Smrg
154706f2543Smrg
155706f2543Smrg/* hw/xfree86/shadowfb/Makefile.am -- module */
156706f2543Smrg/*
157706f2543Smrg#include "shadowfb.h"
158706f2543Smrg */
159706f2543Smrg
160706f2543Smrg
161706f2543Smrg/* hw/xfree86/os-support/solaris/Makefile.am */
162706f2543Smrg#if defined(sun386)
163706f2543Smrg# include "agpgart.h"
164706f2543Smrg#endif
165706f2543Smrg
166706f2543Smrg
167706f2543Smrg/* hw/xfree86/os-support/Makefile.am */
168706f2543Smrg#include "xf86_OSproc.h"
169706f2543Smrg#include "xf86_OSlib.h"
170706f2543Smrg
171706f2543Smrg
172706f2543Smrg/* hw/xfree86/os-support/bus/Makefile.am */
173706f2543Smrg#include "xf86Pci.h"
174706f2543Smrg#if defined(__sparc__) || defined(__sparc)
175706f2543Smrg# include "xf86Sbus.h"
176706f2543Smrg#endif
177706f2543Smrg
178706f2543Smrg
179706f2543Smrg/* hw/xfree86/xaa/Makefile.am -- module */
180706f2543Smrg/*
181706f2543Smrg#include "xaa.h"
182706f2543Smrg#include "xaalocal.h"
183706f2543Smrg#include "xaarop.h"
184706f2543Smrg */
185706f2543Smrg
186706f2543Smrg
187706f2543Smrg/* hw/xfree86/dixmods/extmod/Makefile.am -- module */
188706f2543Smrg/*
189706f2543Smrg#include "dgaproc.h"
190706f2543Smrg */
191706f2543Smrg
192706f2543Smrg
193706f2543Smrg/* hw/xfree86/parser/Makefile.am */
194706f2543Smrg#include "xf86Parser.h"
195706f2543Smrg#include "xf86Optrec.h"
196706f2543Smrg
197706f2543Smrg
198706f2543Smrg/* hw/xfree86/vbe/Makefile.am -- module */
199706f2543Smrg/*
200706f2543Smrg#include "vbe.h"
201706f2543Smrg#include "vbeModes.h"
202706f2543Smrg */
203706f2543Smrg
204706f2543Smrg
205706f2543Smrg/* hw/xfree86/dri/Makefile.am -- module */
206706f2543Smrg/*
207706f2543Smrg#if XF86DRI
208706f2543Smrg# include "dri.h"
209706f2543Smrg# include "sarea.h"
210706f2543Smrg# include "dristruct.h"
211706f2543Smrg#endif
212706f2543Smrg */
213706f2543Smrg
214706f2543Smrg
215706f2543Smrg/* mi/Makefile.am */
216706f2543Smrg#include "micmap.h"
217706f2543Smrg#include "miline.h"
218706f2543Smrg#include "mipointer.h"
219706f2543Smrg#include "mi.h"
220706f2543Smrg#include "mibstore.h"
221706f2543Smrg#include "migc.h"
222706f2543Smrg#include "mipointrst.h"
223706f2543Smrg#include "mizerarc.h"
224706f2543Smrg#include "micoord.h"
225706f2543Smrg#include "mifillarc.h"
226706f2543Smrg#include "mispans.h"
227706f2543Smrg#include "miwideline.h"
228706f2543Smrg#include "mistruct.h"
229706f2543Smrg#include "mifpoly.h"
230706f2543Smrg#include "mioverlay.h"
231706f2543Smrg
232706f2543Smrg
233706f2543Smrg/* randr/Makefile.am */
234706f2543Smrg#include "randrstr.h"
235706f2543Smrg#include "rrtransform.h"
236706f2543Smrg
237706f2543Smrg
238706f2543Smrg/* dbe/Makefile.am -- module */
239706f2543Smrg/*
240706f2543Smrg#include "dbestruct.h"
241706f2543Smrg */
242706f2543Smrg
243706f2543Smrg
244706f2543Smrg/* exa/Makefile.am -- module */
245706f2543Smrg/*
246706f2543Smrg#include "exa.h"
247706f2543Smrg */
248706f2543Smrg
249706f2543Smrg
250706f2543Smrg/* xfixes/Makefile.am */
251706f2543Smrg#include "xfixes.h"
252706f2543Smrg
253706f2543Smrg
254706f2543Smrg/* include/Makefile.am */
255706f2543Smrg#include "XIstubs.h"
256706f2543Smrg#include "Xprintf.h"
257706f2543Smrg#include "closestr.h"
258706f2543Smrg#include "closure.h"
259706f2543Smrg#include "colormap.h"
260706f2543Smrg#include "colormapst.h"
261706f2543Smrg#include "hotplug.h"
262706f2543Smrg#include "cursor.h"
263706f2543Smrg#include "cursorstr.h"
264706f2543Smrg#include "dix.h"
265706f2543Smrg#include "dixaccess.h"
266706f2543Smrg#include "dixevents.h"
267706f2543Smrg#include "dixfont.h"
268706f2543Smrg#include "dixfontstr.h"
269706f2543Smrg#include "dixgrabs.h"
270706f2543Smrg#include "dixstruct.h"
271706f2543Smrg#include "exevents.h"
272706f2543Smrg#include "extension.h"
273706f2543Smrg#include "extinit.h"
274706f2543Smrg#include "extnsionst.h"
275706f2543Smrg#include "gc.h"
276706f2543Smrg#include "gcstruct.h"
277706f2543Smrg#include "globals.h"
278706f2543Smrg#include "input.h"
279706f2543Smrg#include "inputstr.h"
280706f2543Smrg/* already included */
281706f2543Smrg/*
282706f2543Smrg#include "misc.h"
283706f2543Smrg#include "miscstruct.h"
284706f2543Smrg */
285706f2543Smrg#include "opaque.h"
286706f2543Smrg#include "os.h"
287706f2543Smrg#include "pixmap.h"
288706f2543Smrg#include "pixmapstr.h"
289706f2543Smrg#include "privates.h"
290706f2543Smrg#include "property.h"
291706f2543Smrg#include "propertyst.h"
292706f2543Smrg#include "ptrveloc.h"
293706f2543Smrg#include "region.h"
294706f2543Smrg#include "regionstr.h"
295706f2543Smrg#include "registry.h"
296706f2543Smrg#include "resource.h"
297706f2543Smrg#include "rgb.h"
298706f2543Smrg#include "screenint.h"
299706f2543Smrg#include "scrnintstr.h"
300706f2543Smrg#include "selection.h"
301706f2543Smrg#include "servermd.h"
302706f2543Smrg#include "site.h"
303706f2543Smrg#include "swaprep.h"
304706f2543Smrg#include "swapreq.h"
305706f2543Smrg#include "validate.h"
306706f2543Smrg#include "window.h"
307706f2543Smrg#include "windowstr.h"
308706f2543Smrg#include "xace.h"
309706f2543Smrg#include "xkbfile.h"
310706f2543Smrg#include "xkbsrv.h"
311706f2543Smrg#include "xkbstr.h"
312706f2543Smrg#include "xkbrules.h"
313706f2543Smrg#include "xserver-properties.h"
314706f2543Smrg
315706f2543SmrgEOF
316706f2543Smrg
317706f2543Smrgtopdir=$1
318706f2543Smrgshift
319706f2543SmrgLC_ALL=C
320706f2543Smrgexport LC_ALL
321706f2543Smrg${CPP:-cpp} "$@" -DXorgLoader sdksyms.c | ${AWK:-awk} -v topdir=$topdir '
322706f2543SmrgBEGIN {
323706f2543Smrg    sdk = 0;
324706f2543Smrg    print("/*");
325706f2543Smrg    print(" * These symbols are referenced to ensure they");
326706f2543Smrg    print(" * will be available in the X Server binary.");
327706f2543Smrg    print(" */");
328706f2543Smrg    printf("/* topdir=%s */\n", topdir);
329706f2543Smrg    print("_X_HIDDEN void *xorg_symbols[] = {");
330706f2543Smrg
331706f2543Smrg    printf("sdksyms.c:") > "sdksyms.dep";
332706f2543Smrg}
333706f2543Smrg/^# [0-9]+ "/ {
334706f2543Smrg    #   Process text after a include in a relative path or when the
335706f2543Smrg    # processed file has a basename matching $top_srcdir.
336706f2543Smrg    #   Note that indexing starts at 1; 0 means no match, and there
337706f2543Smrg    # is a starting ".
338706f2543Smrg    sdk = $3 !~ /^"\// || index($3, topdir) == 2;
339706f2543Smrg
340706f2543Smrg    if (sdk && $3 ~ /\.h"$/) {
341706f2543Smrg	# remove quotes
342706f2543Smrg	gsub(/"/, "", $3);
343706f2543Smrg	line = $2;
344706f2543Smrg	header = $3;
345706f2543Smrg	if (! headers[$3]) {
346706f2543Smrg	    printf(" \\\n  %s", $3) >> "sdksyms.dep";
347706f2543Smrg	    headers[$3] = 1;
348706f2543Smrg	}
349706f2543Smrg    }
350706f2543Smrg    next;
351706f2543Smrg}
352706f2543Smrg
353706f2543Smrg/^extern[ 	]/  {
354706f2543Smrg    if (sdk) {
355706f2543Smrg	n = 3;
356706f2543Smrg
357706f2543Smrg	# skip attribute, if any
358706f2543Smrg	while ($n ~ /^(__attribute__|__global)/ ||
359706f2543Smrg	    # skip modifiers, if any
360706f2543Smrg	    $n ~ /^\*?(unsigned|const|volatile|struct)$/ ||
361706f2543Smrg	    # skip pointer
362706f2543Smrg	    $n ~ /^[a-zA-Z0-9_]*\*$/)
363706f2543Smrg	    n++;
364706f2543Smrg
365706f2543Smrg	# type specifier may not be set, as in
366706f2543Smrg	#   extern _X_EXPORT unsigned name(...)
367706f2543Smrg	if ($n !~ /[^a-zA-Z0-9_]/)
368706f2543Smrg	    n++;
369706f2543Smrg
370706f2543Smrg	# go back if we are at the parameter list already
371706f2543Smrg	if ($n ~ /^[(]([^*].*)?$/)
372706f2543Smrg	    n--;
373706f2543Smrg
374706f2543Smrg	# match
375706f2543Smrg	#    extern _X_EXPORT type (* name[])(...)
376706f2543Smrg	if ($n ~ /^[^a-zA-Z0-9_]+$/)
377706f2543Smrg	    n++;
378706f2543Smrg
379706f2543Smrg	# match
380706f2543Smrg	#	extern _X_EXPORT const name *const ...
381706f2543Smrg	if ($n ~ /^([^a-zA-Z0-9_]+)?const$/)
382706f2543Smrg	    n++;
383706f2543Smrg
384706f2543Smrg	# actual name may be in the next line, as in
385706f2543Smrg	#   extern _X_EXPORT type
386706f2543Smrg	# possibly ending with a *
387706f2543Smrg	#   name(...)
388706f2543Smrg	if ($n == "" || $n ~ /^\*+$/) {
389706f2543Smrg	    getline;
390706f2543Smrg	    n = 1;
391706f2543Smrg	}
392706f2543Smrg
393706f2543Smrg	# dont modify $0 or $n
394706f2543Smrg	symbol = $n;
395706f2543Smrg
396706f2543Smrg	# remove starting non word chars
397706f2543Smrg	sub(/^[^a-zA-Z0-9_]+/, "",symbol);
398706f2543Smrg
399706f2543Smrg	# remove from first non word to end of line
400706f2543Smrg	sub(/[^a-zA-Z0-9_].*/, "", symbol);
401706f2543Smrg
402706f2543Smrg	#print;
403706f2543Smrg	printf("    (void *) &%-50s /* %s:%s */\n", symbol ",", header, line);
404706f2543Smrg    }
405706f2543Smrg}
406706f2543Smrg
407706f2543Smrg{
408706f2543Smrg    line++;
409706f2543Smrg}
410706f2543Smrg
411706f2543SmrgEND {
412706f2543Smrg    print("};");
413706f2543Smrg
414706f2543Smrg    print("") >> "sdksyms.dep";
415706f2543Smrg}' > _sdksyms.c
416706f2543Smrg
417706f2543SmrgSTATUS=$?
418706f2543Smrg
419706f2543Smrgcat _sdksyms.c >> sdksyms.c
420706f2543Smrgrm _sdksyms.c
421706f2543Smrg
422706f2543Smrg[ $? != 0 ] && exit $?
423706f2543Smrg
424706f2543Smrgexit $STATUS
425