summaryrefslogtreecommitdiff
path: root/helpers/build-modules-c.awk
blob: 15ff82ccfb4f75ca788db078240b62875f22ed58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
BEGIN {
    RS = " "
    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 " *  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 ""
}