Check in patches that fix minor toolchain build problems.
[android/toolchain/build.git] / clear_header.sh
1 #!/bin/bash
2 #
3 # clear_header.sh
4 #
5 # This script removes the installed header files from include-fix direcotry,
6 # if these headers files have been defined in Android. 
7
8 usage ()
9 {
10   echo "Usage: $0 --prefix=<toolchain prefix> --sysroot=<Android sysroot> [--force]"
11   echo "  <toolchain prefix>: the prefix path when you configure the install"
12   echo "                      the toolchain."
13   echo "   <Android sysroot>: the sysroot directory that is extracted from "
14   echo "                      an Android tree."
15   echo "             <force>: if specified, the headers found by this script "
16   echo "                      will be deleted without confirmation."
17 }
18
19 if [[ $# -lt 1 ]]; then
20   usage
21   exit 1
22 fi
23
24 force=0
25 PREFIX=""
26 SYSROOT=""
27
28 for option in $@; do
29   optarg=$(expr "x$option" : 'x[^=]*=\(.*\)')
30
31   case "$option" in
32     --prefix=*)
33       PREFIX=${optarg}
34       if [[ ! -d ${PREFIX}/lib/gcc/arm-eabi ]]; then
35         echo "Error: ${PREFIX} is not a correct toolchain prefix path!"
36         usage
37         exit 1
38       fi
39       ;;
40     --sysroot=*)
41       SYSROOT=${optarg}
42       ;;
43     --force)
44       force=1
45       ;;
46     *)
47       echo "Error: unknown options ${option}"
48       usage
49       exit 1
50       ;;
51   esac
52 done
53
54 if [[ "x${PREFIX}" = "x" ]]; then
55   echo "Error: you must specify the toolchain prefix path."
56   usage
57   exit 1
58 fi
59
60 if [[ "x${SYSROOT}" = "x" ]]; then
61   SYSROOT="/home/jingyu/projects/gcc/toolchain_build/cupcake_rel_root2"
62   echo "Warning: SYSROOT can't be empty. Set SYSROOT=${SYSROOT}."
63 fi
64
65 INCLUDE_ROOT=$SYSROOT/usr/include
66 if [[ ! -d ${INCLUDE_ROOT} ]]; then
67   echo "Error: ${SYSROOT} is not a correct Android sysroot path!"
68   usage
69   exit 1
70 fi
71
72 installed_headers=`find ${PREFIX}/lib/gcc/arm-eabi/*/include-fixed -name "*\.h"`
73
74 for one_header in ${installed_headers}; do
75   header_name=${one_header##*/}
76   defined_headers=`find ${INCLUDE_ROOT} -name ${header_name}`
77
78   # If the installed header file has been defined in android sysroot,
79   # we need to remove the installed file.
80   if [[ -n ${defined_headers} ]]; then
81     echo -n "Delete ${one_header}?(Y/N):"
82     if [[ ${force} = 0 ]]; then
83       read text
84     else
85       text="Y"
86     fi
87     if [[ "${text}" = "Y" || "${text}" = "y" ]]; then
88       rm -f ${one_header}
89       echo "... Removed!"
90     fi
91   fi
92 done