                                                28 June 2022.  SMS.

                          GNU bc 1.06b for VMS
                          ====================

------------------------------------------------------------------------

      Disclaimer
      ----------

   No claims of any sort are made herein.  The main bc developers are
probably unaware of this effort.  Any suggestions for improving the code
in the VMS-specific sections are welcome, but low expectations are more
realistic than high ones.

------------------------------------------------------------------------

      Description
      -----------

   This note accompanies a quick VMS port of bc 1.06, a GNU (free)
arbitrary precision calculator.  The most obvious features seem to work,
but many have not been tested.  The kit includes both the bc and dc
programs.

   Built and tested (slightly) in these environments:

Alpha objects and executables (built on VMS V8.4-2L1 with VSI C
V7.4-002).

IA64 objects and executable (built on VMS V8.4-2L3 with VSI C V7.4-001).

VAX objects and executables (built on VMS V7.3 with Compaq C V6.4-005).

x86_64 objects and executable (built on VMS V8.4-2L3 with VSI C X7.4-547
(GEM 50V6F)).

------------------------------------------------------------------------

      News
      ----

   Version 1.06b  2022-06-10
   -------------------------

- Changed builders to accommodate x86_64 hardware architecture.
  ([.vms]descrip.mms, [.vms]descrip_src.mms)

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

   Version 1.06a  2010-04-06
   -------------------------

- New.  Bugs are possible.  No VMS-specific features.  No automatic
  testing.

------------------------------------------------------------------------

      Changes to Source Files
      -----------------------

   Files new for VMS:

         [.vms]

      COLLECT_DEPS.COM    Dependency collector for DESCRIP_MKDEPS.MMS.

      config.h_vms        VMS-specific config.h.  "a" version suffix.

      decc_ver.c          Program to show build-time versions: VMS, C
                          compiler, C run-time library.

      DESCRIP.MMS         Main MMK or MMS description ("make") file.

      DESCRIP_MKDEPS.MMS  Source dependency generator description file.

      DESCRIP_SRC.MMS     Source list description file.

      DESCRIP_SRC_FLAGS.MMS  Compile and link flags description file.

         [.<various>]

      DESCRIP*.MMS        Various MMS description files.

   Files modified for VMS:

         [.lib]

      testmul.c           Added some "#include" directives of system
                          header files for compiler complaint reduction.

------------------------------------------------------------------------

      Instructions
      ------------

   Extract the files from the distribution kit.

   The MMS/MMK builders should simply work, with few, if any, exotic
options to be specified.

   The builder options (MMS/MMK macros) are described in the main
builder file, "[.vms]DESCRIP.MMS".

   MMK or an old version of MMS may need a definition of
"MMSDESCRIPTION_FILE".  An error message should explain this, if needed.

   Example build commands:

      SET DEFAULT [.bc-1_06_vms.vms]        ! Required.

      MMS CLEAN                             ! Delete all product files
                                            ! for the current architecture.

      MMS CLEAN_ALL                         ! Delete all product files
                                            ! for all architectures.

      MMS                                   ! Normal build.

      DFLT = F$ENVIRONMENT( "DEFAULT")          ! Basic MMK build, with
      MMK /MACRO = (MMSDESCRIPTION_FILE='DFLT') ! explicit definition of
      DELETE /SYMBOL DFLT                       ! MMSDESCRIPTION_FILE.
                                                ! ("dev:[dir]" is enough.)



   Set the symbols for the foreign commands:

      BC :== $ actual_device:[actual.directory]BC.EXE
      DC :== $ actual_device:[actual.directory]DC.EXE

   Try to read the original documentation to learn how to use bc and dc.

   The builders normally generate two additional programs, DECC_VER.EXE
and TESTMUL.EXE.  Running DECC_VER.EXE should show some build-time
versions for VMS, the C compiler, and the C run-time library, which may
be helpful when reporting problems.  TESTMUL.EXE is built from
[.lib]testmul.c, and could be used to generate a "muldigits.h" header
file, but the default value ("#define MUL_BASE_DIGITS 80") in
[.lib]number.c is probably suitable.

------------------------------------------------------------------------

   Steven M. Schweda               (+1) 651-699-9818  (voice)
   382 South Warwick Street        sms@antinode.info
   Saint Paul  MN  55105-2547

