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
|