4 # This file is part of the LibreOffice project.
6 # This Source Code Form is subject to the terms of the Mozilla Public
7 # License, v. 2.0. If a copy of the MPL was not distributed with this
8 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 # This file incorporates work covered by the following license notice:
12 # Licensed to the Apache Software Foundation (ASF) under one or more
13 # contributor license agreements. See the NOTICE file distributed
14 # with this work for additional information regarding copyright
15 # ownership. The ASF licenses this file to you under the Apache
16 # License, Version 2.0 (the "License"); you may not use this file
17 # except in compliance with the License. You may obtain a copy of
18 # the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 # This script is needed in the process of generating exported
22 # symbols list out of map files on MinGW
23 # The magic generating the regular expression from the temporary
24 # mapfile containing only star and question mark symbols
26 # The script has to be called as follows:
27 # nm -gx <file>.o | addsym-mingw.sh <file-with-wildcard-symbols> <temporary-file-where-to-write-the-search-expression-to>
28 # See tg_shl.mk for an example of how to use the script
30 # Replace every * with .* and every ? with . to get awk expression
31 # Remove whitespaces and comments in expression
32 # Put ^ at the beginning of every expression
33 # Put $ at the beginning of every expression
34 # Connect them all on one line, separated by |
35 # Remove | at the end of this regular expression because the last end
36 # of line was also replaced by |
40 cat $1 |
sed 's#*#.*#g
46 s#$#$#' |
tr '\n' '|' |
sed "s#|\$##" >$2
48 # Please note that the awk expression expects to get the output of 'nm -gP'!
49 awk -v SYMBOLSREGEXP
="`cat $2`" '
50 match (substr ($1,2) ,SYMBOLSREGEXP) > 0 { print substr ($1,2) ";" }'