# svr5 hints, System V Release 5.x # Last modified 1999/09/21 by Boyd Gerber, gerberb@zenez.com # with changes from Mike Hopkirk hops@sco.com # Use Configure -Dcc=gcc to use gcc. case "$cc" in '') cc='/bin/cc' test -f $cc || cc='/usr/ccs/bin/cc' ;; *gcc*) # "$gccversion" not set yet vers=`gcc -v 2>&1 | sed -n -e 's@.*version \([^ ][^ ]*\) .*@\1@p'` case $vers in *2.95*) ccflags='-fno-strict-aliasing' # If it coredumps when running miniperl with the above switch on # try instead without optimisation. # optimize=' ' ;; *);; esac ;; esac # want_ucb='' # want_dbm='yes' want_gdbm='yes' # We include support for using libraries in /usr/ucblib, but the setting # of libswanted excludes some libraries found there. If you run into # problems, you may have to remove "ucb" from libswanted. Just delete # the comment '#' from the sed command below. # ldflags='-L/usr/ccs/lib -L/usr/ucblib' # ccflags='-I/usr/include -I/usr/ucbinclude' # Don't use problematic libraries: libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'` # libmalloc.a - Probably using Perl's malloc() anyway. # libucb.a - Remove it if you have problems ld'ing. We include it because # it is needed for ODBM_File and NDBM_File extensions. if [ "$want_ucb" ] ; then ldflags= '-L/usr/ccs/lib -L/usr/ucblib' ccflags='-I/usr/include -I/usr/ucbinclude' if [ -r /usr/ucblib/libucb.a ]; then # If using BSD-compat. library: d_Gconvert='gcvt((x),(n),(b))' # Try gcvt() before gconvert(). # Use the "native" counterparts, not the BSD emulation stuff: d_bcmp='undef' d_bcopy='undef' d_bzero='undef' d_safebcpy='undef' d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef' d_setlinebuf='undef' # d_setregid='undef' d_setreuid='undef' # ??? fi else # libswanted=`echo " $libswanted " | sed -e 's/ ucb / /' -e 's/ dbm / /'` libswanted=`echo " $libswanted " | sed -e 's/ ucb / /'` glibpth=`echo " $glibpth " | sed -e 's/ \/usr\/ucblib / /'` # a non ucb native version of libdbm for /usr/local is available from # http://www.sco.com/skunkware # if its installed (and not overidden) we'll use it. if [ ! -f /usr/local/lib/libdbm.so -o ! "$want_dbm" ] ; then libswanted=`echo " $libswanted " | sed -e 's/ dbm / /'` fi fi if [ "$want_gdbm" -a -f /usr/local/lib/libgdbm.so ] ; then i_gdbm='define' else i_gdbm='undef' libswanted=`echo " $libswanted " | sed -e 's/ gdbm / /'` fi # Don't use problematic libraries: # libmalloc.a - Probably using Perl's malloc() anyway. # libc: on UW7 don't want -lc explicitly - cc gives warnings/errors libswanted=`echo " $libswanted " | sed -e 's/ malloc / /' -e 's/ c / /'` # remove /shlib and /lib from library search path as both symlink to /usr/lib # where runtime shared libc is glibpth=`echo " $glibpth " | sed -e 's/ \/shlib / /' -e 's/ \/lib / /` # UnixWare has /usr/lib/libc.so.1, /usr/lib/libc.so.1.1, and # /usr/ccs/lib/libc.so. Configure chooses libc.so.1.1 while it # appears that /usr/ccs/lib/libc.so contains more symbols: # # Try the following if you want to use nm-extraction. We'll just # skip the nm-extraction phase, since searching for all the different # library versions will be hard to keep up-to-date. # # if [ "" = "$libc" -a -f /usr/ccs/lib/libc.so -a \ # -f /usr/lib/libc.so.1 -a -f /usr/lib/libc.so.1.1 ]; then # if nm -h /usr/ccs/lib/libc.so | egrep '\<_?select$' >/dev/null; then # if nm -h /usr/lib/libc.so.1 | egrep '\<_?select$'` >/dev/null || # nm -h /usr/lib/libc.so.1.1 | egrep '\<_?select$'` >/dev/null; then # : # else # libc=/usr/ccs/lib/libc.so # fi # fi # fi # # Don't bother with nm. Just compile & link a small C program. case "$usenm" in '') usenm=false;; esac # Broken C-Shell tests (Thanks to Tye McQueen): # The OS-specific checks may be obsoleted by the this generic test. sh_cnt=`sh -c 'echo /*' | wc -c` csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c` csh_cnt=`expr 1 + $csh_cnt` if [ "$sh_cnt" -ne "$csh_cnt" ]; then echo "You're csh has a broken 'glob', disabling..." >&2 d_csh='undef' fi # Unixware-specific problems. The undocumented -X argument to uname # is probably a reasonable way of detecting UnixWare. # UnixWare has a broken csh. (This might already be detected above). # Configure can't detect memcpy or memset on Unixware 2 or 7 # # Leave leading tabs on the next two lines so Configure doesn't # propagate these variables to config.sh uw_ver=`uname -v` uw_isuw=`uname -X 2>&1 | grep Release` if [ "$uw_isuw" = "Release = 5" ]; then case $uw_ver in 7*) d_csh='undef' d_memcpy='define' d_memset='define' stdio_cnt='((fp)->__cnt)' d_stdio_cnt_lval='define' stdio_ptr='((fp)->__ptr)' d_stdio_ptr_lval='define' ;; esac fi ############################################################### # Dynamic loading section: # # 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 additional libraries # are usually put there # # use shared perl lib useshrplib='true' case "$cc" in *gcc*) ccdlflags='-Xlinker -Bexport -L/usr/local/lib' cccdlflags='-fpic' lddlflags='-G -L/usr/local/lib' ;; *) ccdlflags='-Wl,-Bexport -L/usr/local/lib' cccdlflags='-KPIC' lddlflags='-G -Wl,-Bexport -L/usr/local/lib' ;; esac ############################################################### # Use dynamic loading usedl='define' dlext='so' dlsrc='dl_dlopen.xs' # Configure may fail to find lstat() since it's a static/inline function # in on Unisys U6000 SVR4, UnixWare 2.x, and possibly other # SVR4 derivatives. (Though UnixWare has it in /usr/ccs/lib/libc.so.) d_lstat=define # DDE SMES Supermax Enterprise Server case "`uname -sm`" in "UNIX_SV SMES") # the *grent functions are in libgen. libswanted="$libswanted gen" # csh is broken (also) in SMES # This may already be detected by the generic test above. d_csh='undef' case "$cc" in *gcc*) ;; *) # for cc we need -K PIC (not -K pic) cccdlflags="$cccdlflags -K PIC" ;; esac ;; esac # This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. cat > UU/usethreads.cbu <<'EOCBU' case "$usethreads" in $define|true|[yY]*) ccflags="$ccflags" set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` shift libswanted="$*" case "$cc" in *gcc*) ccflags="-D_REENTRANT $ccflags -fpic -pthread" cccdlflags='-fpic' lddlflags='-pthread -G -L/usr/local/lib ' ;; *) ccflags="-D_REENTRANT $ccflags -KPIC -Kthread" ccdlflags='-Kthread -Wl,-Bexport -L/usr/local/lib' cccdlflags='-KPIC -Kthread' lddlflags='-G -Kthread -Wl,-Bexport -L/usr/local/lib' ldflags='-Kthread -L/usr/local/lib -L/usr/gnu/lib' ;; esac esac EOCBU # End of Unixware-specific tests. # Configure may fail to find lstat() since it's a static/inline function # in on Unisys U6000 SVR4, UnixWare 2.x, and possibly other # SVR4 derivatives. (Though UnixWare has it in /usr/ccs/lib/libc.so.) d_lstat=define d_suidsafe='define' # "./Configure -d" can't figure this out easilly cat <<'EOM' >&4 If you wish to use dynamic linking, you must use LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`:; export LD_LIBRARY_PATH or setenv LD_LIBRARY_PATH `pwd` before running make. EOM