Alexandre Lision | 8af73cb | 2013-12-10 14:11:20 -0500 | [diff] [blame] | 1 | #!/bin/sh
|
| 2 |
|
| 3 | MMP=$1
|
| 4 | if test "$MMP" == ""; then
|
| 5 | echo "Usage: makedef.sh FILE.MMP"
|
| 6 | echo " or makedef.sh all"
|
| 7 | exit 1
|
| 8 | fi
|
| 9 |
|
| 10 | if test "$MMP" == "all"; then
|
| 11 | . $0 pjlib.mmp
|
| 12 | . $0 pjlib_util.mmp
|
| 13 | . $0 pjnath.mmp
|
| 14 | . $0 pjmedia.mmp
|
| 15 | . $0 pjsdp.mmp
|
| 16 | . $0 pjsip.mmp
|
| 17 | . $0 pjsip_simple.mmp
|
| 18 | . $0 pjsip_ua.mmp
|
| 19 | . $0 pjsua_lib.mmp
|
| 20 | . $0 symbian_audio.mmp
|
| 21 | . $0 null_audio.mmp
|
| 22 | exit 0
|
| 23 | fi
|
| 24 |
|
| 25 | if test -f $MMP; then
|
| 26 | true
|
| 27 | else
|
| 28 | echo "Unable to open $MMP"
|
| 29 | exit 1
|
| 30 | fi
|
| 31 |
|
| 32 | TARGET=`grep -w '^TARGET' $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1`
|
| 33 | DEFFILE="${TARGET}U.def"
|
| 34 | SOURCES=`grep -w '^SOURCE' $MMP | awk '{print $2}' | tr '\\\\' '/'`
|
| 35 | SOURCEPATH=`grep -w '^SOURCEPATH' $MMP | tr '\\\\' '/' | awk '{print $2}'`
|
| 36 | INCPATH=`grep 'INCLUDE' $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'`
|
| 37 | INCLUDE=""
|
| 38 | for INC in $INCPATH; do
|
| 39 | INCLUDE=`echo $INCLUDE -I$INC`
|
| 40 | done
|
| 41 |
|
| 42 | #-- debug --
|
| 43 | #echo TARGET=$TARGET
|
| 44 | #echo SOURCES=$SOURCES
|
| 45 | #echo SOURCEPATH=$SOURCEPATH
|
| 46 | #echo INCLUDE=$INCLUDE
|
| 47 | #-- end --
|
| 48 |
|
| 49 | echo > tmpnames.def
|
| 50 |
|
| 51 | echo "${TARGET}:"
|
| 52 |
|
| 53 | for file in $SOURCES; do
|
| 54 | #SYMBOLS=`grep PJ_DEF ${SOURCEPATH}/$file | awk -F ')' '{print $2}' | awk -F '(' '{print $1}' | awk -F '=' '{print $1}' | tr -d '[:blank:]' | sort | uniq`
|
| 55 | SYMBOLS=`
|
| 56 | cpp -DPJ_SYMBIAN=1 -DPJ_DLL -DPJ_EXPORTING=1 $INCLUDE ${SOURCEPATH}/$file 2>&1 |
|
| 57 | grep EXPORT_C |
|
| 58 | sed 's/(/;/' |
|
| 59 | sed 's/=/;/' |
|
| 60 | awk -F ';' '{print $1}' |
|
| 61 | awk '{print $NF}'`
|
| 62 | echo Processing ${SOURCEPATH}/$file..
|
| 63 | for SYM in $SYMBOLS; do
|
| 64 | echo $SYM >> tmpnames.def
|
| 65 | done
|
| 66 | done
|
| 67 |
|
| 68 | echo "Writing $DEFFILE"
|
| 69 | echo EXPORTS > $DEFFILE
|
| 70 | i=0
|
| 71 | for SYM in `cat tmpnames.def | sort | uniq`; do
|
| 72 | echo " $SYM"
|
| 73 | i=`expr $i + 1`
|
| 74 | printf "\\t%-40s @ $i NONAME\\n" $SYM >> $DEFFILE
|
| 75 | done
|
| 76 |
|
| 77 |
|
| 78 | echo
|
| 79 | echo "Done. Total $i symbols exported in $DEFFILE."
|
| 80 |
|