f27f47054d
import of new ipfilter vendor sources by flattening them. To keep the tags consistent with dist, the tags are also flattened. Approved by: glebius (Mentor)
169 lines
3.7 KiB
Bash
Executable File
169 lines
3.7 KiB
Bash
Executable File
#! /bin/sh
|
|
if [ ! -f netinet/done ] ; then
|
|
echo "Do NOT run this script directly, do 'make solaris'!"
|
|
exit 1
|
|
fi
|
|
# Id: buildsunos,v 2.20 2004/02/07 18:08:46 darrenr Exp
|
|
:
|
|
rev=`uname -r | sed -e 's/^\([^\.]*\)\..*/\1/'`
|
|
if [ -d /usr/ccs/bin ] ; then
|
|
PATH=/usr/ccs/bin:${PATH}
|
|
export PATH
|
|
fi
|
|
|
|
if [ $rev = 5 ] ; then
|
|
if [ ! -d ../pfil ] ; then
|
|
cat << __EOF__
|
|
pfil directory in .. missing, please download pfil package and extract that
|
|
into the parent directory.
|
|
|
|
See INSTALL.Sol2 for more instructions.
|
|
__EOF__
|
|
exit 1
|
|
fi
|
|
#
|
|
# /usr/ucb/cc will not work
|
|
#
|
|
PATH=`echo $PATH | sed -e s:/usr/ucb::g -e s/::/:/g`
|
|
export PATH
|
|
|
|
cpu=`uname -p`
|
|
cpudir=${cpu}-`uname -r`
|
|
solrev=`uname -r | sh -c 'IFS=. read j n x; echo $n'`
|
|
if [ ! -d SunOS5/${cpudir} -a ! -h SunOS5/${cpudir} ] ; then
|
|
mkdir -p SunOS5/${cpudir}
|
|
fi
|
|
/bin/rm -f SunOS5/${cpudir}/Makefile
|
|
/bin/rm -f SunOS5/${cpudir}/Makefile.ipsend
|
|
ln -s `pwd`/SunOS5/Makefile SunOS5/${cpudir}/Makefile
|
|
ln -s `pwd`/SunOS5/Makefile.ipsend SunOS5/${cpudir}/Makefile.ipsend
|
|
|
|
#
|
|
# Default C compiler is "cc", override on make commandline
|
|
#
|
|
if [ "x$CC" = "x" ] ; then
|
|
if echo '' | cc -E - >/dev/null 2>&1 ; then
|
|
CC=cc
|
|
else
|
|
if echo '' | gcc -E - >/dev/null 2>&1 ; then
|
|
CC=gcc
|
|
else
|
|
echo "No working compiler found"
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
v=`echo '__GNUC__' | 2>&1 ${CC} -E - | 2>&1 sed -ne '/^[0-9]* *$/p'`
|
|
if [ x$v != x ] ; then
|
|
CC=gcc
|
|
fi
|
|
|
|
case "$CC" in
|
|
*gcc*) # gcc
|
|
XARCH32=""
|
|
XARCH64="-m64 -mcmodel=medlow"
|
|
;;
|
|
*) # Sun C
|
|
XARCH32="-Xa -xildoff"
|
|
XARCH64="$XARCH32 -xarch=v9 -xchip=ultra -dalign -xcode=abs32"
|
|
;;
|
|
esac
|
|
|
|
export CC
|
|
|
|
ISABITS=32
|
|
|
|
OBJ32=sparcv7
|
|
ARCHINC32=
|
|
OBJ64=sparcv9
|
|
ARCHINC64="-I/usr/include/v9"
|
|
|
|
if [ $solrev -ge 7 ] && /bin/optisa sparcv8plus > /dev/null
|
|
then
|
|
# We run Solaris 7+ on 64 bit capable hardware.
|
|
BUILDBOTH=true
|
|
else
|
|
BUILDBOTH=false
|
|
OBJ32=.
|
|
fi
|
|
|
|
if $BUILDBOTH
|
|
then
|
|
echo Testing compiler $CC for 64 bit object file generation.
|
|
t=conftest$$.c
|
|
trap 'rm -f $t 32.out 64.out; exit 1' 0 1 2 3 15
|
|
cat > $t <<-EOF
|
|
#include <stdio.h>
|
|
int main(void)
|
|
{
|
|
printf("%ld\n", (long) sizeof(long));
|
|
exit(0);
|
|
}
|
|
EOF
|
|
|
|
# Is it perhaps a 64 bit only compiler?
|
|
if $CC $XARCH32 $t -o 32.out >/dev/null 2>&1 &&
|
|
[ "`./32.out`" = 4 ]
|
|
then :; else
|
|
echo $CC $XARCH32 cannot create 32 bit executables. 1>&2
|
|
exit 1
|
|
fi
|
|
if $CC $XARCH64 $t -o 64.out >/dev/null 2>&1 &&
|
|
{ out64=`./64.out 2>/dev/null` ;
|
|
[ "$out64" = 8 -o "`isainfo -b`" = 32 -a "$out64" = "" ]
|
|
}
|
|
then
|
|
echo "found 32/64 bit compiler" 1>&2
|
|
CC64=true
|
|
else
|
|
CC64=false
|
|
fi
|
|
rm -f $t 32.out 64.out
|
|
trap 0 1 2 3 15
|
|
fi
|
|
|
|
# If we're running 64 bit, we *must* build 64 bit.
|
|
if ([ "`isainfo -b`" = 64 ]) 2>/dev/null ; then
|
|
if $CC64 ; then :; else
|
|
echo "No 64 bit capable compiler was found" 1>&2
|
|
exit 1
|
|
fi
|
|
ISABITS="32 64"
|
|
elif $BUILDBOTH && $CC64
|
|
then
|
|
ISABITS="32 64"
|
|
else
|
|
OBJ32=.
|
|
fi
|
|
else
|
|
cpu=`uname -m`
|
|
cpudir=${cpu}-`uname -r`
|
|
fi
|
|
|
|
# Default $MAKE to make
|
|
: ${MAKE:=make}
|
|
|
|
if [ $cpu = i386 ] ; then
|
|
if [ -n "$BPFILTER" ] ; then
|
|
BPF="BPFILTER=./$BPFILTER"
|
|
fi
|
|
$MAKE $MAKEFLAGS ${1+"$@"} sunos5x86 SOLARIS2="-DSOLARIS2=$solrev" CPU= CPUDIR=${cpudir} CC="$CC $XARCH32" XARCH="$XARCH32" ARCHINC="$ARCHINC32" BITS=32 OBJ=. $BPF
|
|
exit $?
|
|
fi
|
|
if [ x$solrev = x ] ; then
|
|
make ${1+"$@"} sunos$rev "TOP=.." "ARCH=`uname -m`"
|
|
exit $?
|
|
fi
|
|
for b in $ISABITS
|
|
do
|
|
echo build $b bit binaries.
|
|
for v in OBJ ARCHINC XARCH
|
|
do
|
|
eval $v=\"\$$v$b\"
|
|
done
|
|
if [ -n "$BPFILTER" ] ; then
|
|
BPF="BPFILTER=$OBJ/$BPFILTER"
|
|
fi
|
|
$MAKE $MAKEFLAGS ${1+"$@"} sunos$rev SOLARIS2="-DSOLARIS2=$solrev" CPU= CPUDIR=${cpudir} CC="$CC $XARCH" XARCH="$XARCH" ARCHINC="$ARCHINC" BITS=$b OBJ=$OBJ $BPF || exit $?
|
|
done
|