Tuesday, May 1, 2012

OpenVMS: Install C compiler

Taken with kind permission from: The Book of Dead:[Systems].
Original is here.

This is assuming the OpenVMS Hobbyist CDROM is loaded in the CDROM drive, and that the CDROM drive is DUA3:

$ mount/over=id dua3:
%MOUNT-I-WRITELOCK, volume is write locked
%MOUNT-I-MOUNTED, VAXVMS073 mounted on _EYE0$DUA3:
$ set def dua3:[000000]
$ dir

Directory DUA3:[000000]

000000.DIR;1        BACKUP.SYS;1        BADBLK.SYS;1        BADLOG.SYS;1
BASIC039.DIR;1      BITMAP.SYS;1        CC064.DIR;1         CONTIN.SYS;1
CORIMG.SYS;1        DCE_VAX030.DIR;1    DCPSVAX021.DIR;1    DECNET_PHASE_IV_VAX073.DIR;1
DECNET_PLUS_VAX073.DIR;1                DECSET124.DIR;1     DECW073.C;1
DECW073.D;1         DECW073.E;1         DECW073.F;1         DOCUMENTATION.DIR;1
DTRA072A2.DIR;1     DWMOTIF_VAX125.DIR;1                    DWMOTIF_VAX126.DIR;1
FORT066.DIR;1       HELP_MESSAGE.DIR;1  INDEXF.SYS;1        ISL_SCRIPT.ESS;1
KERBEROS_VAX010.DIR;1                   KITS.DIR;1          PASCAL058.DIR;1
SECURITY.SYS;1      SYS0.DIR;1          SYS1.DIR;1          TCPIP_VAX051.DIR;1
VAX073.DIR;1        VMS073.A;1          VMS073.B;1          VMS073.C;1
VMS073.D;1          VMS073.E;1          VMS073.F;1          VMSI18N_VAX073.DIR;1
VOLSET.SYS;1

Total of 42 files.
$  dir [.cc064]*.*;*

Directory DUA3:[000000.CC064]

DOCUMENTATION.DIR;1 KIT.DIR;1

Total of 2 files.
$  dir [.cc064.kit]*.*;*

Directory DUA3:[000000.CC064.KIT]

AACRT060.A;1        CC064.A;1           CC064.B;1

Total of 3 files.
$ @sys$update:vmsinstal

        OpenVMS VAX Software Product Installation Procedure V7.3

It is 26-APR-2010 at 10:44.

Enter a question mark (?) at any time for help.

%VMSINSTAL-W-ACTIVE, The following processes are still active:
        TCPIP$FTP_1
* Do you want to continue anyway [NO]? YES
* Are you satisfied with the backup of your system disk [YES]?
* Where will the distribution volumes be mounted: DUA3:[CC064.KIT]

Enter the products to be processed from the first distribution volume set.
* Products: CC064
* Enter installation options you wish to use (none):

The following products will be processed:

  CC V6.4

        Beginning installation of CC V6.4 at 10:44

[...]

* Does this product have an authorization key registered and loaded? NO
%CC-I-NOLICENSE, DEC C Version 6.4 Product Authorization Key (PAK) is not registered and loaded.
%CC-I-NOLICENSE2, The IVP cannot be run without the PAK.

    HTML, postscript and text versions of the Compaq C Users Guide,
    Language Reference Manual and RTL Reference Manual may be optionally
    installed into SYS$COMMON:[SYSHLP.CC$VAX_HELP_064].
    These documents consume approximately 40000 blocks.

* Should these manuals be provided [NO]: YES

    This kit contains a file summarizing the new features, changes,
    restrictions, and compatibility issues in this release of Compaq C.
    This file is named CC064.RELEASE_NOTES and has been placed in
    sys$common:[syshlp.cc$vax_help064]

    This file contains information valuable to Compaq C programmers.
    Please inform your user community of this file's existence.

    VAX C is not installed on the system.  Should you install VAX C at
    some future time, you must reinstall Compaq C to provide a command line
    definition for the CC command that can can invoke either product.

* Do you want to purge files replaced by this installation [YES]?

All questions have been answered. The installation will take a few minutes.

        The C Runtime Library headers and Starlet headers are installed as
        a Text Library (.TLB).  The traditional text form  of the headers
        (.H files) is also provided (for  reference  purposes only) in
        the directories: SYS$COMMON:[DECC$LIB.REFERENCE.DECC$RTLDEF] and
        SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C].

        Please note that the compiler does not search the reference areas
        SYS$COMMON:[DECC$LIB.REFERENCE.DECC$RTLDEF] and
        SYS$COMMON:[DECC$LIB.REFERENCE.SYS$STARLET_C] during compilation.
        Instead headers are taken from the text library.

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB.REFERENCE].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB.REFERENCE.DECC$RTLDEF].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB.REFERENCE.SYS$STARLET_C].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB.INCLUDE.DECC$RTLDEF].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[SYSHLP.EXAMPLES.CRTL].
%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[DECC$LIB.INCLUDE.SYS$STARLET_C].

    Please add SYS$STARTUP:CCXX$STARTUP.COM to the system startup
    procedure called SYS$STARTUP:SYSTARTUP_xxx.

    To use Compaq C for OpenVMS VAX on other VAX nodes of a VMScluster
    enter the command "$ @SYS$STARTUP:CCXX$STARTUP.COM" from a privileged
    account on each such node.  This will install Compaq C images and define
    "DECC$*" system-wide logical names.

%VMSINSTAL-I-SYSDIR, This product creates system disk directory  VMI$ROOT:[SYSHLP.CC$VAX_HELP_064].
%VMSINSTAL-I-RESTORE, Restoring product save set B ...

    Your OpenVMS system will now be modified to include the
    following new and modified files:

    [SYSEXE]DECC$COMPILER.EXE             [new]
    [SYSMSG]DECC$MSG_SHR.EXE              [new]
    [SYSHLP]HELPLIB.HLP                   [modified]
    [SYSHLP.CC$VAX_HELP_064]*.*           [new]
    [SYSHLP]CC064.RELEASE_NOTES           [new]
    [SYSLIB]DCLTABLES.EXE                 [modified]
    [SYSLIB]DECC$RTLDEF.TLB               [new]
    [DECC$LIB.REFERENCE.SYS$STARLET_C]*.H [new]
    [DECC$LIB.REFERENCE.DECC$RTLDEF]*.H   [new]
    [SYSLIB]DECC$OLB.EXE                  [new]
    [SYSLIB]DECC$OLB.README               [new]
    [SYSLIB]DECC$OLB.OLB                  [new]
    [SYS$STARTUP]CCXX$STARTUP.COM         [modified]
    [SYSEXE]CXX$DEMANGLE.EXE              [new]
    [SYSMSG]CXX$LINK_MSG.EXE              [new]
    [SYSEXE]DECC$SET_VERSIONS.COM         [new]
    [SYSEXE]DECC$SHOW_VERSIONS.COM        [new]
    [SYSTEST]DECC$IVP.COM                 [modified]

    The file SYS$STARTUP:CCXX$STARTUP.COM contains commands to be
    executed at system startup to allow for the best compilation
    performance.  You may want to invoke this command file from your
    system's site specific start up file.  This command file does not
    have to be invoked for correct operation of Compaq C.

%VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...

        Installation of CC V6.4 completed at 10:52

    Adding history entry in VMI$ROOT:[SYSUPD]VMSINSTAL.HISTORY

Enter the products to be processed from the next distribution volume set.
* Products:

        VMSINSTAL procedure done at 10:54

You could alse invoke the installer with:

$ @sys$update:vmsinstal cc064 dua3:[cc064.kit]

Register your Hobbyist License for C (from PAK):

$ LICENSE REGISTER C -
_$ /ISSUER=OPENVMS_HOBBYIST -
_$ /AUTHORIZATION=DECUS-DEC-XXXXXX-XXXXXXX -
_$ /PRODUCER=DEC -
_$ /UNITS=0 -
_$ /TERMINATION_DATE=3-MAR-2011  -
_$ /ACTIVITY=CONSTANT=100 -
_$ /CHECKSUM=X-XXXX-XXXX-XXXX-XXXX
$ LIC LIST
Press Ctrl/Z to exit, use arrow keys to scroll.
 License Management Facility  V1.2

 License Database File:       SYS$COMMON:[SYSEXE]LMF$LICENSE.LDB;1
 Created on:                  15-MAR-2010
 Created by user:             SYSTEM
 Created by LMF Version:      V1.2

 -----------------------------------
 C                            DEC
 UCX                          DEC
 VAX-VMS                      DEC
 [End Of List]

And finally as it has been requested by installator, invoke the startup script (from a privileged account).

$ dir SYS$STARTUP:CCXX$STARTUP.COM

Directory SYS$COMMON:[SYS$STARTUP]

CCXX$STARTUP.COM;1

Total of 1 file.
$ @SYS$STARTUP:CCXX$STARTUP
$ set proc/priv=all
$ lic load c
%LICENSE-I-LOADED, DEC C was successfully loaded with 0 units

Add the permanent invocation to SYS$STARTUP:SYSTARTUP_VMS.COM :

$!
$! Compaq C for OpenVMS VAX
$ @SYS$STARTUP:CCXX$STARTUP.COM
$!

Quick test:
$ type hello.c
#include 

main ()
{
  printf("Hello, OpenVMS.\n");
}
$ cc hello
$ link hello
$ r hello
Hello OpenVMS.
$

No comments:

Post a Comment