summaryrefslogtreecommitdiff
path: root/build/make_nw_export.awk
blob: 922489bf518bf32e67af0ccf3fe0ff50ddff76d1 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# Based on apr's make_export.awk, which is
# based on Ryan Bloom's make_export.pl

# List of functions that we don't support, yet??
/apr_##name##_set_inherit/{next}
/apr_##name##_unset_inherit/{next}
/apr_compare_groups/{next}
/apr_compare_users/{next}
/apr_find_pool/{next}
/apr_generate_random_bytes/{next}
/apr_lock_create_np/{next}
/apr_md5_set_xlate/{next}
/apr_mmap_create/{next}
/apr_mmap_delete/{next}
/apr_mmap_dup/{next}
/apr_mmap_offset/{next}
/apr_pool_create\(/{next}
/apr_pool_free_blocks_num_bytes/{next}
/apr_pool_join/{next}
/apr_pool_lock/{next}
/apr_pool_num_bytes/{next}
/apr_pool_sub_make/{next}
/apr_proc_mutex_child_init/{next}
/apr_proc_mutex_create/{next}
/apr_proc_mutex_create_np/{next}
/apr_proc_mutex_destroy/{next}
/apr_proc_mutex_lock/{next}
/apr_proc_mutex_trylock/{next}
/apr_proc_mutex_unlock/{next}
/apr_proc_other_child_check/{next}
/apr_proc_other_child_read/{next}
/apr_proc_other_child_register/{next}
/apr_proc_other_child_unregister/{next}
/apr_sendfile/{next}
/apr_shm_avail/{next}
/apr_shm_calloc/{next}
/apr_shm_destroy/{next}
/apr_shm_free/{next}
/apr_shm_init/{next}
/apr_shm_malloc/{next}
/apr_shm_name_get/{next}
/apr_shm_name_set/{next}
/apr_shm_open/{next}
/apr_signal/{next}
/apr_signal_thread/{next}
/apr_socket_from_file/{next}
/apr_xlate_close/{next}
/apr_xlate_conv_buffer/{next}
/apr_xlate_conv_byte/{next}
/apr_xlate_conv_char/{next}
/apr_xlate_get_sb/{next}
/apr_xlate_open/{next}
/apr_brigade_consume/{next}
/apr_bucket_mmap_create/{next}
/apr_bucket_mmap_make/{next}
/apr_bucket_type_mmap/{next}
/apr_md4_set_xlate/{next}
/apr_os_proc_mutex_get/{next}
/apr_os_proc_mutex_put/{next}
/proc_mutex/{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[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
    sub("[ \t]*AP[RU]?_DECLARE[^(]*[(][^)]*[)][ \t]*", "")
    sub("[(].*", "")
    sub("([^ ]* (^([ \t]*[(])))+", "")

    add_symbol($0)
    next
}

/^[ \t]*AP_DECLARE_HOOK[^(]*[(][^)]*/ {
    split($0, args, ",")
    symbol = args[2]
    sub("^[ \t]+", "", symbol)
    sub("[ \t]+$", "", symbol)

    add_symbol("ap_hook_" symbol)
    add_symbol("ap_hook_get_" symbol)
    add_symbol("ap_run_" symbol)
    next
}

/^[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(][^)]*[)]/ {
    sub("[ \t]*APR_POOL_DECLARE_ACCESSOR[^(]*[(]", "", $0)
    sub("[)].*$", "", $0)
    add_symbol("apr_" $0 "_pool_get")
    next
}

/^[ \t]*AP[RU]?_DECLARE_DATA .*;$/ {
       varname = $NF;
       gsub( /[*;]/, "", varname);
       gsub( /\[.*\]/, "", varname);
       add_symbol(varname);
}

#END {
#	printf(" %s", line)
#}