|
Packit |
90a5c9 |
# Licensed to the Apache Software Foundation (ASF) under one or more
|
|
Packit |
90a5c9 |
# contributor license agreements. See the NOTICE file distributed with
|
|
Packit |
90a5c9 |
# this work for additional information regarding copyright ownership.
|
|
Packit |
90a5c9 |
# The ASF licenses this file to You under the Apache License, Version 2.0
|
|
Packit |
90a5c9 |
# (the "License"); you may not use this file except in compliance with
|
|
Packit |
90a5c9 |
# the License. You may obtain a copy of the License at
|
|
Packit |
90a5c9 |
#
|
|
Packit |
90a5c9 |
# http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit |
90a5c9 |
#
|
|
Packit |
90a5c9 |
# Unless required by applicable law or agreed to in writing, software
|
|
Packit |
90a5c9 |
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
Packit |
90a5c9 |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
Packit |
90a5c9 |
# See the License for the specific language governing permissions and
|
|
Packit |
90a5c9 |
# limitations under the License.
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
BEGIN {
|
|
Packit |
90a5c9 |
printf("/*\n")
|
|
Packit |
90a5c9 |
printf(" * THIS FILE WAS AUTOGENERATED BY make_exports.awk\n")
|
|
Packit |
90a5c9 |
printf(" *\n")
|
|
Packit |
90a5c9 |
printf(" * This is an ugly hack that needs to be here, so\n")
|
|
Packit |
90a5c9 |
printf(" * that libtool will link all of the APR functions\n")
|
|
Packit |
90a5c9 |
printf(" * into server regardless of whether the base server\n")
|
|
Packit |
90a5c9 |
printf(" * uses them.\n")
|
|
Packit |
90a5c9 |
printf(" */\n")
|
|
Packit |
90a5c9 |
printf("\n")
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
for (i = 1; i < ARGC; i++) {
|
|
Packit |
90a5c9 |
file = ARGV[i]
|
|
Packit |
90a5c9 |
sub("([^/]*[/])*", "", file)
|
|
Packit |
90a5c9 |
printf("#include \"%s\"\n", file)
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
printf("\n")
|
|
Packit |
90a5c9 |
printf("const void *ap_ugly_hack = NULL;\n")
|
|
Packit |
90a5c9 |
printf("\n")
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
TYPE_NORMAL = 0
|
|
Packit |
90a5c9 |
TYPE_HEADER = 1
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
stackptr = 0
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function push(line) {
|
|
Packit |
90a5c9 |
stack[stackptr] = line
|
|
Packit |
90a5c9 |
stackptr++
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function do_output() {
|
|
Packit |
90a5c9 |
printf("/*\n")
|
|
Packit |
90a5c9 |
printf(" * %s\n", FILENAME)
|
|
Packit |
90a5c9 |
printf(" */\n")
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
for (i = 0; i < stackptr; i++) {
|
|
Packit |
90a5c9 |
printf("%s\n", stack[i])
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
stackptr = 0
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
printf("\n");
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function enter_scope(type) {
|
|
Packit |
90a5c9 |
scope++
|
|
Packit |
90a5c9 |
scope_type[scope] = type
|
|
Packit |
90a5c9 |
scope_stack[scope] = stackptr
|
|
Packit |
90a5c9 |
delete scope_used[scope]
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function leave_scope() {
|
|
Packit |
90a5c9 |
used = scope_used[scope]
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
if (!used)
|
|
Packit |
90a5c9 |
stackptr = scope_stack[scope]
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
scope--
|
|
Packit |
90a5c9 |
if (used) {
|
|
Packit |
90a5c9 |
scope_used[scope] = 1
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
if (!scope)
|
|
Packit |
90a5c9 |
do_output()
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
function add_symbol(symbol) {
|
|
Packit |
90a5c9 |
if (!index(symbol, "#")) {
|
|
Packit |
90a5c9 |
push("const void *ap_hack_" symbol " = (const void *)" symbol ";")
|
|
Packit |
90a5c9 |
scope_used[scope] = 1
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^[ \t]*AP[RU]?_(CORE_)?DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
|
|
Packit |
90a5c9 |
sub("[ \t]*AP[RU]?_(CORE_)?DECLARE[^(]*[(][^)]*[)][ \t]*", "")
|
|
Packit |
90a5c9 |
sub("[(].*", "")
|
|
Packit |
90a5c9 |
sub("([^ ]* (^([ \t]*[(])))+", "")
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
add_symbol($0)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^[ \t]*AP_DECLARE_HOOK[^(]*[(][^)]*/ {
|
|
Packit |
90a5c9 |
split($0, args, ",")
|
|
Packit |
90a5c9 |
symbol = args[2]
|
|
Packit |
90a5c9 |
sub("^[ \t]+", "", symbol)
|
|
Packit |
90a5c9 |
sub("[ \t]+$", "", symbol)
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
add_symbol("ap_hook_" symbol)
|
|
Packit |
90a5c9 |
add_symbol("ap_hook_get_" symbol)
|
|
Packit |
90a5c9 |
add_symbol("ap_run_" symbol)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ {
|
|
Packit |
90a5c9 |
sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0)
|
|
Packit |
90a5c9 |
sub("[)].*$", "", $0)
|
|
Packit |
90a5c9 |
add_symbol("apr_" $0 "_pool_get")
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(][^)]*[)]/ {
|
|
Packit |
90a5c9 |
sub("[ \t]*APR_DECLARE_INHERIT_SET[^(]*[(]", "", $0)
|
|
Packit |
90a5c9 |
sub("[)].*$", "", $0)
|
|
Packit |
90a5c9 |
add_symbol("apr_" $0 "_inherit_set")
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(][^)]*[)]/ {
|
|
Packit |
90a5c9 |
sub("[ \t]*APR_DECLARE_INHERIT_UNSET[^(]*[(]", "", $0)
|
|
Packit |
90a5c9 |
sub("[)].*$", "", $0)
|
|
Packit |
90a5c9 |
add_symbol("apr_" $0 "_inherit_unset")
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^#[ \t]*if(ndef| !defined[(])([^_]*_)*H/ {
|
|
Packit |
90a5c9 |
enter_scope(TYPE_HEADER)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^#[ \t]*if([n]?def)? / {
|
|
Packit |
90a5c9 |
enter_scope(TYPE_NORMAL)
|
|
Packit |
90a5c9 |
push($0)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^#[ \t]*endif/ {
|
|
Packit |
90a5c9 |
if (scope_type[scope] == TYPE_NORMAL)
|
|
Packit |
90a5c9 |
push($0)
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
leave_scope()
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^#[ \t]*else/ {
|
|
Packit |
90a5c9 |
push($0)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
/^#[ \t]*elif/ {
|
|
Packit |
90a5c9 |
push($0)
|
|
Packit |
90a5c9 |
next
|
|
Packit |
90a5c9 |
}
|
|
Packit |
90a5c9 |
|
|
Packit |
90a5c9 |
|