1 SDMENU
The SDMENU utility has been designed to allow for the easy construction
of software kits in VMSINSTAL format.  Since these kits may be built on
any DEC media, the SDMENU utility allows you to specify which device you
want to use to build your kit.

The SDMENU procedure is invoked as follows:

$ @SD$DIR:SDMENU [device or utility] [option,...] [root]
2 DEVICE
The P1 parameter is used to define the default device as shown in the
main window of the SDMENU utility.  This device must be either a valid
tape drive or directory.  A logical may be used to point to the tape
drive or directory.

The default is MSA0: for all Vaxes except MicroVaxs.
The default is MUA0: for all MicroVaxs.
3 devices
The SDMENU will support any tape drive that runs on a VAX.  This
includes the TU58 cartridge and the TK50 tapes.

Smaller disk such as the 8" and 5 1/4" floppies may also be used.
Simply enter the appropriate device in then CD option and the
SDMENU will take the appropriate steps.

The CSA0: console device may be used (in the case of 11/780s)
but this is not recommended since it will be needed in the case
of a re-boot.  If you do decide to use the CSA0: console, the
SDMENU will make sure to remount the boot floppy properly before
exiting.
2 DIRS
The SDMENU directory structure is designed to control the kits such
that two kits can never be named the same.  We also use the sub-
directory name to designate the kit name when invoking SPKITBLD.

The other directories that are in the SD$DIR standard are:
------------------------------------------------------------------
SD$ROOT:[ALPHA]    Used for pre-release kits before release to
                   BETA test.
SD$ROOT:[BETA]     Used for pre-release kits pending the approval
                   of the 1st Article.
SD$ROOT:[FIRST]    Used for kits that are ready for First Article.
------------------------------------------------------------------
SD$ROOT:[INTERNAL] Used for kits distributed in-house only.
------------------------------------------------------------------
SD$ROOT:[INSPECT]  Used to keep the 1st Article listings for the
                   IT option.
SD$ROOT:[HISTORY]  Used to keep all old SDMENU.LOG files just in
                   case we want to track down a problem.
SD$ROOT:[LOG]      Used for log files if SDMENU is run in BATCH
                   and DEBUG mode (i.e the SDMENU$DEBUG logical is
                   defined).
SD$ROOT:[COM]      Used to save the com files is SDMENU is run in
                   BATCH and DEBUG mode.
------------------------------------------------------------------
Other than these directories, all other sub-directories are used
for kits.  These directories have (S:RWED,O:RWED,G:R,W:R) protections.
The files in the kits should have [001,004] ownership and
(S:RWED,O:RWE,G:RWE,W:RWE) protections.
2 INTRO
The SDMENU utility is used by both Manufacturing and Development to build
kits for installation using the utility VMSINSTAL.

o VMSINSTAL is a standard utility, supported by Digital, that resides on
  every Vax/VMS operating system.  It is located in SYS$UPDATE.

o If the SDMENU utility has been set up properly, any user on the system
  should be able to run SDMENU by simply typing SDMENU at the $ prompt.

o The main prompt is used to enter a variety of commands designed to help
  you build kits on any device you want and from any root directory.

o Use this help facility to learn about the various features of SDMENU.
2 KITS
Each kit consists of a clearly defined number of files that will install
on the customer system.  These files should never be customized since the
customer will get confused that one kit IGES014 is different from another
kit IGES014.  Much care should be taken to define the product such that
options as such do not occur.

Options can be marketed as separate kits or installed as an optional
savesets (understanding that the customer can either choose to install
the option or not).

Each kit has its own sub-directory in the SD$DIR directory.  The sub-
directory name is the kit name.  Therefore IGES014 will reside in 
DUA0:[SD.IGES014] for example.

We have settled on the protection scheme (S:RWED,O:RWE,G:RWE,W:RWE) for
all files in the kit directories.  This protection scheme may be set
manually or through the use of a DEFAULT_PROTECTION ACL on the SD$DIR
directory.  We like the later scheme since SPKITBLD will strip off all
ACLs before moving the files to tape.
2 LOGFILE
The SDMENU logfile will record every transaction made from the SDMENU
utility.

You may list this file from the SDMENU display by typing LL at the main
prompt.

The recorded fields include:

Day-Month-Year (Time stamp for the log entry)
Hour-Minute    (Time stamp for the log entry)
Function       (Depends on the command)
Device         (The target distribution device)
Root           (The source root - kit location)
Kit Name       (If appropriate)
Username       (Process Username)
PID            (Process Identification Number)
UIC            (Recorded during Login and Logout)
Elapsed Time   (Recorded in minutes:seconds)
Terminal       (Terminal Device name)

This log file is very useful to monitor which kits were built, when,
and by whom.  The file also will record all commands given from the main
menu including any help commands given at the prompts.  This information
is used by the designers to help tune the SDMENU utility.
2 LOGICALS
The logicals involved with the SDMENU help it perform its necessary tasks
transparent to the user.  These logicals are:

SD$DIR        - SDMENU Directory
SD$ROOT       - Software Distribution Root Directory
SD$PRINT_IP   - Inspection Report Printer
SD$PRINT_TAPE - Tape Label Printer
SD$PRINT_TK50 - TK-50 Label Printer
SD$MAIL       - SDMENU error reporting VMS MAIL distribution
SD$NODES      - List of nodes for the SDINSPECT file distribution
SDMENU$VERIFY - Runs SDMENU in verify
SDMENU$DEBUG  - Saves the LOG and COM files when in BATCH mode
3 SD$DIR
The SD$DIR logical will point to the directory that contains the software
distribution kits.  This logical must be defined as a SYSTEM logical.

$ DEFINE SD$DIR /SYSTEM DUA0:[SD]
3 SD$ROOT
The SD$ROOT logical is used like the SYS$SYSROOT logical to point to the
root directory of the SD$DIR directory.  Using this root logical allows
the SDMENU utility to find kits easily.  You will notice that in the
backup listing of the kits, the SD$ROOT logical is stripped off leaving
a very clean listing.  This logical must be defined as follows:

$ DEFINE SD$ROOT /SYSTEM /TRANS=(CONEAL,TERMINAL) DUA0:[SD.]

Note: If this logical is not defined and a privileged user runs
      SDMENU, then logical SD$DIR will be defined as the default
      directory.  If the user does not have SYSNAM, the SDMENU
      will issue an error and abort.
3 SD$PRINT_IP
The SD$PRINT_IP logical is used to specify which printer is used for the
IP (Inspection to Printer) report.  If this logical is not assigned, the
SYS$PRINT printer is used.  This logical does not have to be defined as
a system logical.

$ DEFINE SD$PRINT_IP /SYSTEM LPA0:
3 SD$PRINT_TAPE
The SD$PRINT_TAPE logical is used to specify which printer should be
used for the formatted label.  If the SD$PRINT_TAPE logical is assigned,
the SDMENU will output a nicely formatted label if you use the PL
option.

The labels are copied to the printer device (using a terminal device
works just fine).  If the printer is busy (printing another label?),
SDMENU will loop and keep trying.

The labels must have the standard McDonnell Douglas format.

$ DEFINE SD$PRINT_TAPE /SYSTEM TTA4:
3 SD$PRINT_TK50
The SD$PRINT_TK50 logical is used to specify which printer should be
used for a formatted label.  If the SD$PRINT_TK50 logical is assigned,
the SDMENU will output a nicely formatted label if you use the PL
option.

The labels are copied to the printer device (using a terminal device
works just fine).  If the printer is busy (printing another label?),
SDMENU will loop and keep trying.

The labels must have the standard McDonnell Douglas format.

$ DEFINE SD$PRINT_TK50 /SYSTEM TTA4:
3 SD$MAIL
The SD$MAIL logical is used to define the mail distribution for error
reports from the IF option.

If this logical is assigned, it must be a SYSTEM logical that points
to a distribution list for VMS MAIL.

$ DEFINE /SYSTEM SD$MAIL "SYSTEM,SD_COORD"

If an error occurs during the comparison phase of the IF option, the
differences file will be mailed to the distribution.

NOTE1: DO NOT use remote usernames.  Use the FORWARD option in MAIL
       instead.  In the case of an error, SDMENU will send the MAIL
       to the local accounts instead of the FORWARDING address.

NOTE2: If SD$MAIL is not defined, the SYSTEM account will receive
       the distribution.
3 SD$NODES
The SD$NODES logical is used to define the nodes that will receive
the inspection file from then BI function.

$ DEFINE SD$NODES "SYSA,SYSB"

NOTE: If this logical is not defined, the host node will be sent
      the file.  If the host node does not have DECnet or DECnet
      is not active, the file will not be copied.
3 SDMENU$VERIFY
The SDMENU$VERIFY logical is used to set the SDMENU utility into
a "SET VERIFY" condition to debug problems.  Otherwise, verify
is specifically turned off.

$ DEFINE SDMENU$VERIFY "1"
3 SDMENU$DEBUG
The SDMENU$DEBUG logical is used to capture the LOG and COM files
used when SDMENU is run in BATCH mode.  If this logical is defined,
the kit.COM file is stored in SD$ROOT:[COM] and the kit.LOG file
is stored in SD$ROOT:[LOG].

$ DEFINE SDMENU$DEBUG "1"
2 OPTION
The P2 parameter is used for options which are entered as a list separated
by commas.  If this parameter is ommitted, and you want to enter the
default root directory, you may enter a blank "" and then specify the root
directory.

E - Expert mode; Don't display the options in the main menu
B - Submit Batch mode (kit build is submitted batch)

The default is no options (i.e. display the options and
enter interactive mode).
2 ROOT
The P3 parameter is used to define the root directory.  This value MUST
be specified as either RELEASED, ALPHA, BETA, FIRST, INTERNAL, or LOGIN.
If you specify LOGIN, the SDMENU utility will look in your own SYS$LOGIN
directory for kits.  If you specify RELEASED, the SDMENU utility will look
in the SD$DIR (system logical) [.RELEASED] sub-directory for kits.

The default is RELEASED.
2 SAVESETS
Most simple kits will be built into one saveset.  This saveset may
be created on tape, disk, or floppy.  The saveset name must be
the product name with a .A extension.  For example:

IGES014.A

For more complicated installations, additional savesets may be used
with extensions starting with .B and alphabetically incrementing.
3 examples
The UGII V3.2 kit consisted of two products built into four
savesets.  When this type of installation is required, the
SDMENU utility must be modified to handle the exception.

The UGII V3.2 installation had the following savesets...

TMOD010.A (Terminal Modules kit V1.0)
UGII032.A (Unigraphics II kit V3.2)
UGII032.B (User Function files V3.2) called by UGII V3.2 kit
UGII032.C (UNIPIX files V3.2) called by UGII V3.2 kit
2 SYMBOL
The SDMENU utility may be invoked in a variety of ways.  If you simply
run the utility by the command:

$ @SD$DIR:SDMENU

The SDMENU utility will use pre-defined defaults for the distribution
device (MSA0: or MUA0:) and source directory (SD$ROOT).  The label will
display (or print) and the backup will be performed with a /LOG
qualifier.

A symbol may be defined to run the SDMENU as follows:

$ SDMENU :== @SD$DIR:SDMENU

P1 parameters can be used in the symbol to define the default device
and root directory settings.
3 parameters
P1 - Device name (i.e. MTA0: or SYS$LOGIN)

P2 - Options  B - Submit kit build BATCH
              E - Expert mode

P3 - Root directory (RELEASED,ALPHA,BETA,FIRST,INTERNAL,LOGIN)

Therefore, the SDMENU symbol could be defined as follows:

$ SDMENU :== @SD$DIR:SDMENU MUA0: E RELEASED

The P1 paramters will only affect the default settings when the SDMENU
is run.  The P1 and P3 settings may be changed while within the SDMENU
utility.  The P2 options cannot be changed until the symbol is
re-defined.
3 examples  
To use any of the following examples, define the SDMENU symbol either
in the system wide login (pointed to by SYS$SYLOGIN) or in individual
LOGIN.COM files.

$ SDMENU :== @SD$DIR:SDMENU MSA0: B

(Kits are built on MSA0: is batch mode.)

$ SDMENU :== @SD$DIR:SDMENU SYS$LOGIN BE

(Kits are built in your login directory in batch mode.  The SDMENU
 display will not show the command portion of the menu.)
 
$ SDMENU :== @SD$DIR:SDMENU SYS$LOGIN "" LOGIN

(Kits are to be built in your login directory from your
 sys$login kits instead of the system kits.)
2 UTILITY
The SDMENU.COM command file may be invoked directly to use some of
the built in functions.  To use these functions, you will probably
want to define some symbols as show below:

$ SDINSPECT :== @SD$DIR:SDMENU SDINSPECT
$ SPKITBLD  :== @SD$DIR:SDMENU SPKITBLD
2 BI
The BI option will be available to those users with SETPRIV privilege.
This option will build an inspection file and allow you to distribute
the file among several nodes in the network (edit the SDINSPECT.COM
file if necessary).  The file SD$DIR:SDINSPECT.COM is used.  The prompt
will appear as follows:

* What kit [Main Menu]:
2 CB
Change the mode to BATCH.  Kits will be submitted to the batch queue
to aid in cutting multiple tapes from a single terminal.  The mode
will display after the time in the main display.
2 CD
The CD option is entered at the main prompt:

* Which kit would you like to build [EXIT]: CD

Notice that the default entry is in [].  Therefore, if you press the
<RETURN> key, the SDMENU utility will exit and you will be returned
to the $ prompt.

By typing CD, you will be prompted for a distribution device.

* Distribution device [MSA0:]:

As you can see, the default is in brackets.  Therefore, to select MSA0:
as your new distribution device, press <RETURN> or enter another choice.

The distribution device is then allocated such that no other user can
use that device while you are working with it.  If the device is
already allocated, you will be warned and allowed to choose another
device.
3 parameters
The distribution device may be any tape drive or disk device.  You may
also select a directory.  This entry can be either the absolute device
or a logical.

For example the following are acceptable responses (given you have these
devices on your system):

* Distribution device [MSA0:]: SYS$LOGIN
* Distribution device [MSA0:]: DUA1:
* Distribution device [MSA0:]: HSC000$DUA0:
* Distribution device [MSA0:]: DJA1:[TESTKIT]
* Distribution device [MSA0:]: MSA0:
* Distribution device [MSA0:]: UGMT0
3 CONSOLE
The CSA1 console may be used as a distribution device.  If the console
is not connected and you do not have the privs to do a SYSGEN connect,
the kit build will fail.

To make the CSA1: device available, enter the following commands:

$ MCR SYSGEN
SYSGEN> CONNECT CONSOLE
3 FLOPPY
The SDMENU utility may be used to build kits on 8" floppy.  Just select
the correct device from the CD option.  The SPKITBLD will automatically
build the kit correctly.
3 SYS$LOGIN
Choosing SYS$LOGIN from the CD prompt allows you to build a kit in your
own SYS$LOGIN directory.  The kit will be named for example IGES014.A
and will be a REAL saveset on disk.

This saveset can be used to install the kit in the same way that kits
are used from tape.  When you invoke VMSINSTAL and it asks for a 
distribution device, enter SYS$LOGIN.

This is also a great method for testing the kit building procedure
without juggling tapes.
2 CE
This option will change your mode to Expert.  In the Expert mode,
the main SDMENU display will NOT show the SDMENU commands.

In the expert mode, the SDMENU does NOT show any log messages.

If you enter CE while in Expert mode, the mode will revert back
to Interactive.
2 CS
The CS option allows you to change where the SDMENU utility looks for
kits.  If you enter RELEASED, the SDMENU utility will show only RELEASED
kits.  If you enter BETA, the SDMENU utility will show only UNRELEASED
or BETA release kits.  All kits pending First Article approval will be
located in the FIRST section.  Kits that may be distributed IN-HOUSE
only are located in the INTERNAL section.

To accept the default, press the <RETURN> key at the prompt:

* Enter the Source Directory [RELEASED]:

 o Enter RELEASED to look in the RELEASED Software Distribution directory
   for kits.

 o Enter ALPHA to look in the ALPHA directory for unreleased kits.

 o Enter BETA to look in the BETA directory for unreleased kits.

 o Enter FIRST to look in the FIRST directory for kits pending First
   Article approval.

 o Enter INTERNAL to look in the INTERNAL directory for unreleased kits.

 o Enter LOGIN to look in your own SYS$LOGIN directory for kits.

 o Enter any valid directory specification to look in that directory
   for kits.
2 EX
The EX option is identical to the EXIT command.  This command will
cleanup your SDMENU environment and exit the utility.
2 HE
The HE command invokes the VAX/VMS HELP Facility to display information
about a SDMENU command or topic.  In response to the "SDMENU Subtopic?"
prompt, you can:

  o Type the name of the command or topic for which you need help.

  o Type a question mark (?) to redisplay the most recently requested
    text.

  o Type a asterisk (*) to display all help under the catagory.

  o Press the RETURN key one or more times to exit from HELP.

You can abbreviate any topic name, although ambiguous abbreviations result
in all matches being displayed.
2 IT
The IT option allows you to inspect a tape to the 1st Article listing
which is stored in the SD$ROOT:[INSPECT] directory.

After mounting the tape to be inspected on the distribution device
and placing the device on-line, enter the IF option at the main
prompt.

The tape will be read and you will then be prompted for the kit
name (for example):

* What kit are you inspecting [IGES014]:

This question is needed to determine which of the SD$ROOT:[INSPECT]
listings to use to compare this tape.  If any difference is found,
an error will be reported.  This error is also mailed to the SD$MAIL
distribution if this logical is assigned.
3 error
In case of an error, please check that you have:

a. Marked the tape correctly?
b. Enter the correct kit name at the prompt?

If the tape is marked correctly and the kit name has been entered
correctly, this is a SERIOUS error that must be reported at once
to your supervisor.  If the SD$ROOT:[INSPECT] file does not exist,
it should be created by the individual responsible for adding
products to this distribution.
2 LB
List the SDMENU$BATCH queue.  All kits that are submitted from this
procedure will be submitted into the SDMENU$BATCH queue.  Look for
the kitname in the batch queue listing.
2 LK
The LK option will list all of the available kits in your specified
source directory.  This option will examine all of the sub-directories
of the source directory and display the kit name portion of the
directory only if the last three digits are numbers.
2 LL
The LL option will either type the SD$DIR:SDMENU.LOG file or search the
file for any occurance of a string.  This log file records every
transaction made from the SDMENU utility.  For more information on the
log file look under HELP SDMENU LOGFILE.

For example, to search for every IGES kit, simply enter IGES at the
prompt.  To search for a specific kit entry, enter the full kit name.

Type EXIT to go back to the main menu or ALL to type all of the
log entries.  If you enter the keyword TODAY, all of today's entires
will be listed.
3 fields
The recorded fields include:

Day-Month-Year (Time stamp for the log entry)
Hour-Minute    (Time stamp for the log entry)
Function       (Depends on the command)
Device         (The target distribution device)
Root           (The source root - kit location)
Kit Name       (If appropriate)
Username       (Process Username)
PID            (Process Identification Number)
UIC            (Recorded during Login and Logout)
Elapsed Time   (Recorded in minutes:seconds)
Terminal       (Terminal Device name)
2 LO
The LO option will cleanup your SDMENU environment and LOG you out
of the system.
2 LP
The LP option allows you to backup/list a tape and print the listing on
the SD$PRINT_IP device (or on SYS$PRINT if the SD$PRINT_IP locigal is
not defined).  The SDMENU utility will continue to list the tape through
all of its savesets.
2 MA
The MA optin will startup the Vax/VMS MAIL utility.
2 PH
The PH option will startup the Vax/VMS Phone utility.
2 PL
The PL option allows you print a label for any kit supported by the
SDMENU utility.  Simply enter the kit name at the prompt and the
label will print to your SDMENU label printer.

NOTE: If your current device is a TK-50, the SDMENU will attempt
      to print on the TK-50 printer.
2 SP
The SPawn command will take you to DCL efficiently to execute any DCL
command.  To return to the SDMENU utility, simply LOGOUT of the
SPAWN'd process.
