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 fa267621 2004-12-24 devnull 2.6.*)
39 282c88f9 2004-09-17 devnull cflags="$cflags -D__Linux26__"
40 282c88f9 2004-09-17 devnull ;;
41 282c88f9 2004-09-17 devnull esac
42 282c88f9 2004-09-17 devnull ;;
43 dbd7b9a9 2003-11-23 devnull *OSF1*) cc=cc; cflags="-g -O -c" ;;
44 0f192bb8 2004-03-26 devnull *SunOS*-cc) cc=cc;
45 9e863cf5 2005-01-07 devnull cflags="-mt -g -O -c -xCC -D__sun__"
46 0f192bb8 2004-03-26 devnull u=`uname`
47 1b431b18 2004-03-26 devnull v=`uname -r`
48 1b431b18 2004-03-26 devnull s=`echo $u$v | tr '. ' '__'`
49 4fc1f5f9 2005-01-19 devnull cflags="$cflags -D__${s}__"
50 0f192bb8 2004-03-26 devnull ;;
51 0f192bb8 2004-03-26 devnull *SunOS*-gcc) usegcc
52 0f192bb8 2004-03-26 devnull u=`uname`
53 1b431b18 2004-03-26 devnull v=`uname -r`
54 1b431b18 2004-03-26 devnull s=`echo $u$v | tr '. ' '__'`
55 78802e69 2004-04-24 devnull cflags="$ngflags -g"
56 4fc1f5f9 2005-01-19 devnull cflags="$cflags -D__${s}__"
57 0f192bb8 2004-03-26 devnull ;;
58 dbd7b9a9 2003-11-23 devnull *)
59 dbd7b9a9 2003-11-23 devnull echo 9c does not know how to compile on "$tag" 1>&2
60 dbd7b9a9 2003-11-23 devnull exit 1
61 dbd7b9a9 2003-11-23 devnull esac
62 dbd7b9a9 2003-11-23 devnull
63 ead3e311 2005-01-04 devnull # N.B. Must use temp file to avoid pipe; pipe loses status.
64 eacba19d 2005-03-18 devnull # The uniq at the end is for gcc's strcmp/etc. built-in nonsense,
65 eacba19d 2005-03-18 devnull # which multiplies single errors as a result of its expansion.
66 ead3e311 2005-01-04 devnull xtmp=/tmp/9c.$$.$USER.out
67 593ac8b3 2005-07-22 devnull $cc -DPLAN9PORT -I$PLAN9/include $cflags "$@" 2>$xtmp
68 d756dc5e 2005-01-07 devnull status=$?
69 d756dc5e 2005-01-07 devnull grep -v '__p9l_autolib_' $xtmp |
70 746d2e1a 2006-02-14 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:' |
71 eacba19d 2005-03-18 devnull sed 's/ .first use in this function.$//; s/\"\([^\"][^\"]*\)\", line \([0-9][0-9]*\)/\1:\2/g' |
72 3b8f0b79 2005-07-22 devnull uniq 1>&2
73 d756dc5e 2005-01-07 devnull rm -f $xtmp $xtmp.status
74 ead3e311 2005-01-04 devnull exit $status