blob: 5e857e77953ccb7637479bb19e1171aa920b99eb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
#! /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
|