arnold@emory.UUCP (Arnold D. Robbins {EUCC}) (09/09/87)
The following shell script is useful to users of an AT&T Unix/PC or 3B1. This machine has a nifty shared library, but the default 'cc' command does not use it. Instead, one has to use unportable (although documented) features of make. By renaming your original 'cc' to /bin/c-compiler and installing this shell script as /bin/cc, nothing has to be changed. I have yet to come across anything that this script breaks. Arnold Robbins Emory University Computing Center ------------- cut here, save your old cc, name this cc ------------------- #! /bin/sh # cc -- cc replacement that uses the shared library # see cc(1) for details PATH=/bin:/usr/bin export PATH OCC=${OCC-/bin/c-compiler} startoff=/lib/crt0s.o # use the shared library by default libc=/lib/shlib.ifile files= ofiles= ldargs= ccargs=-c # have to run real cc with this load=1 # run ld justprint=0 # just print what would do, -# verbose=0 # be verbose, -v while [ $# -gt 0 ] do case "$1" in -#) ccargs="$ccargs $1" justprint=1 ;; -v) ccargs="$ccargs $1" verbose=1 ;; -680[012]0) ccargs="$ccargs $1" ;; -[OPW]) ccargs="$ccargs $1" ;; -[ES]) ccargs="$ccargs $1" load=0 ;; -c) load=0 ;; -g) ccargs="$ccargs $1" ldargs="$ldargs -lg" startoff=/lib/crt0.o libc=/lib/libc.a ;; -o) ldargs="$ldargs $1 $2" shift ;; -p) ccargs="$ccargs $1" ldargs="$ldargs -L/lib/libp" startoff=/lib/mcrt0.o libc=/lib/libc.a ;; -T) ccargs="$ccargs $1" ldargs="$ldargs -G" ;; -w) ldargs="$ldargs $1" ;; -[DI]*) ccargs="$ccargs $1" ;; -[nNzF]) ;; # let ifile set load type -ltam) ;; # get this from shared lib -lc) ;; # get this from shared lib -ltermlib) ;; # get this from shared lib -ltermcap) ;; # get this from shared lib -*) ldargs="$ldargs $1" # unknown go to loader ;; *.[ao]) ofiles="$ofiles $1" ;; *) files="$files $1" ofiles="$ofiles `basename $1 .[cs]`.o" ;; esac shift done $OCC $ccargs $files # compile the source files if [ "$load" -eq 1 ] then run="/bin/ld $startoff $ofiles $ldargs $libc" if [ "$verbose" -eq 1 ] then echo Loading ... fi if [ "$justprint" -eq 1 ] then echo callsys $run else eval $run fi fi exit $? -- Arnold Robbins ARPA, CSNET: arnold@emory.ARPA BITNET: arnold@emory UUCP: { decvax, gatech, sun!sunatl }!emory!arnold ONE-OF-THESE-DAYS: arnold@emory.math Vs aed (Sam