Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.  
  2.   VMS (OpenVMS):
  3.  
  4.      On VMS, two build methods are provided: a command procedure, and
  5.      description files for MMS or MMK.  Both methods must be run from
  6.      the main directory, not the [.VMS] subdirectory.
  7.  
  8.      A simple build using the command procedure looks like this:
  9.           @ [.VMS]BUILD_UNZIP.COM
  10.  
  11.      A simple build using MMS or MMK looks like this:
  12.           MMS /DESCRIP = [.VMS]DESCRIP.MMS      ! Or, with MMK, ...
  13.           MMK /DESCRIP = [.VMS]DESCRIP.MMS
  14.  
  15.      Various options for each build method are explained in comments in
  16.      the main builder file, either BUILD_UNZIP.COM or DESCRIP.MMS.
  17.  
  18.      Here are some more complex build examples:
  19.  
  20.      o Build with the large-file option enabled (non-VAX only):
  21.  
  22.           @ [.VMS]BUILD_UNZIP LARGE
  23.        or:
  24.           MMS /DESC = [.VMS] /MACRO = LARGE=1
  25.  
  26.      o Re-link the executables (small-file and large-file):
  27.  
  28.           @ [.VMS]BUILD_UNZIP LINK
  29.           @ [.VMS]BUILD_UNZIP LARGE LINK
  30.        or
  31.           MMK /DESC = [.VMS] CLEAN_EXE  ! Deletes existing executables.
  32.           MMK /DESC = [.VMS]            ! Builds new executables.
  33.           MMK /DESC = [.VMS] /MACRO = LARGE=1 CLEAN_EXE
  34.           MMK /DESC = [.VMS] /MACRO = LARGE=1
  35.  
  36.      o Build a large-file product from scratch, for debug, getting
  37.        compiler listings and link maps:
  38.  
  39.           MMS /DESC = [.VMS] CLEAN
  40.           MMS /DESC = [.VMS] /MACRO = (DBG=1, LARGE=1. LIST=1)
  41.  
  42.      On VAX, the builders attempt to cope with the various available C
  43.      compilers, DEC/Compaq/HP C, VAX C, or GNU C.  If DEC/Compaq/HP C is
  44.      not available or not desired, comments in the relevant builder file
  45.      explain the command-line options used to select a different
  46.      compiler.
  47.  
  48.      By default, Zip uses (and UnZip supports) the "deflate" compression
  49.      method.  To add support for the optional "bzip2" compression method,
  50.      first obtain and build the bzip2 software (http://www.bzip.org/ or,
  51.      for a more VMS-friendly kit, http://antinode.info/dec/sw/bzip2.html).
  52.      Then, define the macro IZ_BZIP2 on the BUILD_UNZIP.COM or MMS/MMK
  53.      command line to specify the directory where the bzip2 files may be
  54.      found.  For example:
  55.  
  56.           @ [.VMS]BUILD_UNZIP LARGE -
  57.            IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS]
  58.      or:
  59.           MMS /DESC = [.VMS] /MACRO = (LARGE=1, -
  60.            IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS])
  61.  
  62.      Note that historically, UnZip has been built with the default
  63.      compiler option, /NAMES = UPPERCASE, while bzip2 is normally built
  64.      with /NAMES = AS_IS, to avoid name collisions.  With modern
  65.      compilers, the "#pragma names" directives in [.VMS]BZLIB.H will
  66.      handle these differences without user intervention.  An old
  67.      compiler (for example, DEC C V4.0-000) will emit complaints
  68.      %CC-I-UNKNOWNPRAGMA, and will mishandle the bzip2 library function
  69.      names, which will cause the link to fail.  To solve this problem,
  70.      either build the bzip2 BZ_NO_STDIO object library with /NAMES =
  71.      UPPERCASE, or else build UnZip with /NAMES = AS_IS.  For example:
  72.  
  73.           @ [.VMS]BUILD_UNZIP LARGE "CCOPTS=/NAMES=AS_IS" -
  74.            IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS]
  75.      or:
  76.           MMS /DESC = [.VMS] /MACRO = (LARGE=1, "CCOPTS=/NAMES=AS_IS", -
  77.            IZ_BZIP2=SYS$SYSDEVICE:[UTILITY.SOURCE.BZIP2.BZIP2-1_0_4B_VMS])
  78.  
  79.      System-architecture-specific files (like objects and executables)
  80.      are placed in separate directories, such as [.ALPHA], [.IA64], or
  81.      [.VAX].  Large-file products get their own directories, [.ALPHAL]
  82.      or [.IA64L].  On VAX, VAX C products are placed in [.VAXV], GNU C
  83.      products in [.VAXG].  Each product builder announces what the
  84.      destination directory will be when it is run.
  85.  
  86.      Common files, such as the help libraries (UNZIP.HLP for the default
  87.      UNIX-like command-line interface, UNZIP_CLI.HLP for the VMS-like
  88.      command-line interface), are placed in the main directory.  With a
  89.      mixed-architecture VMS cluster, the same main directory on a shared
  90.      disk may may be used by all system types.  (Using the NOHELP option
  91.      with BUILD_UNZIP.COM can keep it from making the same help files
  92.      repeatedly.)  Building the help files is detailed below.
  93.  
  94.   Completing installation:
  95.  
  96.      To complete the installation, the executables may be left in place,
  97.      or moved (or copied) to a convenient place.  While other methods
  98.      (like DCL$PATH) exist, most users define symbols to make the UnZip
  99.      executables available as foreign commands.  These symbol definitions
  100.      may be placed in a user's SYS$LOGIN:LOGIN.COM, or in a more central
  101.      location, like SYS$MANAGER:SYLOGIN.COM.  Typical symbol definitions
  102.      might look like these:
  103.  
  104.           UNZIP :== $ dev:[dir]UNZIP.EXE        ! UNIX-like command line.
  105.      or:
  106.           UNZIP :== $ dev:[dir]UNZIP_CLI.EXE    ! VMS-like command line.
  107.  
  108.      On a non-VAX system, different symbols could be defined for the
  109.      small-file and large-file programs.  For example:
  110.  
  111.           UNZIPS  :== $ dev:[dir.ALPHA]UNZIP.EXE  ! UNZIPS = small-file UnZip.
  112.           UNZIP*L :== $ dev:[dir.ALPHAL]UNZIP.EXE !UNZIP[L] = large-file UnZip.
  113.  
  114.      The builders create help text files, UNZIP.HLP and UNZIP_CLI.HLP.
  115.      These may be incorporated into an existing help library, or a separate
  116.      UnZip help library may be created using commands like these, using
  117.      either UNZIP.HLP (as shown) or UNZIP_CLI.HLP:
  118.  
  119.           LIBRARY /HELP dev:[dir]existing_library.HLB UNZIP.HLP
  120.  
  121.           LIBRARY /CREATE /HELP UNZIP.HLB UNZIP.HLP
  122.  
  123.      UnZip help may then be accessed from a separate UnZip help library
  124.      using a command like:
  125.  
  126.           HELP /LIBRARY = device:[directory]UNZIP.HLB
  127.  
  128.      For greater ease, the user (or system manager) may define a
  129.      HLP$LIBRARY logical name to allow the HELP utility to find the UnZip
  130.      help library automatically.  See HELP HELP /USERLIBRARY for more
  131.      details.   The command procedure HLP_LIB_NEXT.COM may be used to
  132.      determine the next available HLP$LIBRARY logical name, and could be
  133.      adapted to define a HLP$LIBRARY logical name for a UnZip help library.
  134.  
  135.      The builders also create VMS message files, UNZIP_MSG.EXE, in the
  136.      destination directory with the program executables.  A user may
  137.      gain DCL access to the UnZip error messages using a command like:
  138.  
  139.           SET MESSAGE device:[directory]UNZIP_MSG.EXE
  140.  
  141.      For system-wide access, the system manager may move or copy this
  142.      file to SYS$MESSAGE, although this could cause some confusion if
  143.      multiple versions of UnZip are used on the system, and their error
  144.      message source files differ.
  145.  
  146.