Skip to content

Commit c20a2b5

Browse files
authored
Merge pull request #140 from IBM/fix/lookup_for_binding_directory
Change binding directory references and update documentation
2 parents 64091b5 + f1854f3 commit c20a2b5

File tree

9 files changed

+23
-16
lines changed

9 files changed

+23
-16
lines changed

cli/src/builders/environment.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export function getDefaultCompiles(): CompileAttribute {
8686
entmod: `$*`,
8787
module: `*MODULES`,
8888
tgtrls: `*CURRENT`,
89-
bnddir: `$(BNDDIR)`,
89+
bnddir: `$(APP_BNDDIR)`,
9090
actgrp: `*NEW`
9191
}
9292
},
@@ -100,7 +100,7 @@ export function getDefaultCompiles(): CompileAttribute {
100100
dbgview: `*SOURCE`,
101101
tgtrls: `*CURRENT`,
102102
tgtccsid: `*JOB`,
103-
bnddir: `$(BNDDIR)`,
103+
bnddir: `$(APP_BNDDIR)`,
104104
dftactgrp: `*NO`
105105
}
106106
},
@@ -114,7 +114,7 @@ export function getDefaultCompiles(): CompileAttribute {
114114
dbgview: `*SOURCE`,
115115
option: `*EVENTF`,
116116
rpgppopt: `*LVL2`,
117-
compileopt: `TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*no)`
117+
compileopt: `TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*no)`
118118
}
119119
},
120120
"rpgle": {
@@ -226,7 +226,7 @@ export function getDefaultCompiles(): CompileAttribute {
226226
srvpgm: `$(BIN_LIB)/$*`,
227227
module: `*MODULES`,
228228
srcstmf: `'$<'`,
229-
bnddir: `$(BNDDIR)`
229+
bnddir: `$(APP_BNDDIR)`
230230
},
231231
postCommands: [
232232
`-system -q "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(APP_BNDDIR)) OBJ((*LIBL/$* *SRVPGM *IMMED))"`

cli/test/cs_srvpgm.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ describe(`pseudo tests`, () => {
8484
const contents = makefile.getMakefile().join(`\n`);
8585

8686
expect(contents).toContain(`$(PREPATH)/EMPLOYEES.PGM:`);
87-
expect(contents).toContain(`system "CRTPGM PGM($(BIN_LIB)/EMPLOYEES) ENTMOD(EMPLOYEES) MODULE(EMPDET EMPLOYEES) TGTRLS(*CURRENT) BNDDIR($(BNDDIR)) ACTGRP(*NEW)" > .logs/employees.splf`);
87+
expect(contents).toContain(`system "CRTPGM PGM($(BIN_LIB)/EMPLOYEES) ENTMOD(EMPLOYEES) MODULE(EMPDET EMPLOYEES) TGTRLS(*CURRENT) BNDDIR($(APP_BNDDIR)) ACTGRP(*NEW)" > .logs/employees.splf`);
8888

8989
expect(contents).not.toContain(`EMPDET.SRVPGM`); // Ensure no service program is created
9090
expect(contents).toContain(`EMPDET.MODULE`);

cli/test/cs_with_bnddir.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ describe(`pseudo tests`, () => {
6565
expect(contents).toContain(`BNDDIR=($(BIN_LIB)/$(APP_BNDDIR))\n`);
6666

6767
expect(contents).toContain(`$(PREPATH)/EMPLOYEES.PGM: $(PREPATH)/EMPLOYEE.FILE $(PREPATH)/EMPS.FILE $(PREPATH)/EMPDET.SRVPGM`);
68-
expect(contents).toContain(`system "CRTSQLRPGI OBJ($(BIN_LIB)/EMPLOYEES) SRCSTMF('qrpglesrc/employees.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*no)')"`);
68+
expect(contents).toContain(`system "CRTSQLRPGI OBJ($(BIN_LIB)/EMPLOYEES) SRCSTMF('qrpglesrc/employees.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*no)')"`);
6969

7070
expect(contents).toContain(`$(PREPATH)/APP.BNDDIR: $(PREPATH)/EMPDET.SRVPGM`);
7171
expect(contents).toContain(`$(PREPATH)/EMPDET.SRVPGM: $(PREPATH)/EMPDET.MODULE`);

cli/test/make.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ test(`Multi-module program and service program`, async () => {
153153
'$(PREPATH)/MYWEBAPP.PGM: ',
154154
'\tliblist -c $(BIN_LIB);\\',
155155
'\tliblist -a $(LIBL);\\',
156-
'\tsystem "CRTPGM PGM($(BIN_LIB)/MYWEBAPP) ENTMOD(MYWEBAPP) MODULE(HANDLERA HANDLERB MYWEBAPP) TGTRLS(*CURRENT) BNDDIR($(BNDDIR)) ACTGRP(*NEW)" > .logs/mywebapp.splf'
156+
'\tsystem "CRTPGM PGM($(BIN_LIB)/MYWEBAPP) ENTMOD(MYWEBAPP) MODULE(HANDLERA HANDLERB MYWEBAPP) TGTRLS(*CURRENT) BNDDIR($(APP_BNDDIR)) ACTGRP(*NEW)" > .logs/mywebapp.splf'
157157
].join());
158158

159159
const webappMod = targets.getTarget({systemName: `MYWEBAPP`, type: `MODULE`});
@@ -178,7 +178,7 @@ test(`Multi-module program and service program`, async () => {
178178
'\t-system "DLTOBJ OBJ($(BIN_LIB)/UTILS) OBJTYPE(*SRVPGM)"',
179179
'\tliblist -c $(BIN_LIB);\\',
180180
'\tliblist -a $(LIBL);\\',
181-
`\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/UTILS) MODULE(JWTHANDLER VALIDATE) SRCSTMF('qsrvsrc/utils.binder') BNDDIR($(BNDDIR))" > .logs/utils.splf`,
181+
`\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/UTILS) MODULE(JWTHANDLER VALIDATE) SRCSTMF('qsrvsrc/utils.binder') BNDDIR($(APP_BNDDIR))" > .logs/utils.splf`,
182182
'\t-system -q "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(APP_BNDDIR)) OBJ((*LIBL/UTILS *SRVPGM *IMMED))"'
183183
].join());
184184
})

cli/test/multiModule2.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ describe(`multi_module_two tests`, () => {
6666
expect(runnerDepsString).toContain(`$(PREPATH)/RUNNER.MODULE`);
6767
expect(runnerDepsString).toContain(`$(PREPATH)/DATA.MODULE`);
6868

69-
expect(targetContent).toContain(`\tsystem "CRTPGM PGM($(BIN_LIB)/RUNNER) ENTMOD(RUNNER) MODULE(DB RUNNER DATA) TGTRLS(*CURRENT) BNDDIR($(BNDDIR)) ACTGRP(*NEW)" > .logs/runner.splf`);
69+
expect(targetContent).toContain(`\tsystem "CRTPGM PGM($(BIN_LIB)/RUNNER) ENTMOD(RUNNER) MODULE(DB RUNNER DATA) TGTRLS(*CURRENT) BNDDIR($(APP_BNDDIR)) ACTGRP(*NEW)" > .logs/runner.splf`);
7070
expect(targetContent).toContain(`$(PREPATH)/RUNNER.MODULE: rpgle/runner.pgm.rpgle`);
7171
});
7272
});

cli/test/project.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ describe(`company_system tests`, () => {
203203
'\tliblist -c $(BIN_LIB);\\',
204204
'\tliblist -a $(LIBL);\\',
205205
[
206-
`\tsystem "CRTBNDRPG PGM($(BIN_LIB)/MYPGM) SRCSTMF('qrpglesrc/mypgm.pgm.rpgle') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*NO)" > .logs/mypgm.splf || \\`,
206+
`\tsystem "CRTBNDRPG PGM($(BIN_LIB)/MYPGM) SRCSTMF('qrpglesrc/mypgm.pgm.rpgle') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*NO)" > .logs/mypgm.splf || \\`,
207207
`\t(system "CPYTOSTMF FROMMBR(\'$(PREPATH)/EVFEVENT.FILE/MYPGM.MBR\') TOSTMF(\'.evfevent/mypgm.evfevent\') DBFCCSID(*FILE) STMFCCSID(1208) STMFOPT(*REPLACE)"; $(SHELL) -c 'exit 1')`,
208208
].join('\n')
209209
].join());
@@ -218,7 +218,7 @@ describe(`company_system tests`, () => {
218218
'\tliblist -c $(BIN_LIB);\\',
219219
'\tliblist -a $(LIBL);\\',
220220
[
221-
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/DEPTS) SRCSTMF('qrpglesrc/depts.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*no)')" > .logs/depts.splf || \\`,
221+
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/DEPTS) SRCSTMF('qrpglesrc/depts.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*no)')" > .logs/depts.splf || \\`,
222222
`\t(system "CPYTOSTMF FROMMBR('$(PREPATH)/EVFEVENT.FILE/DEPTS.MBR') TOSTMF('.evfevent/depts.evfevent') DBFCCSID(*FILE) STMFCCSID(1208) STMFOPT(*REPLACE)"; $(SHELL) -c 'exit 1')`,
223223
].join('\n')
224224
].join());
@@ -266,7 +266,7 @@ describe(`company_system tests`, () => {
266266
'\t-system "DLTOBJ OBJ($(BIN_LIB)/BANKING) OBJTYPE(*SRVPGM)"',
267267
'\tliblist -c $(BIN_LIB);\\',
268268
'\tliblist -a $(LIBL);\\',
269-
'\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/BANKING) MODULE(BANKING) SRCSTMF(\'qsrvsrc/banking.bnd\') BNDDIR($(BNDDIR))" > .logs/banking.splf',
269+
'\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/BANKING) MODULE(BANKING) SRCSTMF(\'qsrvsrc/banking.bnd\') BNDDIR($(APP_BNDDIR))" > .logs/banking.splf',
270270
'\t-system -q "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(APP_BNDDIR)) OBJ((*LIBL/BANKING *SRVPGM *IMMED))"',
271271
].join());
272272
});

cli/test/project2.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ describe(`company_system tests`, () => {
200200
'\tliblist -c $(BIN_LIB);\\',
201201
'\tliblist -a $(LIBL);\\',
202202
[
203-
`\tsystem "CRTBNDRPG PGM($(BIN_LIB)/MYPGM) SRCSTMF('qrpglesrc/mypgm.rpgle') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*NO)" > .logs/mypgm.splf || \\`,
203+
`\tsystem "CRTBNDRPG PGM($(BIN_LIB)/MYPGM) SRCSTMF('qrpglesrc/mypgm.rpgle') OPTION(*EVENTF) DBGVIEW(*SOURCE) TGTRLS(*CURRENT) TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*NO)" > .logs/mypgm.splf || \\`,
204204
`\t(system "CPYTOSTMF FROMMBR(\'$(PREPATH)/EVFEVENT.FILE/MYPGM.MBR\') TOSTMF(\'.evfevent/mypgm.evfevent\') DBFCCSID(*FILE) STMFCCSID(1208) STMFOPT(*REPLACE)"; $(SHELL) -c 'exit 1')`,
205205
].join('\n')
206206
].join());
@@ -215,7 +215,7 @@ describe(`company_system tests`, () => {
215215
'\tliblist -c $(BIN_LIB);\\',
216216
'\tliblist -a $(LIBL);\\',
217217
[
218-
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/DEPTS) SRCSTMF('qrpglesrc/depts.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(BNDDIR)) DFTACTGRP(*no)')" > .logs/depts.splf || \\`,
218+
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/DEPTS) SRCSTMF('qrpglesrc/depts.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(*JOB) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*no)')" > .logs/depts.splf || \\`,
219219
`\t(system "CPYTOSTMF FROMMBR('$(PREPATH)/EVFEVENT.FILE/DEPTS.MBR') TOSTMF('.evfevent/depts.evfevent') DBFCCSID(*FILE) STMFCCSID(1208) STMFOPT(*REPLACE)"; $(SHELL) -c 'exit 1')`,
220220
].join('\n')
221221
].join());
@@ -263,7 +263,7 @@ describe(`company_system tests`, () => {
263263
'\t-system "DLTOBJ OBJ($(BIN_LIB)/BANKING) OBJTYPE(*SRVPGM)"',
264264
'\tliblist -c $(BIN_LIB);\\',
265265
'\tliblist -a $(LIBL);\\',
266-
'\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/BANKING) MODULE(BANKING) SRCSTMF(\'qsrvsrc/banking.bnd\') BNDDIR($(BNDDIR))" > .logs/banking.splf',
266+
'\tsystem "CRTSRVPGM SRVPGM($(BIN_LIB)/BANKING) MODULE(BANKING) SRCSTMF(\'qsrvsrc/banking.bnd\') BNDDIR($(APP_BNDDIR))" > .logs/banking.splf',
267267
'\t-system -q "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(APP_BNDDIR)) OBJ((*LIBL/BANKING *SRVPGM *IMMED))"',
268268
].join());
269269
});

cli/test/pseudo.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ describe(`pseudo tests`, () => {
6464
const testerProgram = makefile.findIndex(l => l.startsWith(`$(PREPATH)/OTHER.PGM: qrpglesrc/other.pgm.sqlrpgle`));
6565
expect(testerProgram).toBeGreaterThan(-1);
6666
expect(makefile[testerProgram + 3]).toBe([
67-
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/OTHER) SRCSTMF('qrpglesrc/other.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(273) BNDDIR($(BNDDIR)) DFTACTGRP(*no)')" > .logs/other.splf || \\`,
67+
`\tsystem "CRTSQLRPGI OBJ($(BIN_LIB)/OTHER) SRCSTMF('qrpglesrc/other.pgm.sqlrpgle') COMMIT(*NONE) DBGVIEW(*SOURCE) OPTION(*EVENTF) RPGPPOPT(*LVL2) COMPILEOPT('TGTCCSID(273) BNDDIR($(APP_BNDDIR)) DFTACTGRP(*no)')" > .logs/other.splf || \\`,
6868
`\t(system "CPYTOSTMF FROMMBR('$(PREPATH)/EVFEVENT.FILE/OTHER.MBR') TOSTMF('.evfevent/other.evfevent') DBFCCSID(*FILE) STMFCCSID(1208) STMFOPT(*REPLACE)"; $(SHELL) -c 'exit 1')`
6969
].join('\n'));
7070
});

docs/pages/cli/make.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ Next, assume that we want to do a incremental build of `ORD501.PGM`, which has
2424

2525
So that means that 4 objects are going to be rebuilt. Usually, parents always need to be rebuilt to ensure level checking happens. Sometimes, we don't want to rebuild the children because they haven't changed (and can depend on the library list to find the existing objects). **You can use option `-nc` to ensure no target children get built** as part of the make file.
2626

27+
### General rule for builds
28+
29+
To ensure library lists are supported correctly, the following rules are recommended:
30+
31+
* When building an object, always use the qualified name of the object being built.
32+
* When referenceing an object, always use the unqualified name of the object so that the library list can be used to find the object.
33+
2734
### When is a incremental build right?
2835

2936
It is always recommended to do a incremental build when working in a new branch. Ensure that you have a library of objects from a previous full build on the library list.

0 commit comments

Comments
 (0)