#!/bin/sh MMP=$1 if test "$MMP" == ""; then echo "Usage: makedef.sh FILE.MMP" echo " or makedef.sh all" exit 1 fi if test "$MMP" == "all"; then . $0 pjlib.mmp . $0 pjlib_util.mmp . $0 pjnath.mmp . $0 pjmedia.mmp . $0 pjsdp.mmp . $0 pjsip.mmp . $0 pjsip_simple.mmp . $0 pjsip_ua.mmp . $0 pjsua_lib.mmp . $0 symbian_audio.mmp . $0 null_audio.mmp exit 0 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 #-- debug -- #echo TARGET=$TARGET #echo SOURCES=$SOURCES #echo SOURCEPATH=$SOURCEPATH #echo INCLUDE=$INCLUDE #-- end -- echo > tmpnames.def echo "${TARGET}:" 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 in $DEFFILE."