Line | |
---|
1 | # To incorporate the 7300/3b1 shared library, run this script in place
|
---|
2 | # of 'CC'.
|
---|
3 | # You can skip this is you have the shcc program installed as cc in
|
---|
4 | # your path.
|
---|
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
|
---|
Note:
See
TracBrowser
for help on using the repository browser.