Google
 

Trailing-Edge - PDP-10 Archives - BB-PBQUC-BM_1990 - help/compile.hlp
There are no other files named compile.hlp in the archive.
COMPILE command

The COMPILE command translates source files into  object  (relocatable
binary) files.


Format

     @COMPILE (FROM) /switch(es) source/switch(es) object,...

     where:

     switches       are  keywords  chosen   from   the   list   below,
                    indicating your choice of COMPILE command options.
                    They have different  effects  depending  on  their
                    position  in  the command line:  placed before all
                    files in the command, they  act  as  defaults  for
                    all;  otherwise,  they  affect  only  the  nearest
                    preceding file.
                         Defaults are shown in the list of switches

     source         is the file specification  of  a  source  program.
                    The filename must be of 6 or fewer characters, and
                    the file type of 3 or fewer characters; you cannot
                    use a generation number.
                         Default - arguments you  gave  in  your  last
                                   LOAD-class command

     object         is the filename you choose for the object file; it
                    must be of 6 or fewer characters.
                         Default - filename of the source  file  (file
                                   type is .REL)

      Summary of COMPILE Command Switches (defaults in boldface)

          /10-BLISS
          /36-BLISS
          /68-COBOL
          /74-COBOL
          /ABORT
          /ALGOL
          /BINARY
          /COBOL
          /COMPILE
          /CREF
          /CROSS-REFERENCE
          /DDT
          /DEBUG
          /FAIL
          /FLAG-NON-STANDARD
          /FORTRAN
          /LANGUAGE-SWITCHES:"/switch(es)"
          /LIBRARY
          /LIST
          /MAC
          /MACHINE-CODE
          /MACRO
          /MAP
          /NOBINARY
          /NOCOMPILE
          /NOCREF
          /NOCROSS-REFERENCE
          /NODBUG
          /NOFLAG-NON-STANDARD
          /NOLIST
          /NOLIBRARY
          /NOMACHINE-CODE
          /NOOPTIMIZE
          /NOSEARCH
          /NOSTAY
          /NOSYMBOLS
          /NOWARNINGS
          /OPTIMIZE
          /PASCAL
          /RELOCATABLE
          /SAIL
          /SEARCH
          /SIMULA
          /SNOBOL
          /STAY
          /SYMBOLS
          /WARNINGS

     Descriptions of these switches are  given  below.   Although  the
     system  will  not  reject  switches  described  under  any of the
     LOAD-class commands, only those switches commonly associated with
     COMPILE are described here.


                         COMPILE Command Switches


     /10-BLISS      compiles the file using the BLISS-10 compiler.
                         Default for files of type .B10 and .BLI

     /36-BLISS      compiles the file using the BLISS-36 compiler.
                         Default for files of type .B36

     /68-COBOL      compiles the file using the COBOL-68 compiler.
                         Default for files of type .C68 or .68C

     /74-COBOL      compiles the file using the COBOL-74 compiler.
                         Default for files of type .C74 or .74C

     /ABORT         stops a compile if a fatal error is  detected  and
                    returns your terminal to TOPS-20 command level.

     /ALGOL         compiles the file using the ALGOL compiler.
                         Default for files of type .ALG

     /BINARY        allows generation of an object (binary)  file  for
                    each source file given.  Use this switch to cancel
                    a /NOBINARY switch.
                         Default

     /COBOL         compiles the file using the COBOL compiler, either
                    COBOL-68  or  COBOL-74, that your installation has
                    stored in the file SYS:COBOL.EXE.
                         Default for files of type .CBL

     /COMPILE       forces compilation of the source file  even  if  a
                    current  object  file  already  exists.   Use this
                    switch along with the /LIST  or  /CREF  switch  to
                    obtain  listings  when  you  have  current  object
                    files.  (See also the /NOBINARY switch.)

     /CREF          same as /CROSS-REFERENCE

     /CROSS-REFERENCE
                    creates   a   file   containing    cross-reference
                    information for each compilation.  The filename is
                    that of the object file; the file  type  is  .CRF.
                    Use  the  CREF  command to obtain a listing of the
                    file.  (For COBOL files, this switch automatically
                    produces  a  cross-reference  listing.)   See  the
                    TOPS-20 User Utilities Guide for information about
                    the CREF program.

     /DDT           loads the DDT debugging program  along  with  your
                    object file.

     /DEBUG         produces  an  object  file  containing   debugging
                    information beyond what is usually inserted during
                    a compilation.  (For FORTRAN  programs  only,  and
                    only if you have not given the /OPTIMIZE switch.)

     /FAIL          compiles the file using the FAIL compiler.
                         Default for files of type .FAI

     /FLAG-NON-STANDARD
                    indicates non-standard syntax in file.

     /FORTRAN       compiles the file using the FORTRAN compiler
                         Default  in the absence of a standard  source
                                  file type and a language switch
                         Default  for files of type .FOR

     /LANGUAGE-SWITCHES:"/switch(es)"
                    passes the specified switches to the compiler that
                    will  process  the  file(s)  to  which this switch
                    applies.  You must include the switches in  double
                    quotation marks ("  ").

     /LIBRARY       same as /SEARCH.

     /LIST          prints a listing of the program in  ASCII  format;
                    the  name  of  this listing is the filename of the
                    object file.  The  /CREF  switch  overrides  /LIST
                    when they both apply to the same file.

     /MAC           same as /MACRO

     /MACHINE-CODE  produces a file containing the  generated  machine
                    code.   The  filename  is that of the object file;
                    the file type is .LST.  For high-level languages.
                         Default

     /MACRO         assembles the file using the MACRO assembler.
                         Default for files of type .MAC

     /MAP           produces a loader map and stores it  in  the  file
                    object.MAP, where object is the name of the module
                    containing the start  address,  or  (if  no  start
                    address) nnnLNK.MAP, where nnn is your job number.

     /NOBINARY      prevents generation of an  object  (binary)  file.
                    Use this switch along with /LIST or /CREF to allow
                    these switches to take effect without producing  a
                    new object file.

     /NOCREF        same as /NOCROSS-REFERENCE.

     /NOCOMPILE     prevents compilation if the associated object file
                    is   current;  otherwise  it  forces  compilation.
                    Cancels    /COMPILE    or    /RELOCATABLE.     See
                    Characteristics - Compiling   New   Sources  Only,
                    below.
                         Default

     /NOCROSS-REFERENCE
                    prevents the creation of a cross-reference file.
                         Default

     /NODEBUG       excludes special debugging information  from  your
                    object file.  (For FORTRAN programs only.)
                         Default

     /NOFLAG-NON-STANDARD
                    prevents the flagging of nonstandard syntax in the
                    file.
                         Default

     /NOLIBRARY     same as /NOSEARCH.

     /NOLIST        prevents a line printer listing of the program.
                         Default

     /NOMACHINE-CODE
                    prevents generation of a file  containing  machine
                    code.
                         Default

     /NOOPTIMIZE    prevents the generation of  a  globally  optimized
                    object file.  (For FORTRAN programs only.)
                         Default

     /NOSEARCH      requires all modules in the  object  file  library
                    (the  file  accompanied  by  this  switch  in  the
                    command line) to be loaded, even if they  are  not
                    called  by  your  program.   Cancels  the  /SEARCH
                    switch.
                         Default

     /NOSTAY        stops  the  compiler  from  being  placed   in   a
                    background  fork.   Use  when  /STAY  is  set as a
                    default for the compiler.

     /NOSYMBOLS     prevents a symbol table from  being  loaded  along
                    with the object file.

     /NOWARNINGS    prevents display of warnings for nonfatal errors.

     /OPTIMIZE      calls  for  generation  of  a  globally  optimized
                    object  file, that is, one that runs as quickly as
                    possible.  (For FORTRAN programs only, and only if
                    you have not given the /DEBUG switch.)

     /PASCAL        compiles the file using the PASCAL compiler.
                         Default for files of type .PAS

     /RELOCATABLE   identifies  the  input  file  as  an  object  file
                    (regardless   of   its   extension)  and  prevents
                    compilation of the source file, forcing use of  an
                    existing  object  file  even if the object file is
                    out of date.
                         Default for files of type .REL

     /SAIL          compiles the file using the SAIL compiler.
                         Default for files of type .SAI

     /SEARCH        requires that the object file  library  (the  file
                    accompanied by this switch in the command line) be
                    searched for modules called by your program or  by
                    a  program  subroutine.   Only  these  modules are
                    loaded, along with modules called from the  system
                    libraries, which are always searched.

     /SIMULA        compiles the file using the SIMULA compiler.
                         Default for files of type .SIM

     /SNOBOL        compiles the file using the SNOBOL compiler
                         Default for files of type .SNO

     /STAY          returns your terminal to TOPS-20 command level  so
                    that  you  can perform other work while the system
                    continues   to   compile   your   program.     You
                    immediately  receive  the TOPS-20 prompt (@ or $),
                    and can then issue any user command.   Be  careful
                    not  to  send incorrect data to programs expecting
                    terminal  input.   (See  the   CONTINUE   command,
                    Restrictions:   Programs  Competing  for  Terminal
                    Input.)

                    This switch saves you from having to:  issue a  ^T
                    to  make sure the compiler has begun; give a ^C to
                    halt  compilation;  and  issue  a  CONTINUE  /STAY
                    command   to   remain   at  command  level  during
                    compilation.

     /SYMBOLS       loads a symbol table along with the  object  file;
                    helpful for debugging a program.
                         Default

     /WARNINGS      displays warnings for nonfatal errors.
                         Default


Characteristics

     Compiling New Sources Only

          The system usually compiles only  those  sources  for  which
          there  are  no  current object files, that is, sources whose
          write dates are more recent than those of the  object  files
          of the same name.

          However, sources for which you supply a new object  filename
          are  compiled  even  if there are current object files.  You
          can always force compilation with the /COMPILE switch.

     Default Switches Not Passed to Compiler

          Only switches specified in a LOAD-class command  are  passed
          to  the compiler; default switches are not passed.  Instead,
          the system assumes that the defaults for  the  compiler  are
          the same as the defaults for the LOAD-class command.

     Using Standard File Types

          If you specify source files with standard types (.FOR, .MAC,
          .CBL,   or   .ALG)   in   a   COMPILE  command,  the  system
          automatically   calls   the   appropriate   compiler    when
          compilation  is  necessary.   If you specify source files by
          filename only, the system searches your connected  directory
          in  the  above  order for a file of this name and a standard
          type.   To  compile  programs   from   sources   that   have
          nonstandard file types, give a switch to indicate the proper
          compiler (/FORTRAN, /MACRO, /COBOL, or  /ALGOL).   A  switch
          will  take  precedence  over  a  standard  file type if they
          indicate different languages.  If no compiler  is  indicated
          with  either  a  switch or a standard file type, the FORTRAN
          compiler is used.


Hints

     Plus Signs Between Filespecs

          If you give two or more filespecs separated  by  plus  signs
          (+)  as  arguments to COMPILE, they are compiled together as
          if they were a single file.  Their object module  is  stored
          under  any  filename  given  as the "object" argument of the
          command, or (if none) under the last filename in  the  group
          and file type .REL.

     Indirect Files as Arguments

          You can store the arguments (source  and  object  filespecs,
          switches)  of  a  COMPILE  command  in an indirect file, and
          specify them by typing an at sign (@) and its filespec as  a
          COMPILE command argument.

     Establishing Default Arguments with the SET Command

          You can issue the SET DEFAULT  COMPILE-SWITCHES  command  to
          set  up  default  global  arguments  to the COMPILE command.
          Insert this SET command in your COMAND.CMD  file  to  change
          your own defaults permanently.

     Wildcards Illegal with COMPILE

          The COMPILE command does not accept wildcard  characters  (*
          and %) in a file specification.


Effect on Memory

     The COMPILE command clears any unkept forks from memory and loads
     the appropriate compiler.


Related Commands

     LOAD, EXECUTE, and DEBUG     other   LOAD-class   commands    for
                                  performing related functions


Examples

     1.  Compile a FORTRAN program.

              @COMPILE RSD2.FOR
              FORTRAN: RSD2
              MAIN.

     2.  Do the same thing, using a  switch  to  indicate  the  proper
         compiler.   Use  the  /STAY  switch  to return immediately to
         TOPS-20 command level.

              @COMPILE RSD2/FORTRAN/STAY
              @PUSH

               TOPS-20 Command processor 7(1015)
              @EDIT LOGIN.CMD

     3.  Create an indirect file using the EDIT  editor.   Use  it  to
         compile  several  programs, forcing a compilation of the last
         one and storing its object file under a new name.

              @CREATE UPDATE.CMD
              Input: UPDATE.CMD.1
              00100   /COBOL FSTQ, SNDQ, THDQ, FTHQ/COMPILE ANNUAL
              00200   $
              *E

              [UPDATE.CMD.1]
              @COMPILE @UPDATE.CMD
              COBOL:  DMN     [FSTQ.CBL]
              COBOL:  DMN     [SNDQ.CBL]
              COBOL:  DMN     [THDQ.CBL]
              COBOL:  DMN     [FTHQ.CBL]

              EXIT
              @DIRECTORY,
              @@CHRONOLOGICAL WRITE
              @@REVERSE
              @@
                 PS:<LATTA>
               ANNUAL.REL.1
               THDQ.REL.1
               SNDQ.REL.1
               SNDQ.CBL
               FSTQ.CBL

              Total of 5 files

     4.  Produce a cross-reference (.CRF) file for a  FORTRAN  program
         although  you already have a current object file; prevent the
         generation of a new object program.   Check  for  the  output
         file.

              @COMPILE /CREF/FORTRAN/COMPILE/NOBINARY RSD2
              FORTRAN: RSD2
              MAIN.
              @DIRECTORY,
              @@CHRONOLOGICAL WRITE
              @@REVERSE
              @@

                 PS:<LATTA>
               RSD2.CRF.1
               017CRE.TMP.100017;T
               RSD2.REL.1
               RSD2.FOR

              Total of 4 files