aboutsummaryrefslogtreecommitdiffstats
path: root/build_tools/prep_moduledeps
blob: 8454ef9333d0c87068b14fcbc6f5f2e515c906dd (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
#!/bin/sh

get_description() {
	x=${1}
	TDESC=`cat $x | grep -e *tdesc | cut -f 2 -d '"'`
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -A 2 -e *description | grep -e '\"'  | cut -f 2 -d '"'` 
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -e MODULE_DESCRIPTION | grep -v return | cut -f 2 -d '"'`
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -e tdesc\\\[\\\] | cut -f 2 -d '"'`
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -e desc\\\[\\\] | grep -v description | cut -f 2 -d '"'`
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -e *desc | grep -v descrip | cut -f 2 -d '"'`
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -e *dtext | grep static | cut -f 2 -d '"'`
	fi
	if [ "$TDESC" = "" ]; then
		TDESC=`cat $x | grep -A 2 -e *synopsis | grep -e '\"'  | cut -f 2 -d '"'` 
	fi
}

process_dir() {
	dir=${1}
	prefix=${2}_
	catsuffix=${3}
	displayname=${4}

	echo -e "\t<category name=\"MENUSELECT_${catsuffix}\" displayname=\"${displayname}\">"
	for file in ${dir}/${prefix}*.c
	do
		fname=`basename ${file} .c`
		get_description ${file}
		desc=${TDESC}
		echo -e "\t\t<member name=\"${fname}\" displayname=\"${desc}\" remove_on_change=\"${dir}/${fname}.o ${dir}/${fname}.so\">"
		awk -f build_tools/get_moduleinfo ${file}
		echo -e "\t\t</member>"
	done
	echo -e "\t</category>"

	for file in ${dir}/${prefix}*.c
	do
		awk -f build_tools/get_makeopts ${file} >> .makeoptstmp
	done
}

echo "<?xml version="1.0"?>"
echo
echo "<menu name=\"Asterisk Module Selection\">"
rm -f .makeoptstmp
process_dir apps app APPS Applications
process_dir cdr cdr CDR "Call Detail Recording"
process_dir channels chan CHANNELS "Channel Drivers"
process_dir codecs codec CODECS "Codec Translators"
process_dir formats format FORMATS "Format Interpreters"
process_dir funcs func FUNCS "Dialplan Functions"
process_dir pbx pbx PBX "PBX Modules"
process_dir res res RES "Resource Modules"
cat build_tools/cflags.xml
cat sounds/sounds.xml
cat .makeoptstmp
rm -f .makeoptstmp
echo "</menu>"