summaryrefslogtreecommitdiff
path: root/cmsmvs/mc.exec
diff options
context:
space:
mode:
Diffstat (limited to 'cmsmvs/mc.exec')
-rw-r--r--cmsmvs/mc.exec95
1 files changed, 95 insertions, 0 deletions
diff --git a/cmsmvs/mc.exec b/cmsmvs/mc.exec
new file mode 100644
index 0000000..ca22a18
--- /dev/null
+++ b/cmsmvs/mc.exec
@@ -0,0 +1,95 @@
+/* MAKECPIP EXEC Make program to build a C/370 module */
+/* Author: George Petrov, 29 Sep 1994 */
+
+arg fn . '(' cparms /* Filter name */
+'pipe (end ?) < 'fn' makefile', /* get all source files from */
+ '| frlab GLOBALS:'||,
+ '| drop',
+ '| strip',
+ '| var globals'
+cparms = cparms globals
+say ''
+say 'Compile options : 'cparms
+say ''
+if pos('REB',cparms) > 0 then do
+parse var cparms cp1 'REB' . ' ' cp2 /* REBuild options specified ? */
+cparms = cp1||cp2
+pipe1=,
+'pipe (end ?) < 'fn' makefile', /* get all source files from */
+ '| nfind *'||, /* the makefile and compile */
+ '| frlab TEXT:'||, /* only the those who are */
+ '| r: tolab MODULE:'||, /* changed or never compiled */
+ '| drop',
+ '| o: fanout',
+ '| chop before str /(/',
+ '| statew',
+ '| c: fanout', /* compiled */
+ '| specs /Compiling / 1 w1-3 n / .../ n',
+ '| cons'
+end
+else do
+pipe1=,
+'pipe (end ?) < 'fn' makefile', /* get all source files from */
+ '| nfind *'||, /* the makefile and compile */
+ '| frlab TEXT:'||, /* only the those who are */
+ '| r: tolab MODULE:'||, /* changed or never compiled */
+ '| drop',
+ '| o: fanout',
+ '| specs w1 1 /C/ nw w3 nw write w1 1 /TEXT A/ nw',
+ '| chop before str /(/',
+ '| statew',
+ '| change (57 66) / /0/',
+ '| sort 1.8 d', /* sort the date and time */
+ '| uniq 1-17 singles', /* if the first is a source */
+ '| sort 1.8 d 64.2 d 57.2 d 60.2 d 66.8 d', /* sort the date */
+ '| uniq 1-8 first', /* if the first is a source */
+ '| locate 9.8 /C /', /* program then it has to be */
+ '| c: fanout', /* compiled */
+ '| specs /Compiling / 1 w1-3 n / .../ n',
+ '| cons'
+end
+pipe2= '?',
+ 'r:',
+ '| drop',
+ '| specs w1 1', /* save the module name in var */
+ '| var module',
+ '?',
+ 'o:',
+ '| specs w1 1',
+ '| join * / /',
+ '| var texts', /* save all the text file names */
+ '?', /* for later include */
+ 'c:',
+ '| specs /CC / 1 w1-3 n /(NOTERM 'cparms'/ nw', /* compile! */
+ '| err: cms | cons',
+ '?',
+ 'err:',
+ '| strip both',
+ '| nfind 0'||,
+ '| var err',
+ '| specs /----> Errors found! RC=/ 1 1-* n',
+ '| cons'
+/* '| g: gate'*/
+pipe1 pipe2
+say ''
+if symbol('err') = 'VAR' & err ^= 0 then do
+ say 'Errors found in source files - link aborted! RC = 'err
+ exit err
+end
+say 'Generating module 'module
+'pipe cms cmod' fn texts' DMSCSL | > 'fn' LINK A'
+'set cmstype ht'
+'state 'fn' LINK A'
+rcc = rc
+'set cmstype rt'
+if rcc = 0 then do
+ say ''
+ say 'ERRORS discovered during linking!'
+ say 'See: 'fn' LINK A for more info'
+end
+exit rc
+error:
+say 'Error in REXX detected!'
+Say 'Syntax error on line' Sigl':' Sourceline(Sigl)
+Say 'Error was:' Errortext(RC)
+return rc