-# sco_3.sh
-# Courtesy of Joel Rosi-Schwartz <joel@ftechne.co.uk>
+# sco.sh
+# Courtesy of Joel Rosi-Schwartz <j.schwartz@agonet.it>
+
# Additional SCO version info from
# Peter Wolfe <wolfe@teloseng.com>
-# Last revised
-# Tue Feb 13 09:09:10 EST 1996
+# Last revised
+# Fri Jul 19 14:54:25 EDT 1996
+# and again Tue Sep 29 16:37:25 EDT 1998
+# by Andy Dougherty <doughera@lafayette.edu>
-# To use gcc, use sh Configure -Dcc=gcc
+# To use gcc, use sh Configure -Dcc=gcc
+# To use icc, use sh Configure -Dcc=icc
-# figure out what SCO version we are:
-case `uname -X | egrep '^Release'` in
-*3.2v4.2) scorls=3 ;;
+# figure out what SCO version we are. The output of uname -X is
+# something like:
+# System = SCO_SV
+# Node = xxxxx
+# Release = 3.2v5.0.0
+# KernelID = 95/08/08
+# Machine = Pentium
+# BusType = ISA
+# Serial = xxxxx
+# Users = 5-user
+# OEM# = 0
+# Origin# = 1
+# NumCPU = 1
+
+# Use /bin/uname (because GNU uname may be first in $PATH and
+# it does not support -X) to figure out what SCO version we are:
+case `/bin/uname -X | egrep '^Release'` in
+*3.2v4.*) scorls=3 ;; # I don't know why this is 3 instead of 4.
*3.2v5.*) scorls=5 ;;
-*) scorls=3 ;; # this probabaly shouldn't happen
+*) scorls=5 ;; # Hope the future will be compatible.
esac
# Try to use libintl.a since it has strcoll and strxfrm
libswanted="intl $libswanted"
# Try to use libdbm.nfs.a since it has dbmclose.
-#
+#
if test -f /usr/lib/libdbm.nfs.a ; then
libswanted=`echo "dbm.nfs $libswanted " | sed -e 's/ dbm / /'`
+ set X $libswanted
+ shift
+ libswanted="$*"
fi
-set X $libswanted
-shift
-libswanted="$*"
# We don't want Xenix cross-development libraries
glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
xlibpth=''
+# Common fix for all compilers.
+ccflags="$ccflags -U M_XENIX"
+
+# Set flags for optimization and warning levels.
case "$cc" in
-gcc)
- ccflags="$ccflags -U M_XENIX"
- optimize="$optimize -O2"
+*gcc*) case "$optimize" in
+ '') optimize='-O2' ;;
+ esac
;;
-scocc) ;;
-
-*) # Apparently, SCO's cc gives rather verbose warnings
- # Set -w0 to turn them off.
+scocc) ;; # Anybody know anything about this?
+*) # icc or cc -- only relevant difference is safe level of
+ # optimization. Apparently.
case $scorls in
- 3) ccflags="$ccflags -W0 -quiet -U M_XENIX" ;;
- 5) ccflags="$ccflags -w0 -U M_XENIX" ;;
+ 3) ccflags="$ccflags -W0 -quiet" ;;
+ *) ccflags="$ccflags -w0" ;;
+ esac
+ case "$optimize" in
+ '') case "$cc" in
+ icc) optimize="-O1" ;;
+ *) optimize="-O0" ;;
+ esac
+ ;;
esac
;;
esac
-i_varargs=undef
+
+# DYNAMIC LOADING: Dynamic loading won't work with scorls=3.
+# It ought to work with Release = 3.2v5.0.0 or later.
+if test "$scorls" = "3" -a "X$usedl" = "X"; then
+ usedl=$undef
+else
+ # I do not know exactly which of these are essential,
+ # but this set has been recommended. --AD
+ # These ought to be patched back into metaconfig, but the
+ # current metaconfig units don't touch ccflags.
+ # Unfortunately, the default on SCO is to produce COFF output, but
+ # ELF is needed for dynamic loading, and the cc man page recommends
+ # "Always specify option -b elf if ELF and COFF files might be mixed."
+ # Therefore, we'll compile everything with -b elf.
+ case "$cc" in
+ *gcc*) ;;
+ *) ccflags="$ccflags -b elf" ;;
+ esac
+ cccdlflags=none
+ ccdlflags='-W l,-Bexport'
+ lddlflags="$lddlflags -b elf -G"
+ ldflags="$ldflags -b elf -W l,-Bexport"
+fi
# I have received one report that nm extraction doesn't work if you're
# using the scocc compiler. This system had the following 'myconfig'
# uname='xxx xxx 3.2 2 i386 '
# cc='scocc', optimize='-O'
-usenm='false'
+# You can override this with Configure -Dusenm.
+case "$usenm" in
+'') usenm='false' ;;
+esac
# If you want to use nm, you'll probably have to use nm -p. The
# following does that for you:
# pp_sys.c. Uncomment the following line if that happens to you:
# i_utime=undef
-# Apparently, some versions of SCO include both .so and .a libraries,
-# but they don't mix as they do on other ELF systems. The upshot is
-# that Configure finds -ldl (libdl.so) but 'ld' complains it can't
-# find libdl.a.
-# I don't know which systems have this feature, so I'll just remove
-# -dl from libswanted for all SCO systems until someone can figure
-# out how to get dynamic loading working on SCO.
-#
-# The output of uname -X on one such system was
-# System = SCO_SV
-# Node = xxxxx
-# Release = 3.2v5.0.0
-# KernelID = 95/08/08
-# Machine = Pentium
-# BusType = ISA
-# Serial = xxxxx
-# Users = 5-user
-# OEM# = 0
-# Origin# = 1
-# NumCPU = 1
-#
-# The 5.0.0 on the Release= line is probably the thing to watch.
-# Andy Dougherty <doughera@lafcol.lafayette.edu>
-# Thu Feb 1 15:06:56 EST 1996
-libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
-set X $libswanted
-shift
-libswanted="$*"
+# Perl 5.003_05 and later try to include both <time.h> and <sys/select.h>
+# in pp_sys.c, but that fails due to a redefinition of struct timeval.
+# This will generate a WHOA THERE. Accept the default.
+i_sysselct=$undef