]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Add the missing AP[RU]_DECLARE_DATA symbols to httpd.exp.
authorVictor J. Orlikowski <orlikowski@apache.org>
Sat, 9 Jun 2001 06:33:50 +0000 (06:33 +0000)
committerVictor J. Orlikowski <orlikowski@apache.org>
Sat, 9 Jun 2001 06:33:50 +0000 (06:33 +0000)
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

build/make_var_export.awk [new file with mode: 0644]
server/Makefile.in

diff --git a/build/make_var_export.awk b/build/make_var_export.awk
new file mode 100644 (file)
index 0000000..62263f1
--- /dev/null
@@ -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)
+}
index f56b4adbc4402bc6445da14fc382a4c106f35049..dd8ffe4fa27730b7da3365411d6ca71eb3837285 100644 (file)
@@ -66,3 +66,4 @@ ApacheCoreOS2.def: exports.c $(top_srcdir)/os/$(OS_DIR)/core_header.def
 httpd.exp: exports.c
        echo "#! ." > $@
        $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) exports.c | grep "ap_hack_" | sed -e 's/^.*[)]\(.*\);$$/\1/' >> $@
+       $(AWK) -f $(top_srcdir)/build/make_var_export.awk $(top_srcdir)/include/*.h $(top_srcdir)/os/$(OS_DIR)/*.h $(top_srcdir)/srclib/apr/include/*.h $(top_srcdir)/srclib/apr-util/include/*.h | $(CPP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) - | sed -e 's/^\# .*//' | sed -e '/^$$/d' >> $@