update dev300-m58
[ooovba.git] / solenv / bin / addsym-mingw.sh
blob06d6682525debcd8f4846692a6556c143ae69b2b
1 #!/bin/bash
3 # This script is needed in the process of generating exported
4 # symbols list out of map files on MinGW
5 # The magic generating the regular expression from the temporary
6 # mapfile containing only star and question mark symbols
8 # The script has to be called as follows:
9 # nm -gx <file>.o | addsym-mingw.sh <file-with-wildcard-symbols> <temporary-file-where-to-write-the-search-expression-to>
10 # See tg_shl.mk for an example of how to use the script
12 # Replace every * with .* and every ? with . to get awk expression
13 # Remove whitespaces and comments in expression
14 # Put ^ at the beginning of every expression
15 # Put $ at the beginning of every expression
16 # Connect them all on one line, separated by |
17 # Remove | at the end of this regular expression because the last end
18 # of line was also replaced by |
20 if [ -s $1 ]
21 then
22 cat $1 | sed 's#*#.*#g
23 s#?#.#g
24 s#;.*##g
25 s# ##g
26 s# ##g
27 s#^#^#
28 s#$#$#' | tr '\n' '|' | sed "s#|\$##" >$2
30 # Please note that the awk expression expects to get the output of 'nm -gP'!
31 awk -v SYMBOLSREGEXP="`cat $2`" '
32 match (substr ($1,2) ,SYMBOLSREGEXP) > 0 { print substr ($1,2) ";" }'