| 1 |
# svr5 hints, System V Release 5.x (UnixWare 7, OpenUNIX 8) |
| 2 |
# mods after mail fm Andy Dougherty |
| 3 |
# Reworked by hops@sco.com Sept/Oct 1999 for UW7.1 platform support |
| 4 |
# Boyd Gerber, gerberb@zenez.com 1999/09/21 for threads support. |
| 5 |
# Originally taken from svr4 hints.sh 21-Sep-98 hops@sco.com |
| 6 |
# which was version of 1996/10/25 by Tye McQueen, tye@metronet.com |
| 7 |
|
| 8 |
# Use Configure -Dusethreads to enable threads. |
| 9 |
# Use Configure -Dcc=gcc to use gcc. |
| 10 |
case "$cc" in |
| 11 |
*gcc*) |
| 12 |
# "$gccversion" not set yet |
| 13 |
if [ "X$gccversion" = "X" ]; then |
| 14 |
# Done too late in Configure if hinted |
| 15 |
gccversion=`$cc --version | sed 's/.*(GCC) *//'` |
| 16 |
fi |
| 17 |
case $gccversion in |
| 18 |
*2.95*) |
| 19 |
ccflags='-fno-strict-aliasing' |
| 20 |
# More optimisation provided in gcc-2.95 causes miniperl to segv. |
| 21 |
# -fno-strict-aliasing is supposed to correct this but |
| 22 |
# if it doesn't and you get segv when the build runs miniperl then |
| 23 |
# disable optimisation as below |
| 24 |
# optimize=' ' |
| 25 |
;; |
| 26 |
esac |
| 27 |
;; |
| 28 |
esac |
| 29 |
|
| 30 |
# Hardwire the processor to 586 for consistancy with autoconf |
| 31 |
# archname='i586-svr5' |
| 32 |
# -- seems this is generally disliked by perl porters so leave it to float |
| 33 |
|
| 34 |
# Our default setup excludes anything from /usr/ucblib (and consequently dbm) |
| 35 |
# as later modules assume symbols found are available in shared libs |
| 36 |
# On svr5 these are static archives which causes problems for |
| 37 |
# dynamic modules loaded later (and ucblib is a bad dream anyway) |
| 38 |
# |
| 39 |
# However there is a dbm library built from the ucb sources outside ucblib |
| 40 |
# at http://www.sco.com/skunkware (installing into /usr/local) so if we |
| 41 |
# detect this we'll use it. You can change the default |
| 42 |
# (to allow ucblib and its dbm or disallowing non ucb dbm) by |
| 43 |
# changing 'want_*' config values below to '' to disable or otherwise to enable |
| 44 |
|
| 45 |
# Leave leading tabs so Configure doesn't propagate variables to config.sh |
| 46 |
|
| 47 |
want_ucb='' # don't use anything from /usr/ucblib - icky |
| 48 |
want_dbm='yes' # use dbm if can find library in /usr/local/lib |
| 49 |
want_gdbm='yes' # use gdbm if can find library in /usr/local/lib |
| 50 |
want_udk70='' # link with old static libc pieces |
| 51 |
# link with udk70 if building on 7.1 abd want resulting binary |
| 52 |
# to run on uw7.0* - it will link in referenced static symbols |
| 53 |
# of libc that are (now) in the shared libc.so on 7.1 but were |
| 54 |
# not there in 7.0. |
| 55 |
# There are still scenarios where this is still insufficient so |
| 56 |
# overall it is preferable to get ptf7051e |
| 57 |
# ftp://ftp.sco.com/SLS/ptf7051e.Z |
| 58 |
# installed on any/all 7.0 systems and leave the above unset. |
| 59 |
|
| 60 |
if [ "$want_ucb" ] ; then |
| 61 |
ldflags= '-L/usr/ucblib' |
| 62 |
ccflags='-I/usr/ucbinclude' |
| 63 |
# /usr/ccs/include and /usr/ccs/lib are used implicitly by cc as reqd |
| 64 |
else |
| 65 |
libswanted=`echo " $libswanted " | sed -e 's/ ucb / /'` |
| 66 |
glibpth=`echo " $glibpth " | sed -e 's/ \/usr\/ucblib / /'` |
| 67 |
|
| 68 |
# If see libdbm in /usr/local and not overidden assume its the |
| 69 |
# non ucblib rebuild from skunkware and use it |
| 70 |
if [ ! -f /usr/local/lib/libdbm.so -o ! "$want_dbm" ] ; then |
| 71 |
i_dbm='undef' |
| 72 |
libswanted=`echo " $libswanted " | sed -e 's/ dbm / /'` |
| 73 |
fi |
| 74 |
fi |
| 75 |
|
| 76 |
if [ ! "$want_gdbm" ] ; then |
| 77 |
i_gdbm='undef' |
| 78 |
libswanted=`echo " $libswanted " | sed -e 's/ gdbm / /'` |
| 79 |
fi |
| 80 |
|
| 81 |
|
| 82 |
# Don't use problematic libraries: |
| 83 |
# libmalloc.a - Probably using Perl's malloc() anyway. |
| 84 |
# libc: on UW7 don't want -lc explicitly as native cc gives warnings/errors |
| 85 |
libswanted=`echo " $libswanted " | sed -e 's/ malloc / /' -e 's/ c / /'` |
| 86 |
|
| 87 |
# remove /shlib and /lib from library search path as both symlink to /usr/lib |
| 88 |
# where runtime shared libc is |
| 89 |
glibpth=`echo " $glibpth " | sed -e 's/ \/shlib / /' -e 's/ \/lib / /'` |
| 90 |
|
| 91 |
# Don't use BSD emulation pieces (/usr/ucblib) regardless |
| 92 |
# these would probably be autonondetected anyway but ... |
| 93 |
gconvert_preference='gcvt sprintf' # Try gcvt() before gconvert(). |
| 94 |
d_bcopy='undef' d_bcmp='undef' d_bzero='undef' d_safebcpy='undef' |
| 95 |
d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef' |
| 96 |
d_setlinebuf='undef' |
| 97 |
d_setregid='undef' d_setreuid='undef' # -- in /usr/lib/libc.so.1 |
| 98 |
|
| 99 |
# Broken C-Shell tests (Thanks to Tye McQueen): |
| 100 |
# The OS-specific checks may be obsoleted by the this generic test. |
| 101 |
sh_cnt=`sh -c 'echo /*' | wc -c` |
| 102 |
csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c` |
| 103 |
csh_cnt=`expr 1 + $csh_cnt` |
| 104 |
if [ "$sh_cnt" -ne "$csh_cnt" ]; then |
| 105 |
echo "Your csh has a broken 'glob', disabling..." >&2 |
| 106 |
d_csh='undef' |
| 107 |
fi |
| 108 |
|
| 109 |
# Unixware-specific problems. UW7 give correctname with uname -s |
| 110 |
# UnixWare has a broken csh. (This might already be detected above). |
| 111 |
# Configure can't detect memcpy or memset on Unixware 2 or 7 |
| 112 |
# |
| 113 |
# Leave leading tabs on the next two lines so Configure doesn't |
| 114 |
# propagate these variables to config.sh |
| 115 |
uw_ver=`uname -v` |
| 116 |
uw_isuw=`uname -s 2>&1` |
| 117 |
|
| 118 |
if [ "$uw_isuw" = "UnixWare" -o "$uw_isuw" = "OpenUNIX" ]; then |
| 119 |
case $uw_ver in |
| 120 |
8.*|7.1*) |
| 121 |
d_csh='undef' |
| 122 |
d_memcpy='define' |
| 123 |
d_memset='define' |
| 124 |
stdio_cnt='((fp)->__cnt)' |
| 125 |
d_stdio_cnt_lval='define' |
| 126 |
stdio_ptr='((fp)->__ptr)' |
| 127 |
d_stdio_ptr_lval='define' |
| 128 |
|
| 129 |
d_bcopy='define' # In /usr/lib/libc.so.1 |
| 130 |
d_setregid='define' # " |
| 131 |
d_setreuid='define' # " |
| 132 |
|
| 133 |
if [ -f /usr/ccs/lib/libcudk70.a -a "$want_udk70" ] ; then |
| 134 |
libswanted=" $libswanted cudk70" |
| 135 |
fi |
| 136 |
;; |
| 137 |
7*) |
| 138 |
d_csh='undef' |
| 139 |
d_memcpy='define' |
| 140 |
d_memset='define' |
| 141 |
stdio_cnt='((fp)->__cnt)' |
| 142 |
d_stdio_cnt_lval='define' |
| 143 |
stdio_ptr='((fp)->__ptr)' |
| 144 |
d_stdio_ptr_lval='define' |
| 145 |
;; |
| 146 |
esac |
| 147 |
fi |
| 148 |
# End of Unixware-specific tests. |
| 149 |
|
| 150 |
############################################################### |
| 151 |
# Dynamic loading section: Is default so it should just happen. |
| 152 |
# set below to explicitly force. |
| 153 |
# usedl='define' |
| 154 |
# dlext='so' |
| 155 |
# dlsrc='dl_dlopen.xs' |
| 156 |
# |
| 157 |
# ccdlflags : must tell the linker to export all global symbols |
| 158 |
# cccdlflags: must tell the compiler to generate relocatable code |
| 159 |
# lddlflags : must tell the linker to output a shared library |
| 160 |
|
| 161 |
# use shared perl lib if the user doesn't choose otherwise |
| 162 |
if test "$uw_isuw" != "OpenUNIX"; then |
| 163 |
if test "x$useshrplib" = "x"; then |
| 164 |
useshrplib='true' |
| 165 |
fi |
| 166 |
fi |
| 167 |
|
| 168 |
case "$cc" in |
| 169 |
*gcc*) |
| 170 |
ccdlflags='-Xlinker -Bexport ' |
| 171 |
cccdlflags='-fpic' |
| 172 |
lddlflags='-G ' |
| 173 |
;; |
| 174 |
|
| 175 |
*) |
| 176 |
ccdlflags='-Wl,-Bexport' |
| 177 |
cccdlflags='-Kpic' |
| 178 |
lddlflags='-G -Wl,-Bexport' |
| 179 |
;; |
| 180 |
esac |
| 181 |
|
| 182 |
############################################################################ |
| 183 |
# Thread support |
| 184 |
# use Configure -Dusethreads to enable |
| 185 |
# This script UU/usethreads.cbu will get 'called-back' by Configure |
| 186 |
# after it has prompted the user for whether to use threads. |
| 187 |
cat > UU/usethreads.cbu <<'EOCBU' |
| 188 |
case "$usethreads" in |
| 189 |
$define|true|[yY]*) |
| 190 |
ccflags="$ccflags" |
| 191 |
shift |
| 192 |
libswanted="$libswanted $*" |
| 193 |
case "$cc" in |
| 194 |
*gcc*) |
| 195 |
ccflags="-D_REENTRANT $ccflags -fpic -pthread" |
| 196 |
cccdlflags='-fpic' |
| 197 |
lddlflags='-pthread -G ' |
| 198 |
;; |
| 199 |
*) |
| 200 |
ccflags="-D_REENTRANT $ccflags -KPIC -Kthread" |
| 201 |
ccdlflags='-Kthread -Wl,-Bexport' |
| 202 |
cccdlflags='-KPIC -Kthread' |
| 203 |
lddlflags='-G -Kthread -Wl,-Bexport ' |
| 204 |
ldflags='-Kthread' |
| 205 |
;; |
| 206 |
esac |
| 207 |
esac |
| 208 |
EOCBU |
| 209 |
|
| 210 |
|
| 211 |
d_suidsafe='define' # "./Configure -d" can't figure this out easily |
| 212 |
|
| 213 |
################## final caveat msgs to builder ############### |
| 214 |
cat <<'EOM' >&4 |
| 215 |
|
| 216 |
If you wish to use dynamic linking, you must use |
| 217 |
LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH |
| 218 |
or |
| 219 |
setenv LD_LIBRARY_PATH `pwd` |
| 220 |
before running make. |
| 221 |
|
| 222 |
If you are using shared libraries from /usr/local/lib |
| 223 |
for libdbm or libgdbm you may need to set |
| 224 |
LD_RUN_PATH=/usr/local/lib; export LD_RUN_PATH |
| 225 |
in order for Configure to compile the simple test program |
| 226 |
|
| 227 |
EOM |