Blame


1 dbd7b9a9 2003-11-23 devnull #!/bin/sh
2 dbd7b9a9 2003-11-23 devnull
3 eea5f6ad 2005-01-17 devnull test -f $PLAN9/config && . $PLAN9/config
4 dbd7b9a9 2003-11-23 devnull usegcc()
5 dbd7b9a9 2003-11-23 devnull {
6 dbd7b9a9 2003-11-23 devnull cc=gcc
7 8f314994 2004-03-02 devnull ngflags=" \
8 dbd7b9a9 2003-11-23 devnull -O2 \
9 dbd7b9a9 2003-11-23 devnull -c \
10 dbd7b9a9 2003-11-23 devnull -Wall \
11 dbd7b9a9 2003-11-23 devnull -Wno-parentheses \
12 dbd7b9a9 2003-11-23 devnull -Wno-missing-braces \
13 dbd7b9a9 2003-11-23 devnull -Wno-switch \
14 d51419bf 2004-02-09 devnull -Wno-comment \
15 3765283c 2003-11-25 devnull -Wno-sign-compare \
16 115d4c0a 2004-05-03 devnull -Wno-unknown-pragmas \
17 be36ff68 2004-04-29 devnull -fno-omit-frame-pointer \
18 dbd7b9a9 2003-11-23 devnull "
19 be36ff68 2004-04-29 devnull # want to put -fno-optimize-sibling-calls here but
20 be36ff68 2004-04-29 devnull # that option only works with gcc3+ it seems
21 dc9d0ffc 2004-03-02 devnull cflags="$ngflags -ggdb"
22 dbd7b9a9 2003-11-23 devnull }
23 dbd7b9a9 2003-11-23 devnull
24 8f314994 2004-03-02 devnull tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}-${CC9:-cc}"
25 dbd7b9a9 2003-11-23 devnull case "$tag" in
26 7033e49d 2004-12-28 devnull *BSD*) usegcc ;;
27 53dbac94 2004-03-02 devnull *Darwin*) usegcc
28 8f314994 2004-03-02 devnull cflags="$ngflags -g3 -no-cpp-precomp" ;;
29 dbd7b9a9 2003-11-23 devnull *HP-UX*) cc=cc; cflags="-g -O -c -Ae" ;;
30 282c88f9 2004-09-17 devnull *Linux*) usegcc
31 3b8f0b79 2005-07-22 devnull case "${CC9:-gcc}" in
32 3b8f0b79 2005-07-22 devnull tcc)
33 3b8f0b79 2005-07-22 devnull cc=tcc
34 3b8f0b79 2005-07-22 devnull cflags="-c -g"
35 3b8f0b79 2005-07-22 devnull ;;
36 3b8f0b79 2005-07-22 devnull esac
37 ead3e311 2005-01-04 devnull case "${SYSVERSION:-`uname -r`}" in
38 f7954492 2006-05-05 devnull 2.4.*)
39 f7954492 2006-05-05 devnull cflags="$cflags -D__Linux24__"
40 f7954492 2006-05-05 devnull ;;
41 fa267621 2004-12-24 devnull 2.6.*)
42 282c88f9 2004-09-17 devnull cflags="$cflags -D__Linux26__"
43 282c88f9 2004-09-17 devnull ;;
44 282c88f9 2004-09-17 devnull esac
45 282c88f9 2004-09-17 devnull ;;
46 dbd7b9a9 2003-11-23 devnull *OSF1*) cc=cc; cflags="-g -O -c" ;;
47 0f192bb8 2004-03-26 devnull *SunOS*-cc) cc=cc;
48 9e863cf5 2005-01-07 devnull cflags="-mt -g -O -c -xCC -D__sun__"
49 0f192bb8 2004-03-26 devnull u=`uname`
50 1b431b18 2004-03-26 devnull v=`uname -r`
51 1b431b18 2004-03-26 devnull s=`echo $u$v | tr '. ' '__'`
52 4fc1f5f9 2005-01-19 devnull cflags="$cflags -D__${s}__"
53 0f192bb8 2004-03-26 devnull ;;
54 0f192bb8 2004-03-26 devnull *SunOS*-gcc) usegcc
55 0f192bb8 2004-03-26 devnull u=`uname`
56 1b431b18 2004-03-26 devnull v=`uname -r`
57 1b431b18 2004-03-26 devnull s=`echo $u$v | tr '. ' '__'`
58 78802e69 2004-04-24 devnull cflags="$ngflags -g"
59 4fc1f5f9 2005-01-19 devnull cflags="$cflags -D__${s}__"
60 0f192bb8 2004-03-26 devnull ;;
61 dbd7b9a9 2003-11-23 devnull *)
62 dbd7b9a9 2003-11-23 devnull echo 9c does not know how to compile on "$tag" 1>&2
63 dbd7b9a9 2003-11-23 devnull exit 1
64 dbd7b9a9 2003-11-23 devnull esac
65 dbd7b9a9 2003-11-23 devnull
66 ead3e311 2005-01-04 devnull # N.B. Must use temp file to avoid pipe; pipe loses status.
67 eacba19d 2005-03-18 devnull # The uniq at the end is for gcc's strcmp/etc. built-in nonsense,
68 eacba19d 2005-03-18 devnull # which multiplies single errors as a result of its expansion.
69 ead3e311 2005-01-04 devnull xtmp=/tmp/9c.$$.$USER.out
70 593ac8b3 2005-07-22 devnull $cc -DPLAN9PORT -I$PLAN9/include $cflags "$@" 2>$xtmp
71 d756dc5e 2005-01-07 devnull status=$?
72 d756dc5e 2005-01-07 devnull grep -v '__p9l_autolib_' $xtmp |
73 cbeb0b26 2006-04-01 devnull egrep -v ': error: .Each undeclared identifier|: error: for each function it appears|is dangerous, better use|is almost always misused|: In function |: At top level:|support .long long.|In file included from| from|use of C99 long long|ISO C forbids conversion' |
74 eacba19d 2005-03-18 devnull sed 's/ .first use in this function.$//; s/\"\([^\"][^\"]*\)\", line \([0-9][0-9]*\)/\1:\2/g' |
75 3b8f0b79 2005-07-22 devnull uniq 1>&2
76 d756dc5e 2005-01-07 devnull rm -f $xtmp $xtmp.status
77 ead3e311 2005-01-04 devnull exit $status