diff options
Diffstat (limited to 'build/build-modules-c.awk')
-rw-r--r-- | build/build-modules-c.awk | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/build/build-modules-c.awk b/build/build-modules-c.awk new file mode 100644 index 0000000..68fd83b --- /dev/null +++ b/build/build-modules-c.awk @@ -0,0 +1,82 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +BEGIN { + RS = " " + # the core module must come first + modules[n++] = "core" + pmodules[pn++] = "core" +} +{ + modules[n] = $1; + pmodules[pn] = $1; + gsub("\n","",modules[n]); + gsub("\n","",pmodules[pn]); + ++n; + ++pn; +} +END { + print "/*" + print " * modules.c --- automatically generated by Apache" + print " * configuration script. DO NOT HAND EDIT!!!!!" + print " */" + print "" + print "#include \"ap_config.h\"" + print "#include \"httpd.h\"" + print "#include \"http_config.h\"" + print "" + for (i = 0; i < pn; ++i) { + printf ("extern module %s_module;\n", pmodules[i]) + } + print "" + print "/*" + print " * Modules which implicitly form the" + print " * list of activated modules on startup," + print " * i.e. these are the modules which are" + print " * initially linked into the Apache processing" + print " * [extendable under run-time via AddModule]" + print " */" + print "module *ap_prelinked_modules[] = {" + for (i = 0 ; i < n; ++i) { + printf " &%s_module,\n", modules[i] + } + print " NULL" + print "};" + print "" + print "/*" + print " * We need the symbols as strings for <IfModule> containers" + print " */" + print "" + print "ap_module_symbol_t ap_prelinked_module_symbols[] = {" + for (i = 0; i < n; ++i) { + printf (" {\"%s_module\", &%s_module},\n", modules[i], modules[i]) + } + print " {NULL, NULL}" + print "};" + print "" + print "/*" + print " * Modules which initially form the" + print " * list of available modules on startup," + print " * i.e. these are the modules which are" + print " * initially loaded into the Apache process" + print " * [extendable under run-time via LoadModule]" + print " */" + print "module *ap_preloaded_modules[] = {" + for (i = 0; i < pn; ++i) { + printf " &%s_module,\n", pmodules[i] + } + print " NULL" + print "};" + print "" +} |