summaryrefslogtreecommitdiff
path: root/build/make_var_export.awk
diff options
context:
space:
mode:
authorVictor J. Orlikowski <orlikowski@apache.org>2001-06-09 06:33:50 +0000
committerVictor J. Orlikowski <orlikowski@apache.org>2001-06-09 06:33:50 +0000
commitc2eed71a52f3d9d41dfc62a35b6fe29662ff7b4d (patch)
tree0e9a04a2e904c528884430109b6ac5a3bb80b281 /build/make_var_export.awk
parent8ed4d7898ad25f0f1ed447c4011eaba6e8095c92 (diff)
downloadhttpd-c2eed71a52f3d9d41dfc62a35b6fe29662ff7b4d.tar.gz
Add the missing AP[RU]_DECLARE_DATA symbols to httpd.exp.
httpd.exp should now be generated automatically. Any missing symbols are now the fault of awk scripts. Or rather, their authors. :) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@89316 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'build/make_var_export.awk')
-rw-r--r--build/make_var_export.awk59
1 files changed, 59 insertions, 0 deletions
diff --git a/build/make_var_export.awk b/build/make_var_export.awk
new file mode 100644
index 0000000000..62263f10e6
--- /dev/null
+++ b/build/make_var_export.awk
@@ -0,0 +1,59 @@
+# Based on apr's make_export.awk, which is
+# based on Ryan Bloom's make_export.pl
+
+/^#[ \t]*if(def)? (AP[RU]?_|!?defined).*/ {
+ if (old_filename != FILENAME) {
+ if (old_filename != "") printf("%s", line)
+ macro_no = 0
+ found = 0
+ count = 0
+ old_filename = FILENAME
+ line = ""
+ }
+ macro_stack[macro_no++] = macro
+ macro = substr($0, length($1)+2)
+ count++
+ line = line "#ifdef " macro "\n"
+ next
+}
+
+/^#[ \t]*endif/ {
+ if (count > 0) {
+ count--
+ line = line "#endif " macro "\n"
+ macro = macro_stack[--macro_no]
+ }
+ if (count == 0) {
+ if (found != 0) {
+ printf("%s", line)
+ }
+ line = ""
+ }
+ next
+}
+
+function add_symbol (sym_name) {
+ if (count) {
+ found++
+ }
+ for (i = 0; i < count; i++) {
+ line = line "\t"
+ }
+ line = line sym_name "\n"
+
+ if (count == 0) {
+ printf("%s", line)
+ line = ""
+ }
+}
+
+/^[ \t]*AP[RU]?_DECLARE_DATA .*;$/ {
+ varname = $NF;
+ gsub( /[*;]/, "", varname);
+ gsub( /\[.*\]/, "", varname);
+ add_symbol(varname);
+}
+
+END {
+ printf("%s", line)
+}