diff options
author | Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> | 2008-12-23 18:07:54 -0200 |
---|---|---|
committer | Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> | 2008-12-23 18:07:54 -0200 |
commit | 86dc660588a615baefb1799d78a501c95a931d77 (patch) | |
tree | d7d562a75abfed33133392d4fac374bdcb489d08 /hw/xfree86/loader/sdksyms.sh | |
parent | 477c32708718f4470ac2e786b2446d7a44e45b9c (diff) |
Improve sdksyms.c automatic generation (Fix #19245).
Since it is already parsing cpp output, create a dependency file
in the same process. This will cause sdksyms.c to be regenerated
whenever a sdk header is modified.
This also uses the gmake 'sinclude' directive (don't fail if
included file doesn't exist). This should not cause any problems
given that gmake only constructs are used in several other Makefiles.
Diffstat (limited to 'hw/xfree86/loader/sdksyms.sh')
-rwxr-xr-x | hw/xfree86/loader/sdksyms.sh | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/hw/xfree86/loader/sdksyms.sh b/hw/xfree86/loader/sdksyms.sh index 05760106a..be0b0ee6f 100755 --- a/hw/xfree86/loader/sdksyms.sh +++ b/hw/xfree86/loader/sdksyms.sh @@ -333,6 +333,8 @@ BEGIN { print(" */"); printf("/* topdir=%s */\n", topdir); print("_X_HIDDEN void *xorg_symbols[] = {"); + + printf("sdksyms.c:") > "sdksyms.dep"; } /^# [0-9]+ "/ { # Process text after a include in a relative path or when the @@ -340,6 +342,15 @@ BEGIN { # Note that indexing starts at 1; 0 means no match, and there # is a starting ". sdk = $3 !~ /^"\// || index($3, topdir) == 2; + + if (sdk && $3 ~ /\.h"$/) { + # remove quotes + gsub(/"/, "", $3); + if (! headers[$3]) { + printf(" \\\n %s", $3) >> "sdksyms.dep"; + headers[$3] = 1; + } + } } /^extern[ ]/ { @@ -394,6 +405,8 @@ BEGIN { END { print("};"); + + print("") >> "sdksyms.dep"; }' > _sdksyms.c STATUS=$? |