mirror of
https://github.com/freebsd/freebsd-src
synced 2024-11-05 18:22:52 +00:00
88 lines
1.8 KiB
Text
88 lines
1.8 KiB
Text
# To incorporate the 7300/3b1 shared library, run this script in place
|
|
# of 'CC'.
|
|
# You can skip this is you have the shcc program installed as cc in
|
|
# your path.
|
|
# First: Run 'Configure' through to the end and run 'make depend'.
|
|
# Second: Edit 'makefile' ( not Makefile ) and set CC = 3b1cc.
|
|
# Third: Edit 'x2p/makefile' and set CC = 3b1cc.
|
|
#
|
|
# Do not use '3b1cc' as the default compiler. The call to the default
|
|
# compiler is used by 'perl' and will not be available when running
|
|
# 'perl'.
|
|
#
|
|
# Note: This script omits libraries which are redundant in the shared
|
|
# library. It is an excerpt from a grander version available upon
|
|
# request from "zebra!vern" or "vern@zebra.alphacdc.com".
|
|
|
|
CC="cc"
|
|
LIBS=
|
|
INCL=
|
|
|
|
LD="ld"
|
|
SHAREDLIB="/lib/crt0s.o /lib/shlib.ifile"
|
|
|
|
# Local variables
|
|
COBJS=
|
|
LOBJS=
|
|
TARG=
|
|
FLAGS=
|
|
CMD=
|
|
|
|
# These are libraries which are incorporated in the shared library
|
|
OMIT="-lmalloc"
|
|
|
|
# These routines are in libc.a but not in the shared library
|
|
if [ ! -f vsprintf.o -o ! -f doprnt.o ]
|
|
then
|
|
echo "Extracting vsprintf.o from libc.a"
|
|
ar -x /lib/libc.a vsprintf.o doprnt.o
|
|
fi
|
|
|
|
CMD="$CC"
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case $1 in
|
|
-c) CFLAG=$1;;
|
|
-o) CFLAG=$1
|
|
shift
|
|
TARG="$1";;
|
|
-l*) match=false
|
|
for i in $OMIT
|
|
do
|
|
[ "$i" = "$1" ] && match=true
|
|
done
|
|
[ "$match" != false ] || LIBS="$LIBS $1";;
|
|
-*) FLAGS="$FLAGS $1";;
|
|
*.c) COBJS="$COBJS $1";;
|
|
*.o) LOBJS="$LOBJS $1";;
|
|
*) TARG="$1";;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ -n "$COBJS" ]
|
|
then
|
|
CMD="$CMD $FLAGS $INCL $LPATHS $LIBS $COBJS $CFLAG $TARG"
|
|
elif [ -n "$LOBJS" ]
|
|
then
|
|
LOBJS="$LOBJS vsprintf.o doprnt.o"
|
|
CMD="$LD -r $LOBJS $LPATHS $LIBS -o temp.o"
|
|
echo "\t$CMD"
|
|
$CMD
|
|
CMD="$LD -s temp.o $SHAREDLIB -o $TARG"
|
|
echo "\t$CMD"
|
|
$CMD
|
|
ccrslt=$?
|
|
if [ $ccrslt -ne 0 ]
|
|
then
|
|
exit $ccrslt
|
|
fi
|
|
CMD="rm -f temp.o"
|
|
else
|
|
exit 1
|
|
fi
|
|
echo "\t$CMD"
|
|
$CMD
|
|
ccrslt=$?
|
|
rm -f $$.c
|
|
exit $ccrslt
|