summaryrefslogtreecommitdiff
path: root/hw/xfree86/loader/sdksyms.sh
diff options
context:
space:
mode:
authorPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-12-23 18:07:54 -0200
committerPaulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>2008-12-23 18:07:54 -0200
commit86dc660588a615baefb1799d78a501c95a931d77 (patch)
treed7d562a75abfed33133392d4fac374bdcb489d08 /hw/xfree86/loader/sdksyms.sh
parent477c32708718f4470ac2e786b2446d7a44e45b9c (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-xhw/xfree86/loader/sdksyms.sh13
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=$?