]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/device-ti-proprietary-open.git/blob - omap5/sgx_src/eurasia_km/eurasiacon/build/linux2/tools/cc-check.sh
jacinto6: sgx: add memtrack library
[android-sdk/device-ti-proprietary-open.git] / omap5 / sgx_src / eurasia_km / eurasiacon / build / linux2 / tools / cc-check.sh
1 #!/bin/sh
2 ########################################################################### ###
3 #@Title         Test the nature of the C compiler.
4 #@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
5 #@License       Dual MIT/GPLv2
6
7 # The contents of this file are subject to the MIT license as set out below.
8
9 # Permission is hereby granted, free of charge, to any person obtaining a copy
10 # of this software and associated documentation files (the "Software"), to deal
11 # in the Software without restriction, including without limitation the rights
12 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 # copies of the Software, and to permit persons to whom the Software is
14 # furnished to do so, subject to the following conditions:
15
16 # The above copyright notice and this permission notice shall be included in
17 # all copies or substantial portions of the Software.
18
19 # Alternatively, the contents of this file may be used under the terms of
20 # the GNU General Public License Version 2 ("GPL") in which case the provisions
21 # of GPL are applicable instead of those above.
22
23 # If you wish to allow use of your version of this file only under the terms of
24 # GPL, and not to allow others to use your version of this file under the terms
25 # of the MIT license, indicate your decision by deleting the provisions above
26 # and replace them with the notice and other provisions required by GPL as set
27 # out in the file called "GPL-COPYING" included in this distribution. If you do
28 # not delete the provisions above, a recipient may use your version of this file
29 # under the terms of either the MIT license or GPL.
30
31 # This License is also included in this distribution in the file called
32 # "MIT-COPYING".
33
34 # EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
35 # PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
36 # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
37 # PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
38 # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
39 # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
40 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41 ### ###########################################################################
43 LANG=C
44 export LANG
46 usage() {
47         echo "usage: $0 [--64] --cc CC --out OUT [cflag]"
48         exit 1
49 }
51 # NOTE: The program passed to the compiler is deliberately incorrect
52 # (`return;' should be `return 0;') but we do this to emit a warning.
53 #
54 # Emitting a warning is necessary to get GCC to print out additional
55 # warnings about any unsupported -Wno options, so we can handle these
56 # as unsupported by the build.
57 #
58 do_cc() {
59         echo "int main(void){return;}" | $CC -W -Wall $3 -xc -c - -o $1 >$2 2>&1
60 }
62 while [ 1 ]; do
63         if [ "$1" = "--64" ]; then
64                 BIT_CHECK=1
65         elif [ "$1" = "--cc" ]; then
66                 [ "x$2" = "x" ] && usage
67                 CC="$2" && shift
68         elif [ "$1" = "--out" ]; then
69                 [ "x$2" = "x" ] && usage
70                 OUT="$2" && shift
71         elif [ "${1#--}" != "$1" ]; then
72                 usage
73         else
74                 break
75         fi
76         shift
77 done
79 [ "x$CC" = "x" ] && usage
80 [ "x$OUT" = "x" ] && usage
81 ccof=$OUT/cc-sanity-check
82 log=${ccof}.log
84 if [ "x$BIT_CHECK" = "x1" ]; then
85         do_cc $ccof $log ""
86         file $ccof | grep 64-bit >/dev/null 2>&1
87         [ "$?" = "0" ] && echo true || echo false
88 else
89         [ "x$1" = "x" ] && usage
90         do_cc $ccof $log $1
91         if [ "$?" = "0" ]; then
92                 # compile passed, but was the warning unrecognized?
93                 grep -q "^cc1: warning: unrecognized command line option \"$1\"" $log
94                 [ "$?" = "1" ] && echo $1
95         fi
96 fi
98 rm -f $ccof $log
99 exit 0