home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / hints / qnx.sh < prev    next >
Text File  |  1999-07-20  |  7KB  |  179 lines

  1. #----------------------------------------------------------------
  2. # QNX hints
  3. #
  4. # As of perl5.004_04, all tests pass under:
  5. #  QNX 4.23A
  6. #  Watcom 10.6 with Beta/970211.wcc.update.tar.F
  7. #  socket3r.lib Nov21 1996.
  8. #
  9. # As with many unix ports, this one depends on a few "standard"
  10. # unix utilities which are not necessarily standard for QNX.
  11. #
  12. # /bin/sh  This is used heavily by Configure and then by
  13. #          perl itself. QNX's version is fine, but Configure
  14. #          will choke on the 16-bit version, so if you are
  15. #          running QNX 4.22, link /bin/sh to /bin32/ksh
  16. # ar       This is the standard unix library builder.
  17. #          We use wlib. With Watcom 10.6, when wlib is
  18. #          linked as "ar", it behaves like ar and all is
  19. #          fine. Under 9.5, a cover is required. One is
  20. #          included in ../qnx
  21. # nm       This is used (optionally) by configure to list
  22. #          the contents of libraries. I will generate
  23. #          a cover function on the fly in the UU directory.
  24. # cpp      Configure and perl need a way to invoke a C
  25. #          preprocessor. I have created a simple cover
  26. #          for cc which does the right thing. Without this,
  27. #          Configure will create it's own wrapper which works,
  28. #          but it doesn't handle some of the command line arguments
  29. #          that perl will throw at it.
  30. # make     You really need GNU make to compile this. GNU make
  31. #          ships by default with QNX 4.23, but you can get it
  32. #          from quics for earlier versions.
  33. #----------------------------------------------------------------
  34. # Outstanding Issues:
  35. #   lib/posix.t test fails on test 17 because acos(1) != 0.
  36. #      Resolved in 970211 Beta
  37. #   lib/io_udp.t test hangs because of a bug in getsockname().
  38. #      Fixed in latest BETA socket3r.lib
  39. #   There is currently no support for dynamically linked
  40. #      libraries.
  41. #----------------------------------------------------------------
  42. # These hints were submitted by:
  43. #   Norton T. Allen
  44. #   Harvard University Atmospheric Research Project
  45. #   allen@huarp.harvard.edu
  46. #
  47. # If you have suggestions or changes, please let me know.
  48. #----------------------------------------------------------------
  49.  
  50. echo ""
  51. echo "Some tests may fail. Please read the hints/qnx.sh file."
  52. echo ""
  53.  
  54. #----------------------------------------------------------------
  55. # At present, all QNX systems are equivalent architectures,
  56. # so it is reasonable to call archname=x86-qnx rather than
  57. # making an unnecessary distinction between AT-qnx and PCI-qnx,
  58. # for example.
  59. #----------------------------------------------------------------
  60. archname='x86-qnx'
  61.  
  62. #----------------------------------------------------------------
  63. # QNX doesn't come with a csh and the ports of tcsh I've used
  64. # don't work reliably:
  65. #----------------------------------------------------------------
  66. csh=''
  67. d_csh='undef'
  68. full_csh=''
  69.  
  70. #----------------------------------------------------------------
  71. # setuid scripts are secure under QNX.
  72. #  (Basically, the same race conditions apply, but assuming
  73. #  the scripts are located in a secure directory, the methods
  74. #  for exploiting the race condition are defeated because
  75. #  the loader expands the script name fully before executing
  76. #  the interpreter.)
  77. #----------------------------------------------------------------
  78. d_suidsafe='define'
  79.  
  80. #----------------------------------------------------------------
  81. # difftime is implemented as a preprocessor macro, so it doesn't show
  82. # up in the libraries:
  83. #----------------------------------------------------------------
  84. d_difftime='define'
  85.  
  86. #----------------------------------------------------------------
  87. # strtod is in the math library, but we can't tell Configure
  88. # about the math library or it will confuse the linker
  89. #----------------------------------------------------------------
  90. d_strtod='define'
  91.  
  92. lib_ext='3r.lib'
  93. libc='/usr/lib/clib3r.lib'
  94.  
  95. #----------------------------------------------------------------
  96. # ccflags:
  97. # I like to turn the warnings up high, but a few common
  98. # constructs make a lot of noise, so I turn those warnings off.
  99. # A few still remain...
  100. #
  101. # unix.h is required as a general rule for unixy applications.
  102. #----------------------------------------------------------------
  103. ccflags='-mf -w4 -Wc,-wcd=202 -Wc,-wcd=203 -Wc,-wcd=302 -Wc,-fi=unix.h'
  104.  
  105. #----------------------------------------------------------------
  106. # ldflags:
  107. # If you want debugging information, you must specify -g on the
  108. # link as well as the compile. If optimize != -g, you should
  109. # remove this.
  110. #----------------------------------------------------------------
  111. ldflags="-g -N1M"
  112.  
  113. so='none'
  114. selecttype='fd_set *'
  115.  
  116. #----------------------------------------------------------------
  117. # Add -lunix to list of libs. This is needed mainly so the nm
  118. # search will find funcs in the unix lib. Including unix.h should
  119. # automatically include the library without -l.
  120. #----------------------------------------------------------------
  121. libswanted="$libswanted unix"
  122.  
  123. if [ -z "`which ar 2>/dev/null`" ]; then
  124.   cat <<-'EOF' >&4
  125.     I don't see an 'ar', so I'm guessing you are running
  126.     Watcom 9.5 or earlier. You may want to install the ar
  127.     cover found in the qnx subdirectory of this distribution.
  128.     It might reasonably be placed in /usr/local/bin.
  129.  
  130.     EOF
  131. fi
  132. #----------------------------------------------------------------
  133. # Here is a nm script which fixes up wlib's output to look
  134. # something like nm's, at least enough so that Configure can
  135. # use it.
  136. #----------------------------------------------------------------
  137. if [ -z "`which nm 2>/dev/null`" ]; then
  138.   cat <<-EOF
  139.     Creating a quick-and-dirty nm cover for    Configure to use:
  140.  
  141.     EOF
  142.   cat >./UU/nm <<-'EOF'
  143.     #! /bin/sh
  144.     #__USAGE
  145.     #%C    <lib> [<lib> ...]
  146.     #    Designed to mimic Unix's nm utility to list
  147.     #    defined symbols in a library
  148.     unset WLIB
  149.     for i in $*; do wlib $i; done |
  150.       awk '
  151.         /^  / {
  152.           for (i = 1; i <= NF; i++) {
  153.             sub("_$", "", $i)
  154.             print "000000  T " $i
  155.           }
  156.         }'
  157.     EOF
  158.   chmod +x ./UU/nm
  159. fi
  160.  
  161. cppstdin=`which cpp 2>/dev/null`
  162. if [ -n "$cppstdin" ]; then
  163.   cat <<-EOF >&4
  164.     I found a cpp at $cppstdin and will assume it is a good
  165.     thing to use. If this proves to be false, there is a
  166.     thin cover for cpp in the qnx subdirectory of this
  167.     distribution which you could move into your path.
  168.     EOF
  169.   cpprun="$cppstdin"
  170. else
  171.   cat <<-EOF >&4
  172.     
  173.     There is a cpp cover in the qnx subdirectory of this
  174.     distribution which works a little better than the
  175.     Configure default. You may wish to copy it to
  176.     /usr/local/bin or some other suitable location.
  177.     EOF
  178. fi    
  179.