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