Commit | Line | Data |
b3634b01 |
1 | # To incorporate the 7300/3b1 shared library, run this script in place |
2 | # of 'CC'. |
85e6fe83 |
3 | # You can skip this is you have the shcc program installed as cc in |
4 | # your path. |
b3634b01 |
5 | # First: Run 'Configure' through to the end and run 'make depend'. |
6 | # Second: Edit 'makefile' ( not Makefile ) and set CC = 3b1cc. |
7 | # Third: Edit 'x2p/makefile' and set CC = 3b1cc. |
8 | # |
9 | # Do not use '3b1cc' as the default compiler. The call to the default |
10 | # compiler is used by 'perl' and will not be available when running |
11 | # 'perl'. |
12 | # |
13 | # Note: This script omits libraries which are redundant in the shared |
14 | # library. It is an excerpt from a grander version available upon |
15 | # request from "zebra!vern" or "vern@zebra.alphacdc.com". |
16 | |
17 | CC="cc" |
18 | LIBS= |
19 | INCL= |
20 | |
21 | LD="ld" |
22 | SHAREDLIB="/lib/crt0s.o /lib/shlib.ifile" |
23 | |
24 | # Local variables |
25 | COBJS= |
26 | LOBJS= |
27 | TARG= |
28 | FLAGS= |
29 | CMD= |
30 | |
31 | # These are libraries which are incorporated in the shared library |
32 | OMIT="-lmalloc" |
33 | |
34 | # These routines are in libc.a but not in the shared library |
35 | if [ ! -f vsprintf.o -o ! -f doprnt.o ] |
36 | then |
37 | echo "Extracting vsprintf.o from libc.a" |
38 | ar -x /lib/libc.a vsprintf.o doprnt.o |
39 | fi |
40 | |
41 | CMD="$CC" |
42 | while [ $# -gt 0 ] |
43 | do |
44 | case $1 in |
45 | -c) CFLAG=$1;; |
46 | -o) CFLAG=$1 |
47 | shift |
48 | TARG="$1";; |
49 | -l*) match=false |
50 | for i in $OMIT |
51 | do |
52 | [ "$i" = "$1" ] && match=true |
53 | done |
54 | [ "$match" != false ] || LIBS="$LIBS $1";; |
55 | -*) FLAGS="$FLAGS $1";; |
56 | *.c) COBJS="$COBJS $1";; |
57 | *.o) LOBJS="$LOBJS $1";; |
58 | *) TARG="$1";; |
59 | esac |
60 | shift |
61 | done |
62 | |
63 | if [ -n "$COBJS" ] |
64 | then |
65 | CMD="$CMD $FLAGS $INCL $LPATHS $LIBS $COBJS $CFLAG $TARG" |
66 | elif [ -n "$LOBJS" ] |
67 | then |
68 | LOBJS="$LOBJS vsprintf.o doprnt.o" |
69 | CMD="$LD -r $LOBJS $LPATHS $LIBS -o temp.o" |
70 | echo "\t$CMD" |
71 | $CMD |
72 | CMD="$LD -s temp.o $SHAREDLIB -o $TARG" |
73 | echo "\t$CMD" |
74 | $CMD |
75 | ccrslt=$? |
76 | if [ $ccrslt -ne 0 ] |
77 | then |
78 | exit $ccrslt |
79 | fi |
80 | CMD="rm -f temp.o" |
81 | else |
82 | exit 1 |
83 | fi |
84 | echo "\t$CMD" |
85 | $CMD |
86 | ccrslt=$? |
87 | rm -f $$.c |
88 | exit $ccrslt |