OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / ndk / build / awk / convert-deps-to-cygwin.awk
1 # Copyright (C) 2010 The Android Open Source Project
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 #      http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 #
15
16 # This script is used to convert a dependency file generated by a cygwin-less
17 # GCC compiler program into something that can be parsed into a cygwin-based
18 # GNU Make program.
19 #
20 # More specifically, it's going to translate stuff like:
21 #
22 # D:/Stuff/source.o: \
23 #  D:/Stuff/source.h \
24 #  C:/NDK/sysroot/include/string.h \
25 #  C:/NDK/sysroot/include/malloc.h
26 #
27 # into
28 #
29 # /cygdrive/d/Stuff/source.o: \
30 #  /cygdrive/d/Stuff/source.h \
31 #  /cygdrive/c/NDK/sysroot/include/string.h \
32 #  /cygdrive/c/NDK/sysroot/include/malloc.h
33 #
34
35 BEGIN {
36     # TODO: We could determine this dynamically before calling this script
37     CYGDRIVE_PREFIX = "/cygdrive/"
38 }
39
40 {
41     LINE=""
42     SEP=""
43     for (nn = 1; nn <= NF; nn++) {
44         if ($nn ~ /^[A-Za-z]:/) {
45             LINE = LINE SEP CYGDRIVE_PREFIX tolower(substr($nn,1,1)) "/" substr($nn,4)
46         } else {
47             LINE = LINE SEP $nn
48         }
49         SEP=" "
50     }
51     # Any leading space on the original line should be preserved
52     MARGIN=""
53     if (match($0,"^[[:space:]]+")) {
54         MARGIN=substr($0,RSTART,RLENGTH)
55     }
56     printf("%s%s\n", MARGIN, LINE)
57 }