HP3000-L Archives

July 1998, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Wirt Atmar <[log in to unmask]>
Reply To:
Date:
Thu, 2 Jul 1998 21:09:00 EDT
Content-Type:
text/plain
Parts/Attachments:
text/plain (221 lines)
Rich Holloway asks:

> Does anyone know of a product and/or have a process that will do a mass
>  select of PowerHouse source files and compile them? I looked through the
>  archives and could not find anything. I know about naming, file equates,
>  and all that, but if we could just hit most of them it would be a great
>  help to our project.

Rich,

Whatever you do by hand now to compile your source files can be done in a
streamed job file (which, btw, is nothing more complicated than a flat ascii
file that you put together using any editor).

In our case, we've written three or four variants on the same theme. I've
enclosed below a file we call SEGMENTS that is used to direct the mass compile
of QueryCalc. There are about 100 programs in this list that get compiled into
the one program that is QueryCalc.

/t segments
FILE UNNUMBERED
/l all
    1     <<
    2
    3       This file contains the list of QueryCalc programs and
    4       the segments they compile into.
    5
    6       Some file segments are intentionally left out of the
    7       compile sequence. Dawson started these segments, but
    8       they have never been used. They are:
    9
   10             QCRPNCMP, QCFNACMP, QCFNBCMP, QCCMPILE
   11
   12     >>
   13     QCSEQ      0
   14     QCUPDATE   0
   15     QCFORMAT   0
   16     QCUSER     1
   17     QCSCREEN   2
   18     QCCELL     2
   19     QCOBNAME   2
   20     QCGRSIZE   2
   21     QCSYNTAX   3
   22     QCCOMMA    4
   23     QCSCINPT   5
   24     QCCOMMB    5
   25     QCCOMMC    6
   26     QCCOMMD    7
   27     QCPRTROW   7
   28     QCCOMME    8
   29     QCCOMMF    8
   30     QCCOMMG    9
   31     QCCOMMH    9
   32     QCRECALC  10
   33     QCINTERP  10
   34     QCUSERA   11
   35     QCSSFMT   12
   36     QCTEXT    13
   37     QCSPFONT  13
   38     QCCAT     14
   39     QCSTATS   14
   40     QCFONTS   14
   41     QCPREFIX  15
   42     QCSUFFIX  15
   43     QCQSEQ    16
   44     QCQPARSE  17
   45     QCCHAIN   17
   46     QCCHNFND  18
   47     QCDIREAD  18
   48     QCBITPAT  18
   49     QCSETTST  19
   50     QCITEM    19
   51     QCSERFND  19
   52     QCFORM    20
   53     QCSHOW    21
   54     QCREDO    21
   55     QCPRINT   22
   56     QCREREAD  23
   57     QCSTORE   23
   58     QCMARG    24
   59     QCHEADER  24
   60     QCOBJECT  25
   61     QCSETS    26
   62     QCERR03   27
   63     QCSETUP   28
   64     QCCOMMI   29
   65     QCEDITOR  30
   66     QCFNCTC   31
   67     QCFNCTB   32
   68     QCFNCTA   32
   69     QCFNCTD   32
   70     QCFNCTE   32
   71     QCFNCTF   33
   72     QCPRDEF   34
   73     QCUDFEDT  35
   74     QCUDFEXC  36
   75     QCCALEN   36
   76     QCBCKGRN  36
   77     QCNEWOBJ  37
   78     QCERROR   38
   79     QCEDTOBJ  39
   80     QCCOMMJ   40
   81     QCCOMMK   40
   82     QCERR02   41
   83     QCEQFMT   42
   84     QCGRSCRN  43
   85     QCGRCELL  43
   86     QCCLIENT  44
   87     QCMACRO   45
   88     QCLSTCNV  45
   89     QCGRPIE   46
   90     QCCOMMM   46
   91     QCPRTODB  47
   92     QCGRXY    48
   93     QC2DSTK   49
   94     QCFNCSYN  50
   95     QCRULER   50
   96     QC3DBAR   51
   97     QCHELP    52
   98     QC3DSTK   53
   99     QC2DBAR   54
  100     QCOLDLD   55
  101     QCRDQSTR  55
  102     QCRDQSDT  55
  103     QCRDCELL  55
  104     QCCOMML   56
  105     QCEDEXT   56
  106     QCEXPO    57
  107     QCRECVER  57
  108     QCDBOPEN  57
  109     QCDBSHUT  57
  110     QCLAYOUT  58
  111     QCLSTSYN  58
  112     QCPHEAD   58
  113     QCLSTGEN  59
  114     QCLSTFMT  60
  115     ^          0

A very simple BASIC program called TOTLCOMX is then run, as part of the
streamed job, to read SEGMENTS, thereby generating a new file, CALCCOMP, that
provides the BASIC compiler with entry point and segmentation information in
the way that it wants to see it:

/t calccomp
FILE UNNUMBERED
/l all
    1     CONTROL USLINIT
    2     COMPILE QCSEQ
    3     ENTRY QCSEQ
    4     COMPILE QCUPDATE
    5     ENTRY QCUPDATE
    6     COMPILE QCFORMAT
    7     ENTRY QCFORMAT
    8     CONTROL SEGMENT=SEG1
    9     COMPILE QCUSER
   10     ENTRY QCUSER
   11     CONTROL SEGMENT=SEG2
   12     COMPILE QCSCREEN
   13     ENTRY QCSCREEN
   14     COMPILE QCCELL
   15     ENTRY QCCELL
   16     COMPILE QCOBNAME
   17     ENTRY QCOBNAME
   18     COMPILE QCGRSIZE
   19     ENTRY QCGRSIZE
   20     CONTROL SEGMENT=SEG3
   21     COMPILE QCSYNTAX
   22     ENTRY QCSYNTAX
   23     CONTROL SEGMENT=SEG4
   24     COMPILE QCCOMMA
   25     ENTRY QCCOMMA
   26     CONTROL SEGMENT=SEG5
   27     COMPILE QCSCINPT
   28     ENTRY QCSCINPT
   29     COMPILE QCCOMMB
   30     ENTRY QCCOMMB
   31     CONTROL SEGMENT=SEG6
   32     COMPILE QCCOMMC
   33     ENTRY QCCOMMC
   34     CONTROL SEGMENT=SEG7
   35     COMPILE QCCOMMD
   36     ENTRY QCCOMMD
   37     COMPILE QCPRTROW
   38     ENTRY QCPRTROW
   39     CONTROL SEGMENT=SEG8
   40     COMPILE QCCOMME
   41     ENTRY QCCOMME
   42     COMPILE QCCOMMF
   43 ....

The UDC command to launch this mass compile is relatively simple:

   12     **
   13     COMPQC FNAME=QCALCTST
   14     RUN TOTLCOMX
   15     PURGE !FNAME,TEMP
   16     PURGE !FNAME
   17     PURGE USLF
   18     FILE USLF,NEW;SAVE;DISC=8000
   19     BASICOMP CALCCOMP,*USLF
   20     PREP USLF,!FNAME;MAXDATA=31100;RL=QCRL;CAP=IA,BA,PH,PM
   21     SAVE !FNAME
   22     RELEASE !FNAME
   23     **

Similar structures have been put together to also perform partial compiles --
as well as mass compiles that automatically FCOPY the end result directly into
the production and distribution accounts.

While the details will obviously vary for you, I'm sure the same technique
will work just fine in your situation. The technique above costs nothing to
implement -- and it's proven itself to be very robust. We've been using it for
15 years now.

Moreover, these few steps have proven themselves to be very flexible. Whenever
we want to change the basic segmentation structure of QueryCalc or add or
delete programs from QC, all we have to do is edit the SEGMENTS flat file and
launch a new COMPQC compile at the colon prompt.

Wirt Atmar

ATOM RSS1 RSS2