
03/26/96
Version 1.0

This is a readme file for porting and operation of nbcc on the Alpha.
All RSX files are to be placed under the directory tree of /rsx.
/rsx is really a symbolic link to /usr/rsx because of the small root
partition on the Alpha.  All of the nbcc processors have exactly the
same options as on MPX.

The following instructions should be followed to port the RSX software:

1.  Under /rsx (or /usr/rsx) make the directories for the RSX source.  
2.  CD to the directory to be converted to the Alpha (i.e. acq_source).
3.  FTP the files from the RSX machine in BINARY mode!
    a. ftp rsx
    b. login as system
    c. cd nasa3^directory
    d. bin [sets binary mode]
    e. prompt [turn off prompt mode]
    f. mget (directory) [get the entire directory]
    g. bye [exit ftp]
4.  Run "tolower" to convert all filenames to lower case
5.  Remove any known unused files for the directory [.bak, .old, etc.]
6.  Remove any known load modules, object files, or libraries
7.  Run "fixblk" to convert all _v files to Unix format from MPX format.
    This will also create an RCS directory and copy the files to that
    directory.  Other files without _v and also be converted by typing
    "fixblk file1 file2" etc.  These files will also be placed in the RCS
    directory.
8.  Now delete all the files from the current directory.  All of the files
    to be used will now be in the RCS directory.
9.  CD to the RCS directory and run "fixrcs" to convert all _v files to ,v
    files.  This is the Unix rcs default.
10. Move any non RCS files back to the original source directory.
11. CD to .. [the original source directory]
12. Do co -l on the make files for the file in this directory.
13. Edit the make files using vi
    a. Change all upper case pathnames to lower case.
       I.e. "1,$s/CHEADERS/cheaders/g"
    b. Change definition for DISK2 to rsx instead of nasa3
    c. Delete dependencies section of makefile
    d. Replace any lines with just a tab with a blank line.
       This causes OSF make to output (null) command line
       errors.
    e. Replace nasa3 with rsx, i.e., "1,$s/nasa3/rsx/g"
    f. Replace the catalog lines for the main program with a line
       that compresses the object files into one file.  I.e.
       $(BIN)/cmprs -O cmpfile $(OBJS).  This is the file that
       will be ftp'd back to the RSX machine in binary mode.
    g. Remove any -B options from CFLAGS.
    h. Remove the -G and -QC options from CFLAGS to speed operation.
    i. Change any other things that may be required.
14. Do "make -f new_makefile depend" to see if you can do the
    dependencies.  Correct errors/add supporting directories if
    necessary.  If makefile editing is required, go back to step 13.
15. Run "make -f new_makefile" to build the new compressed object
    file.  Return to step 13 as necessary to correct any errors.
16. Do ci on the make file when done.  Now check it out again without
    locking.  OSF make will not checkout and run make on a makefile.
17. I would suggest you creat a bin_rsx directory under /rsx and
    install (cp) the compressed object files to that directory.  Do
    the same thing on the RSX machine.  This will allow you to mput
    all of the file at once to the RSX machine.  Remember to FTP the
    files in binary mode.
17. Go back to the RSX machine and modify the makefiles to use the
    -Zcmpfile option for cataloging the loadmodules.  Make the load
    module makefile depend on the FTP'd file. I.e.
    $(MAIN):	other_dep1 other_dep2 $(PATH_TO_CMPFILE)/cmpfile
18. Go back to step 1 for the next directory to be ported to the Alpha.

Of general interest, the directory /system/bin and /system/nbinclude
have been generated on the Alpha.  Utilities such as cp, echo, rm, make,
etc. are symbolic links to the Unix versions.  Mkfile, dodep, mkdep, ar,
cmprs, nbcc, nbcpp, nbccom, nbcas, etc. are the ported versions of the
MPX versions.  And remember, /system/bin/ar is the MPX ar, if you just
use ar, you will get /usr/bin/ar, which is the OSF version.  The
porting scripts and utilities, (tolower, fixrcs, fixblk, unblk, ddump,
ddcat, and small) are in /usr/bin.  Following is a short description
of these utilites.

fixblk [file1 file2 ...]      Convert all _v files or specified files
                              from MPX blocked to Unix format.  Files
                              are copied to the ./RCS directory.

fixrcs [file1 file2 ...]      Rename all _v files or specified files
                              to ,v files.

tolower [file1 file2 ...]     Rename all files or specified files to
                              lowercase names.

unblk <infile >outfile        Convert stdin MPX blocked file to stdout
                              Unix file.

ddump [-r] file               Do side by side hex dump of a file with
                              capability to modify the file.  The -r
                              option specifies read only access.

ddcat file                    Do side by side hex dump of a file.

small <infile >outfile        Remove trailing blanks from stdin input
                              file and write to stdout output file.


And of course, if there should be an error, please give a call.

Jim Bevier
JB Systems
