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