home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / hints / sco.sh < prev    next >
Text File  |  2000-03-04  |  8KB  |  244 lines

  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 PERL_SCO5"
  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='-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. # We disable ODBM_File if OSR5 because it's mostly broken
  205. # but keep it for ODT3 as it seems to work.
  206. if test "$scorls" = "5"; then
  207.     i_dbm='undef'
  208. fi
  209.  
  210. ###############################################################
  211. # We don't want Xenix cross-development libraries
  212. glibpth=`echo $glibpth | sed -e 's! /usr/lib/386 ! !' -e 's! /lib/386 ! !'`
  213. xlibpth=''
  214.  
  215. ###############################################################
  216. # I have received one report that nm extraction doesn't work if you're
  217. # using the scocc compiler.  This system had the following 'myconfig'
  218. # uname='xxx xxx 3.2 2 i386 '
  219. # cc='scocc', optimize='-O'
  220. # You can override this with Configure -Dusenm.
  221. case "$usenm" in
  222. '') usenm='false' ;;
  223. esac
  224.  
  225. ###############################################################
  226. # If you want to use nm, you'll probably have to use nm -p.  The
  227. # following does that for you:
  228. nm_opt='-p'
  229.  
  230. ###############################################################
  231. # I have received one report that you can't include utime.h in
  232. # pp_sys.c.  Uncomment the following line if that happens to you:
  233. # i_utime=undef
  234.  
  235. ###############################################################
  236. # Perl 5.003_05 and later try to include both <time.h> and <sys/select.h>
  237. # in pp_sys.c, but that fails due to a redefinition of struct timeval.
  238. # This will generate a WHOA THERE.  Accept the default.
  239. i_sysselct=$undef
  240.  
  241.  
  242. ###############################################################
  243. #END of hint file
  244.