summaryrefslogtreecommitdiff
path: root/build.symbian/makedef.sh
blob: 46d85b65ed3bcfe3599458a4f4f6d0aeebc15ecd (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
#!/bin/sh

MMP=$1
if test "$MMP" == ""; then
	echo Usage: makedef.sh FILE.MMP
	exit 1
fi

if test -f $MMP; then
	true
else
	echo "Unable to open $MMP"
	exit 1
fi

TARGET=`grep -w TARGET $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1`
DEFFILE="${TARGET}U.def"
SOURCES=`grep -w SOURCE $MMP | awk '{print $2}' | tr '\\\\' '/'`
SOURCEPATH=`grep -w SOURCEPATH $MMP | tr '\\\\' '/' | awk '{print $2}'`
INCPATH=`grep INCLUDE $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'`
INCLUDE=""
for INC in $INCPATH; do
	INCLUDE=`echo $INCLUDE -I$INC`
done

echo > tmpnames.def


for file in $SOURCES; do
	#SYMBOLS=`grep PJ_DEF ${SOURCEPATH}/$file | awk -F ')' '{print $2}' | awk -F '(' '{print $1}' | awk -F '=' '{print $1}' | tr -d '[:blank:]' | sort | uniq`
	SYMBOLS=`
		cpp -DPJ_SYMBIAN=1 -DPJ_DLL -DPJ_EXPORTING=1 $INCLUDE ${SOURCEPATH}/$file 2>&1 |
       		grep EXPORT_C | 
		sed 's/(/;/' | 
		sed 's/=/;/' | 
		awk -F ';' '{print $1}' | 
		awk '{print $NF}'`
	echo Processing ${SOURCEPATH}/$file..
	for SYM in $SYMBOLS; do
		echo $SYM >> tmpnames.def
	done
done

echo "Writing $DEFFILE"
echo EXPORTS > $DEFFILE
i=0
for SYM in `cat tmpnames.def | sort | uniq`; do
	echo "             $SYM"
	i=`expr $i + 1`
	printf "\\t%-40s @ $i NONAME\\n" $SYM >> $DEFFILE
done


echo
echo "Done. Total $i symbols exported."