Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6725 | siemargl | 1 | /* MAKECPIP EXEC Make program to build a C/370 module */ |
2 | /* Author: George Petrov, 29 Sep 1994 */ |
||
3 | |||
4 | arg fn . '(' cparms /* Filter name */ |
||
5 | 'pipe (end ?) < 'fn' makefile', /* get all source files from */ |
||
6 | '| frlab GLOBALS:'||, |
||
7 | '| drop', |
||
8 | '| strip', |
||
9 | '| var globals' |
||
10 | cparms = cparms globals |
||
11 | say '' |
||
12 | say 'Compile options : 'cparms |
||
13 | say '' |
||
14 | if pos('REB',cparms) > 0 then do |
||
15 | parse var cparms cp1 'REB' . ' ' cp2 /* REBuild options specified ? */ |
||
16 | cparms = cp1||cp2 |
||
17 | pipe1=, |
||
18 | 'pipe (end ?) < 'fn' makefile', /* get all source files from */ |
||
19 | '| nfind *'||, /* the makefile and compile */ |
||
20 | '| frlab TEXT:'||, /* only the those who are */ |
||
21 | '| r: tolab MODULE:'||, /* changed or never compiled */ |
||
22 | '| drop', |
||
23 | '| o: fanout', |
||
24 | '| chop before str /(/', |
||
25 | '| statew', |
||
26 | '| c: fanout', /* compiled */ |
||
27 | '| specs /Compiling / 1 w1-3 n / .../ n', |
||
28 | '| cons' |
||
29 | end |
||
30 | else do |
||
31 | pipe1=, |
||
32 | 'pipe (end ?) < 'fn' makefile', /* get all source files from */ |
||
33 | '| nfind *'||, /* the makefile and compile */ |
||
34 | '| frlab TEXT:'||, /* only the those who are */ |
||
35 | '| r: tolab MODULE:'||, /* changed or never compiled */ |
||
36 | '| drop', |
||
37 | '| o: fanout', |
||
38 | '| specs w1 1 /C/ nw w3 nw write w1 1 /TEXT A/ nw', |
||
39 | '| chop before str /(/', |
||
40 | '| statew', |
||
41 | '| change (57 66) / /0/', |
||
42 | '| sort 1.8 d', /* sort the date and time */ |
||
43 | '| uniq 1-17 singles', /* if the first is a source */ |
||
44 | '| sort 1.8 d 64.2 d 57.2 d 60.2 d 66.8 d', /* sort the date */ |
||
45 | '| uniq 1-8 first', /* if the first is a source */ |
||
46 | '| locate 9.8 /C /', /* program then it has to be */ |
||
47 | '| c: fanout', /* compiled */ |
||
48 | '| specs /Compiling / 1 w1-3 n / .../ n', |
||
49 | '| cons' |
||
50 | end |
||
51 | pipe2= '?', |
||
52 | 'r:', |
||
53 | '| drop', |
||
54 | '| specs w1 1', /* save the module name in var */ |
||
55 | '| var module', |
||
56 | '?', |
||
57 | 'o:', |
||
58 | '| specs w1 1', |
||
59 | '| join * / /', |
||
60 | '| var texts', /* save all the text file names */ |
||
61 | '?', /* for later include */ |
||
62 | 'c:', |
||
63 | '| specs /CC / 1 w1-3 n /(NOTERM 'cparms'/ nw', /* compile! */ |
||
64 | '| err: cms | cons', |
||
65 | '?', |
||
66 | 'err:', |
||
67 | '| nfind 0'||, |
||
68 | '| var err', |
||
69 | '| specs /----> Errors found! RC=/ 1 1-* n', |
||
70 | '| cons' |
||
71 | /* '| g: gate'*/ |
||
72 | pipe1 pipe2 |
||
73 | say '' |
||
74 | if symbol('err') = 'VAR' & err ^= 0 then do |
||
75 | say 'Errors found in source files - link aborted! RC = 'err |
||
76 | exit err |
||
77 | end |
||
78 | say 'Generating module 'module |
||
79 | 'pipe cms cmod' fn texts' | > 'fn' LINK A' |
||
80 | exit rc |
||
81 | error: |
||
82 | say 'Error in REXX detected!' |
||
83 | Say 'Syntax error on line' Sigl':' Sourceline(Sigl) |
||
84 | Say 'Error was:' Errortext(RC) |
||
85 | return rc>>> |