Open ScottA678 opened 11 months ago
First I wonder what the 3 asterisks are after the service program name. Removing them may fix the issue. Another comment would be if this line: MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM*** really take two lines in you recipe, then it needs a continuation after the .../QTCP.LIB. so the line might look like this: MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | \ /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM
The 3 asterisks are a typo left when I applied bold to the line. That line is a single line in the recipe, it runs onto 2 lines in the first comment Here it is as a code block:
# MM00200.PGM -- CRTPGM
MM00200.PGM: private TEXT = SNDMIMEF - Send MIME Email processor program
MM00200.PGM: private STGMDL = *SNGLVL
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM
Hmm I have not tried an absolutely qualified SRVPGM like that. Is it an option to add QTCP into the postUsrLibl of the project? Then that library will be searched for the QTMMSNDM SRVPGM
I added the library and changed the recipe:
"setIBMiEnvCmd": [
"CHGLIBL (QTEMP BLD_XP BLD_XPDB QGPL QTCP) CURLIB(*SAME)]"
MM00200.PGM: private STGMDL = *SNGLVL
MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | QTMMSNDM.SRVPGM
Now QTMMSNDM is being built:
make: *** No rule to make target 'QTMMSNDM.SRVPGM', needed by 'MM00200.PGM'.
make: Target 'MM00200.PGM' not remade because of errors.
OK, some progress then. I was wondering why you have the pipe | symbol beofre the QTMMSNDM.SRVPGM? So what library is QTMMSNDM supposed to be found in? What is the value of CURLIB? So where are you specifying this CHGLIBL command? For the environment of the BOB build, it is the settings in iproj.json that determine that. For example you could put in
"curlib": "BLD_XP",
"preUsrlibl": [
"BLD_XPDB"
],
I updated the previous comment to show where CHGLIBL is defined. The setIBMiEnvCmd is in iproj.json I am using this as an alternative to using preUsrLibl and postUserLibl. I prefer the library list to be explicitly defined for every build, rather than massage the user library list.
QTMMSNDM is in library QTCP, the pipe symbol defines it as a dependent service program that is not part of the current project, but must exist for the build to complete.
It may be that we have not yet encountered the | option and we have to do some more work to support it. Thanks for bringing it to our attention
Recipe includes an order-only-prerequisite for QTMMSNDM: MM00200.PGM -- CRTPGM MM00200.PGM: private TEXT = SNDMIMEF - Send MIME Email processor program MM00200.PGM: private STGMDL = *SNGLVL MM00200.PGM: MM00200.MODULE STRING_X.SRVPGM TRANSLATE.SRVPGM ER00100.SRVPGM | /QSYS.LIB/QTCP.LIB/QTMMSNDM.SRVPGM****
Message indicates QTMMSNDM will be included: === Creating program [MM00200] from modules [MM00200] and service programs [STRING_X TRANSLATE QTMMSNDM]
CRTPGM listing does not include QTMMSNDM Module Library Module Library Module Library Module Library MM00200 LIBL Service Service Service Program Library Activation Program Library Activation Program Library Activation STRING_X LIBL IMMED ER00100 LIBL IMMED TRANSLATE LIBL *IMMED
Compile fails with an unresolved reference: Unresolved references . . . . . . . . . . . . : 1 Symbol Type Library Object Bound Identifier 0000001A MODULE BLD_XP MM00200 YES QtmmSendMail