INIT.2014-12-24
[INIT.git] / src / cmd / INIT / cc.darwin.i386
blob9e0bae683c9838b26aceff2b98b20c3ec5e378d7
1 : unix wrapper for mac osx cc : 2013-11-07 :
3 HOSTTYPE=darwin.i386
5 case " $* " in
6 *" -dumpmachine "*) echo $HOSTTYPE; exit ;;
7 esac
9 CC='/usr/bin/cc -m32'
10 op=init
11 for arg
12 do      case $op in
13         init)   op=ld
14                 set ''
15                 ;;
16         esac
17         case $arg in
18         -c)     op=cc
19                 ;;
20         -E)     op=cpp
21                 continue
22                 ;;
23         -G)     op=dll
24                 continue
25                 ;;
26         -lc)    continue
27                 ;;
28         -lm)    continue
29                 ;;
30         -O)     continue
31                 ;;
32         esac
33         set "$@" "$arg"
34 done
35 case $# in
36 0)      ;;
37 *)      shift ;;
38 esac
39 case $* in
40 -v)     $CC "$@"; exit ;;
41 esac
42 case $op in
43 init)   echo "cc: arguments expected" >&2
44         exit 1
45         ;;
46 cpp)    $CC -E "$@"
47         ;;
48 cc)     $CC -DCLK_TCK=100 "$@"
49         ;;
50 dll)    # what a compatibility mess -- surely they can get the apis to play nice
51         tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
52         trap "rm -f $tmp" EXIT
53         case `MACOSX_DEPLOYMENT_TARGET=10.7 ld -undefined dynamic_lookup 2>&1` in
54         *undefined*dynamic_lookup*)
55                 ld -m -flat_namespace -undefined suppress -dylib -dynamic \
56                         -ldylib1.o "$@" -lcc_dynamic -framework System >$tmp 2>&1
57                 status=$?
58                 ;;
59         *)      MACOSX_DEPLOYMENT_TARGET=10.7 $CC -Wl,-flat_namespace -dynamiclib -undefined dynamic_lookup "$@" >$tmp 2>&1
60                 status=$?
61                 ;;
62         esac
63         egrep -v ' (warning .*multiple definitions|definition) of ' $tmp >&2
64         exit $status
65         ;;
66 ld)     tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
67         trap "rm -f $tmp" EXIT
68         $CC -Wl,-m -DCLK_TCK=100 "$@" >$tmp 2>&1
69         status=$?
70         egrep -v ' (warning .*multiple definitions of|definition of|as lazy binding|not from earlier dynamic) ' $tmp >&2
71         exit $status
72         ;;
73 esac