1 | # sco.sh
|
---|
2 | # Courtesy of Joel Rosi-Schwartz <j.schwartz@agonet.it>
|
---|
3 | ###############################################################
|
---|
4 | # Additional SCO version info from
|
---|
5 | # Peter Wolfe <wolfe@teloseng.com>
|
---|
6 | # Fri Jul 19 14:54:25 EDT 1996
|
---|
7 | # and again Tue Sep 29 16:37:25 EDT 1998
|
---|
8 | # by Andy Dougherty <doughera@lafayette.edu>
|
---|
9 | # Mostly rewritten on
|
---|
10 | # Tue Jan 19 23:00:00 CET 1999
|
---|
11 | # by Francois Desarmenien <desar@club-internet.fr>
|
---|
12 | # Modified by Boyd Gerber <gerberb@zenez.com>
|
---|
13 | # Tue Sep 21 1999
|
---|
14 | ###############################################################
|
---|
15 | #
|
---|
16 | # To use cc, use sh Configure
|
---|
17 | # To use gcc, use sh Configure -Dcc=gcc
|
---|
18 | #
|
---|
19 | # Default on 3.2v4 is to use static link (dynamic loading unsupported).
|
---|
20 | # Default on 3.2v5 is to use dynamic loading.
|
---|
21 | # To use static linkink instead, use to sh Configure -Dusedl=n
|
---|
22 | #
|
---|
23 | # Warning: - to use dynamic loading with gcc, you need gcc 2.8.0 or later
|
---|
24 | # ******** - to compile with older releases of gcc, use Configure -Dusedl=n
|
---|
25 | # or it wont compile properly
|
---|
26 | #
|
---|
27 | ###############################################################
|
---|
28 | # NOTES:
|
---|
29 | # -----
|
---|
30 | #
|
---|
31 | # I Have removed inclusion of ODBM_File for OSR5
|
---|
32 | # because it core dumps and make tests fails.
|
---|
33 | #
|
---|
34 | # Support for icc compiler has been removed, because it 'breaks'
|
---|
35 | # a lot of code :-(
|
---|
36 | #
|
---|
37 | # It's *always* a good idea to first make a static link to be sure to
|
---|
38 | # have all symbols resolved with the current choice of libraries, since
|
---|
39 | # with dynamic linking, unresolved symbols are allowed an will be detected
|
---|
40 | # only at runtime (when you try to load the module or worse, when you call
|
---|
41 | # the symbol)
|
---|
42 | #
|
---|
43 | # The best choice of compiler on OSR 5 (3.2v5.*) seems to be gcc >= 2.8.0:
|
---|
44 | # -You cannot optimize with genuine sco cc (miniperl core dumps),
|
---|
45 | # so Perl is faster if compiled with gcc.
|
---|
46 | # -Even optimized for speed, gcc generated code is smaller (!!!)
|
---|
47 | # -gcc is free
|
---|
48 | # -I use ld to link which is distributed with the core OS distribution, so you
|
---|
49 | # don't need to buy the developement kit, just find someone kind enough to
|
---|
50 | # give you a binary release of gcc.
|
---|
51 | #
|
---|
52 | #
|
---|
53 |
|
---|
54 | ###############################################################
|
---|
55 | # figure out what SCO version we are. The output of uname -X is
|
---|
56 | # something like:
|
---|
57 | # System = SCO_SV
|
---|
58 | # Node = xxxxx
|
---|
59 | # Release = 3.2v5.0.0
|
---|
60 | # KernelID = 95/08/08
|
---|
61 | # Machine = Pentium
|
---|
62 | # BusType = ISA
|
---|
63 | # Serial = xxxxx
|
---|
64 | # Users = 5-user
|
---|
65 | # OEM# = 0
|
---|
66 | # Origin# = 1
|
---|
67 | # NumCPU = 1
|
---|
68 |
|
---|
69 | # Use /bin/uname (because GNU uname may be first in $PATH and
|
---|
70 | # it does not support -X) to figure out what SCO version we are:
|
---|
71 | # Matching '^Release' is broken by locale setting:
|
---|
72 | # matching '3.2v' should be enough -- FD
|
---|
73 | case `/bin/uname -X | egrep '3\.2v'` in
|
---|
74 | *3.2v4.*) scorls=3 ;; # OSR 3
|
---|
75 | *3.2v5.*) scorls=5 ;; # OSR 5
|
---|
76 | *)
|
---|
77 | # Future of SCO OSR is SCO UnixWare: there should not be new OSR releases
|
---|
78 | echo "************************************************************" >&4
|
---|
79 | echo "" >&4
|
---|
80 | echo " sco.sh hints file only supports:" >&4
|
---|
81 | echo "" >&4
|
---|
82 | echo " - SCO Unix 3.2v4.x (OSR 3)" >&4
|
---|
83 | echo " - SCO Unix 3.2v5.x (OSR 5)" >&4
|
---|
84 | echo "" >&4
|
---|
85 | echo "" >&4
|
---|
86 | echo " For UnixWare, use svr4.sh hints instead" >&4
|
---|
87 | echo " For UnixWare 7.*, use svr5.sh hints instead" >&4
|
---|
88 | echo "" >&4
|
---|
89 | echo "***********************************************************" >&4
|
---|
90 | exit
|
---|
91 | ;;
|
---|
92 | esac
|
---|
93 |
|
---|
94 | ###############################################################
|
---|
95 | # Common fixes for all compilers an releases:
|
---|
96 |
|
---|
97 | ###############################################################
|
---|
98 | # What is true for SCO5 is true for SCO3 too today, so let's have a single
|
---|
99 | # symbol for both
|
---|
100 | ccflags="-U M_XENIX -D PERL_SCO"
|
---|
101 |
|
---|
102 | ###############################################################
|
---|
103 | # Compilers options section:
|
---|
104 | if test "$scorls" = "3"
|
---|
105 | then
|
---|
106 | dlext=''
|
---|
107 | case "$cc" in
|
---|
108 | *gcc*) optimize='-O2' ;;
|
---|
109 | *) ccflags="$ccflags -W0 -quiet"
|
---|
110 | optimize='-O' ;;
|
---|
111 | esac
|
---|
112 | else
|
---|
113 | ###############################################################
|
---|
114 | # Need this in release 5 because of changed fpu exeption rules
|
---|
115 | ccflags="$ccflags -D HAS_FPSETMASK"
|
---|
116 |
|
---|
117 | ###############################################################
|
---|
118 | # In Release 5, always compile ELF objects
|
---|
119 | case "$cc" in
|
---|
120 | *gcc*)
|
---|
121 | ccflags="$ccflags -melf"
|
---|
122 | optimize='-O2'
|
---|
123 | ;;
|
---|
124 | *)
|
---|
125 | ccflags="$ccflags -w0 -belf"
|
---|
126 | optimize='-O0'
|
---|
127 | ;;
|
---|
128 | esac
|
---|
129 | ###############################################################
|
---|
130 | # Dynamic loading section:
|
---|
131 | #
|
---|
132 | # We use ld to build shared libraries as it is always available
|
---|
133 | # and seems to work better than GNU's one on SCO
|
---|
134 | #
|
---|
135 | # ccdlflags : must tell the linker to export all global symbols
|
---|
136 | # cccdlflags: must tell the compiler to generate relocatable code
|
---|
137 | # lddlflags : must tell the linker to output a shared library
|
---|
138 | #
|
---|
139 | # /usr/local/lib is added for convenience, since 'foreign' libraries
|
---|
140 | # are usually put there in sco
|
---|
141 | #
|
---|
142 | if test "$usedl" != "n"; then
|
---|
143 | ld='ld'
|
---|
144 | case "$cc" in
|
---|
145 | *gcc*)
|
---|
146 | ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
|
---|
147 | cccdlflags='-fpic'
|
---|
148 | lddlflags='-G -L/usr/local/lib'
|
---|
149 | ;;
|
---|
150 | *)
|
---|
151 | ccdlflags='-Wl,-Bexport -L/usr/local/lib'
|
---|
152 | cccdlflags='-Kpic'
|
---|
153 | lddlflags='-G -L/usr/local/lib'
|
---|
154 | ;;
|
---|
155 | esac
|
---|
156 |
|
---|
157 | ###############################################################
|
---|
158 | # Use dynamic loading
|
---|
159 | usedl='define'
|
---|
160 | dlext='so'
|
---|
161 | dlsrc='dl_dlopen.xs'
|
---|
162 |
|
---|
163 | ###############################################################
|
---|
164 | # Force to define those symbols, as they are #defines and not
|
---|
165 | # catched by Configure, and they are useful
|
---|
166 | d_dlopen='define'
|
---|
167 | d_dlerror='define'
|
---|
168 | fi
|
---|
169 | fi
|
---|
170 |
|
---|
171 |
|
---|
172 | ###############################################################
|
---|
173 | # Various hints, common to all releases, to have it work better:
|
---|
174 |
|
---|
175 | ###############################################################
|
---|
176 | # We need to remove libdl, as libdl.so exists, but ld complains
|
---|
177 | # it can't find libdl.a ! Bug or feature ? :-)
|
---|
178 | libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
|
---|
179 | set X $libswanted
|
---|
180 | shift
|
---|
181 | libswanted="$*"
|
---|
182 |
|
---|
183 | ###############################################################
|
---|
184 | # Remove libbind because it conflicts with libsocket.
|
---|
185 | libswanted=`echo " $libswanted " | sed -e 's/ bind / /'`
|
---|
186 | set X $libswanted
|
---|
187 | shift
|
---|
188 | libswanted="$*"
|
---|
189 |
|
---|
190 | ###############################################################
|
---|
191 | # Try to use libintl.a since it has strcoll and strxfrm
|
---|
192 | libswanted="intl $libswanted"
|
---|
193 |
|
---|
194 | ###############################################################
|
---|
195 | # Try to use libdbm.nfs.a since it has dbmclose.
|
---|
196 | if test -f /usr/lib/libdbm.nfs.a ; then
|
---|
197 | libswanted=`echo "dbm.nfs $libswanted " | sed -e 's/ dbm / /'`
|
---|
198 | set X $libswanted
|
---|
199 | shift
|
---|
200 | libswanted="$*"
|
---|
201 | fi
|
---|
202 |
|
---|
203 | ###############################################################
|
---|
204 | # At least for ORS5.0.2, prefer sprintf() over gcvt(), since gcvt()
|
---|
205 | # used to cause a SIGFPE and a core dump when passed a NaN.
|
---|
206 | # This may not be an issue in perl-5.8.x and later since we
|
---|
207 | # try to trap SIGFPE. However, preferring sprintf() should be
|
---|
208 | # safe anyway, so let's go ahead and set it. See the bugs database
|
---|
209 | # item [perl #3100]. --A.D. 12/2004.
|
---|
210 | gconvert_preference='sprintf'
|
---|
211 |
|
---|
212 | ###############################################################
|
---|
213 | # We disable ODBM_File if OSR5 because it's mostly broken
|
---|
214 | # but keep it for ODT3 as it seems to work.
|
---|
215 | if test "$scorls" = "5"; then
|
---|
216 | i_dbm='undef'
|
---|
217 | fi
|
---|
218 |
|
---|
219 | ###############################################################
|
---|
220 | # We don't want Xenix cross-development libraries
|
---|
221 | glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
|
---|
222 | xlibpth=''
|
---|
223 |
|
---|
224 | ###############################################################
|
---|
225 | # I have received one report that nm extraction doesn't work if you're
|
---|
226 | # using the scocc compiler. This system had the following 'myconfig'
|
---|
227 | # uname='xxx xxx 3.2 2 i386 '
|
---|
228 | # cc='scocc', optimize='-O'
|
---|
229 | # You can override this with Configure -Dusenm.
|
---|
230 | case "$usenm" in
|
---|
231 | '') usenm='false' ;;
|
---|
232 | esac
|
---|
233 |
|
---|
234 | ###############################################################
|
---|
235 | # If you want to use nm, you'll probably have to use nm -p. The
|
---|
236 | # following does that for you:
|
---|
237 | nm_opt='-p'
|
---|
238 |
|
---|
239 | ###############################################################
|
---|
240 | # I have received one report that you can't include utime.h in
|
---|
241 | # pp_sys.c. Uncomment the following line if that happens to you:
|
---|
242 | # i_utime=undef
|
---|
243 |
|
---|
244 | ###############################################################
|
---|
245 | # Perl 5.003_05 and later try to include both <time.h> and <sys/select.h>
|
---|
246 | # in pp_sys.c, but that fails due to a redefinition of struct timeval.
|
---|
247 | # This will generate a WHOA THERE. Accept the default.
|
---|
248 | i_sysselct=$undef
|
---|
249 |
|
---|
250 |
|
---|
251 | ###############################################################
|
---|
252 | #END of hint file
|
---|