1999-05-02 14:33:17 +00:00
|
|
|
|
# sco.sh
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# Courtesy of Joel Rosi-Schwartz <j.schwartz@agonet.it>
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# Additional SCO version info from
|
|
|
|
|
# Peter Wolfe <wolfe@teloseng.com>
|
|
|
|
|
# Fri Jul 19 14:54:25 EDT 1996
|
1999-05-02 14:33:17 +00:00
|
|
|
|
# and again Tue Sep 29 16:37:25 EDT 1998
|
|
|
|
|
# by Andy Dougherty <doughera@lafayette.edu>
|
|
|
|
|
# Mostly rewritten on
|
|
|
|
|
# Tue Jan 19 23:00:00 CET 1999
|
|
|
|
|
# by Francois Desarmenien <desar@club-internet.fr>
|
2000-06-25 11:04:01 +00:00
|
|
|
|
# Modified by Boyd Gerber <gerberb@zenez.com>
|
|
|
|
|
# Tue Sep 21 1999
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
|
|
|
|
#
|
|
|
|
|
# To use cc, use sh Configure
|
|
|
|
|
# To use gcc, use sh Configure -Dcc=gcc
|
|
|
|
|
#
|
|
|
|
|
# Default on 3.2v4 is to use static link (dynamic loading unsupported).
|
|
|
|
|
# Default on 3.2v5 is to use dynamic loading.
|
|
|
|
|
# To use static linkink instead, use to sh Configure -Dusedl=n
|
|
|
|
|
#
|
|
|
|
|
# Warning: - to use dynamic loading with gcc, you need gcc 2.8.0 or later
|
|
|
|
|
# ******** - to compile with older releases of gcc, use Configure -Dusedl=n
|
|
|
|
|
# or it wont compile properly
|
|
|
|
|
#
|
|
|
|
|
###############################################################
|
|
|
|
|
# NOTES:
|
|
|
|
|
# -----
|
|
|
|
|
#
|
|
|
|
|
# I Have removed inclusion of ODBM_File for OSR5
|
|
|
|
|
# because it core dumps and make tests fails.
|
|
|
|
|
#
|
|
|
|
|
# Support for icc compiler has been removed, because it 'breaks'
|
|
|
|
|
# a lot of code :-(
|
|
|
|
|
#
|
|
|
|
|
# It's *always* a good idea to first make a static link to be sure to
|
|
|
|
|
# have all symbols resolved with the current choice of libraries, since
|
|
|
|
|
# with dynamic linking, unresolved symbols are allowed an will be detected
|
|
|
|
|
# only at runtime (when you try to load the module or worse, when you call
|
|
|
|
|
# the symbol)
|
|
|
|
|
#
|
|
|
|
|
# The best choice of compiler on OSR 5 (3.2v5.*) seems to be gcc >= 2.8.0:
|
|
|
|
|
# -You cannot optimize with genuine sco cc (miniperl core dumps),
|
|
|
|
|
# so Perl is faster if compiled with gcc.
|
|
|
|
|
# -Even optimized for speed, gcc generated code is smaller (!!!)
|
|
|
|
|
# -gcc is free
|
|
|
|
|
# -I use ld to link which is distributed with the core OS distribution, so you
|
|
|
|
|
# don't need to buy the developement kit, just find someone kind enough to
|
|
|
|
|
# give you a binary release of gcc.
|
|
|
|
|
#
|
|
|
|
|
#
|
1998-09-09 07:00:04 +00:00
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# 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
|
1999-05-02 14:33:17 +00:00
|
|
|
|
# Machine = Pentium
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# BusType = ISA
|
|
|
|
|
# Serial = xxxxx
|
|
|
|
|
# Users = 5-user
|
|
|
|
|
# OEM# = 0
|
|
|
|
|
# Origin# = 1
|
1999-05-02 14:33:17 +00:00
|
|
|
|
# NumCPU = 1
|
|
|
|
|
|
|
|
|
|
# Use /bin/uname (because GNU uname may be first in $PATH and
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# it does not support -X) to figure out what SCO version we are:
|
1999-05-02 14:33:17 +00:00
|
|
|
|
# Matching '^Release' is broken by locale setting:
|
|
|
|
|
# matching '3.2v' should be enough -- FD
|
|
|
|
|
case `/bin/uname -X | egrep '3\.2v'` in
|
|
|
|
|
*3.2v4.*) scorls=3 ;; # OSR 3
|
|
|
|
|
*3.2v5.*) scorls=5 ;; # OSR 5
|
|
|
|
|
*)
|
|
|
|
|
# Future of SCO OSR is SCO UnixWare: there should not be new OSR releases
|
|
|
|
|
echo "************************************************************" >&4
|
|
|
|
|
echo "" >&4
|
|
|
|
|
echo " sco.sh hints file only supports:" >&4
|
|
|
|
|
echo "" >&4
|
|
|
|
|
echo " - SCO Unix 3.2v4.x (OSR 3)" >&4
|
|
|
|
|
echo " - SCO Unix 3.2v5.x (OSR 5)" >&4
|
|
|
|
|
echo "" >&4
|
|
|
|
|
echo "" >&4
|
|
|
|
|
echo " For UnixWare, use svr4.sh hints instead" >&4
|
2000-06-25 11:04:01 +00:00
|
|
|
|
echo " For UnixWare 7.*, use svr5.sh hints instead" >&4
|
1999-05-02 14:33:17 +00:00
|
|
|
|
echo "" >&4
|
|
|
|
|
echo "***********************************************************" >&4
|
|
|
|
|
exit
|
|
|
|
|
;;
|
1998-09-09 07:00:04 +00:00
|
|
|
|
esac
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
|
|
|
|
# Common fixes for all compilers an releases:
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# What is true for SCO5 is true for SCO3 too today, so let's have a single
|
|
|
|
|
# symbol for both
|
|
|
|
|
ccflags="-U M_XENIX -D PERL_SCO"
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# Compilers options section:
|
|
|
|
|
if test "$scorls" = "3"
|
|
|
|
|
then
|
|
|
|
|
dlext=''
|
|
|
|
|
case "$cc" in
|
2000-06-25 11:04:01 +00:00
|
|
|
|
*gcc*) optimize='-O2' ;;
|
1999-05-02 14:33:17 +00:00
|
|
|
|
*) ccflags="$ccflags -W0 -quiet"
|
|
|
|
|
optimize='-O' ;;
|
|
|
|
|
esac
|
|
|
|
|
else
|
|
|
|
|
###############################################################
|
|
|
|
|
# Need this in release 5 because of changed fpu exeption rules
|
|
|
|
|
ccflags="$ccflags -D PERL_SCO5"
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# In Release 5, always compile ELF objects
|
|
|
|
|
case "$cc" in
|
2000-06-25 11:04:01 +00:00
|
|
|
|
*gcc*)
|
1999-05-02 14:33:17 +00:00
|
|
|
|
ccflags="$ccflags -melf"
|
|
|
|
|
optimize='-O2'
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
ccflags="$ccflags -w0 -belf"
|
|
|
|
|
optimize='-O0'
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
###############################################################
|
|
|
|
|
# Dynamic loading section:
|
|
|
|
|
#
|
|
|
|
|
# We use ld to build shared libraries as it is always available
|
|
|
|
|
# and seems to work better than GNU's one on SCO
|
|
|
|
|
#
|
|
|
|
|
# ccdlflags : must tell the linker to export all global symbols
|
|
|
|
|
# cccdlflags: must tell the compiler to generate relocatable code
|
|
|
|
|
# lddlflags : must tell the linker to output a shared library
|
|
|
|
|
#
|
|
|
|
|
# /usr/local/lib is added for convenience, since 'foreign' libraries
|
|
|
|
|
# are usually put there in sco
|
|
|
|
|
#
|
|
|
|
|
if test "$usedl" != "n"; then
|
|
|
|
|
ld='ld'
|
|
|
|
|
case "$cc" in
|
2000-06-25 11:04:01 +00:00
|
|
|
|
*gcc*)
|
1999-05-02 14:33:17 +00:00
|
|
|
|
ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
|
|
|
|
|
cccdlflags='-fpic'
|
|
|
|
|
lddlflags='-G -L/usr/local/lib'
|
|
|
|
|
;;
|
|
|
|
|
*)
|
|
|
|
|
ccdlflags='-Bexport -L/usr/local/lib'
|
|
|
|
|
cccdlflags='-Kpic'
|
|
|
|
|
lddlflags='-G -L/usr/local/lib'
|
|
|
|
|
;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# Use dynamic loading
|
|
|
|
|
usedl='define'
|
|
|
|
|
dlext='so'
|
|
|
|
|
dlsrc='dl_dlopen.xs'
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# Force to define those symbols, as they are #defines and not
|
|
|
|
|
# catched by Configure, and they are useful
|
|
|
|
|
d_dlopen='define'
|
|
|
|
|
d_dlerror='define'
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# Various hints, common to all releases, to have it work better:
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
# We need to remove libdl, as libdl.so exists, but ld complains
|
|
|
|
|
# it can't find libdl.a ! Bug or feature ? :-)
|
|
|
|
|
libswanted=`echo " $libswanted " | sed -e 's/ dl / /'`
|
|
|
|
|
set X $libswanted
|
|
|
|
|
shift
|
|
|
|
|
libswanted="$*"
|
|
|
|
|
|
2000-06-25 11:04:01 +00:00
|
|
|
|
###############################################################
|
|
|
|
|
# Remove libbind because it conflicts with libsocket.
|
|
|
|
|
libswanted=`echo " $libswanted " | sed -e 's/ bind / /'`
|
|
|
|
|
set X $libswanted
|
|
|
|
|
shift
|
|
|
|
|
libswanted="$*"
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# Try to use libintl.a since it has strcoll and strxfrm
|
|
|
|
|
libswanted="intl $libswanted"
|
1999-05-02 14:33:17 +00:00
|
|
|
|
|
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# 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 / /'`
|
1999-05-02 14:33:17 +00:00
|
|
|
|
set X $libswanted
|
|
|
|
|
shift
|
|
|
|
|
libswanted="$*"
|
1998-09-09 07:00:04 +00:00
|
|
|
|
fi
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
|
|
|
|
# We disable ODBM_File if OSR5 because it's mostly broken
|
|
|
|
|
# but keep it for ODT3 as it seems to work.
|
|
|
|
|
if test "$scorls" = "5"; then
|
|
|
|
|
i_dbm='undef'
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# We don't want Xenix cross-development libraries
|
|
|
|
|
glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
|
|
|
|
|
xlibpth=''
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# 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'
|
1999-05-02 14:33:17 +00:00
|
|
|
|
# You can override this with Configure -Dusenm.
|
|
|
|
|
case "$usenm" in
|
|
|
|
|
'') usenm='false' ;;
|
|
|
|
|
esac
|
1998-09-09 07:00:04 +00:00
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# If you want to use nm, you'll probably have to use nm -p. The
|
|
|
|
|
# following does that for you:
|
|
|
|
|
nm_opt='-p'
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# I have received one report that you can't include utime.h in
|
|
|
|
|
# pp_sys.c. Uncomment the following line if that happens to you:
|
|
|
|
|
# i_utime=undef
|
|
|
|
|
|
1999-05-02 14:33:17 +00:00
|
|
|
|
###############################################################
|
1998-09-09 07:00:04 +00:00
|
|
|
|
# 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
|
1999-05-02 14:33:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################################################
|
|
|
|
|
#END of hint file
|