Benny Prijono | 8ab968f | 2007-07-20 08:08:30 +0000 | [diff] [blame] | 1 | #!/bin/sh
|
| 2 |
|
| 3 | MMP=$1
|
| 4 | if test "$MMP" == ""; then
|
| 5 | echo Usage: makedef.sh FILE.MMP
|
| 6 | exit 1
|
| 7 | fi
|
| 8 |
|
| 9 | if test -f $MMP; then
|
| 10 | true
|
| 11 | else
|
| 12 | echo "Unable to open $MMP"
|
| 13 | exit 1
|
| 14 | fi
|
| 15 |
|
Benny Prijono | 1f61a8f | 2007-08-16 10:11:44 +0000 | [diff] [blame^] | 16 | TARGET=`grep -w '^TARGET' $MMP | awk '{print $2}' | awk -F '.' '{print $1}' | head -1`
|
Benny Prijono | 8ab968f | 2007-07-20 08:08:30 +0000 | [diff] [blame] | 17 | DEFFILE="${TARGET}U.def"
|
Benny Prijono | 1f61a8f | 2007-08-16 10:11:44 +0000 | [diff] [blame^] | 18 | SOURCES=`grep -w '^SOURCE' $MMP | awk '{print $2}' | tr '\\\\' '/'`
|
| 19 | SOURCEPATH=`grep -w '^SOURCEPATH' $MMP | tr '\\\\' '/' | awk '{print $2}'`
|
| 20 | INCPATH=`grep 'INCLUDE' $MMP | awk '{print $2}' | grep pj | tr '\\\\' '/'`
|
Benny Prijono | 8ab968f | 2007-07-20 08:08:30 +0000 | [diff] [blame] | 21 | INCLUDE=""
|
| 22 | for INC in $INCPATH; do
|
| 23 | INCLUDE=`echo $INCLUDE -I$INC`
|
| 24 | done
|
| 25 |
|
Benny Prijono | 1f61a8f | 2007-08-16 10:11:44 +0000 | [diff] [blame^] | 26 | #-- debug --
|
| 27 | #echo TARGET=$TARGET
|
| 28 | #echo SOURCES=$SOURCES
|
| 29 | #echo SOURCEPATH=$SOURCEPATH
|
| 30 | #echo INCLUDE=$INCLUDE
|
| 31 | #-- end --
|
| 32 |
|
Benny Prijono | 8ab968f | 2007-07-20 08:08:30 +0000 | [diff] [blame] | 33 | echo > tmpnames.def
|
| 34 |
|
| 35 |
|
| 36 | for file in $SOURCES; do
|
| 37 | #SYMBOLS=`grep PJ_DEF ${SOURCEPATH}/$file | awk -F ')' '{print $2}' | awk -F '(' '{print $1}' | awk -F '=' '{print $1}' | tr -d '[:blank:]' | sort | uniq`
|
| 38 | SYMBOLS=`
|
| 39 | cpp -DPJ_SYMBIAN=1 -DPJ_DLL -DPJ_EXPORTING=1 $INCLUDE ${SOURCEPATH}/$file 2>&1 |
|
| 40 | grep EXPORT_C |
|
| 41 | sed 's/(/;/' |
|
| 42 | sed 's/=/;/' |
|
| 43 | awk -F ';' '{print $1}' |
|
| 44 | awk '{print $NF}'`
|
| 45 | echo Processing ${SOURCEPATH}/$file..
|
| 46 | for SYM in $SYMBOLS; do
|
| 47 | echo $SYM >> tmpnames.def
|
| 48 | done
|
| 49 | done
|
| 50 |
|
| 51 | echo "Writing $DEFFILE"
|
| 52 | echo EXPORTS > $DEFFILE
|
| 53 | i=0
|
| 54 | for SYM in `cat tmpnames.def | sort | uniq`; do
|
| 55 | echo " $SYM"
|
| 56 | i=`expr $i + 1`
|
| 57 | printf "\\t%-40s @ $i NONAME\\n" $SYM >> $DEFFILE
|
| 58 | done
|
| 59 |
|
| 60 |
|
| 61 | echo
|
Benny Prijono | d51a37a | 2007-07-28 02:44:55 +0000 | [diff] [blame] | 62 | echo "Done. Total $i symbols exported in $DEFFILE."
|
Benny Prijono | 8ab968f | 2007-07-20 08:08:30 +0000 | [diff] [blame] | 63 |
|