Skip to content

Commit

Permalink
Merge pull request #142 from IBM/fix/issue141
Browse files Browse the repository at this point in the history
Fix/issue141
  • Loading branch information
edmundreinhardt authored Oct 14, 2022
2 parents 9926e59 + d6b5632 commit 5ad8a25
Show file tree
Hide file tree
Showing 8 changed files with 167 additions and 32 deletions.
1 change: 1 addition & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PYTHONPATH=makei
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,6 @@ Temporary Items
# python
# Byte-compiled / optimized / DLL files
__pycache__/
.pytest_cache/
*.py[cod]
*$py.class
11 changes: 9 additions & 2 deletions makei/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,20 +100,27 @@ def map_ibmi_json_var(path):

list(map(map_ibmi_json_var, subdirs))

# set build env variables based on iproj.json
# if not include_path specified just use INCDIR(*NONE)
# otherwise use INCDIR('dir1' 'dir2')
incdir ='*NONE';
includePath = self.iproj_json.include_path;
if len(includePath):
incdir='\''+'\' \''.join(includePath)+'\''
with target_file_path.open("w", encoding="utf8") as file:
file.write('\n'.join(["# This file is generated by makei, DO NOT EDIT.",
"# Modify .ibmi.json to override values",
"",
f"curlib := {self.iproj_json.curlib}",
f"preUsrlibl := {' '.join(self.iproj_json.pre_usr_libl)}",
f"postUsrlibl := {' '.join(self.iproj_json.post_usr_libl)}",
f"INCDIR := {' '.join(self.iproj_json.include_path)}",
f"INCDIR := {incdir}",
f"unquotedINCDIR := {' '.join(includePath)}",
f"IBMiEnvCmd := {self.ibmi_env_cmds}",
f"COLOR_TTY := {'true' if self.color else 'false'}",
"",
"",
]))

for subdir in subdirs:
# print(dir_var_map[subdir].build)
file.write(
Expand Down
7 changes: 6 additions & 1 deletion makei/crtfrmstmf.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from datetime import datetime
sys.path.append(str(Path(__file__).resolve().parent.parent)) # nopep8
from makei.ibm_job import IBMJob, save_joblog_json # nopep8
from makei.utils import format_datetime, objlib_to_path, validate_ccsid # nopep8
from makei.utils import format_datetime, objlib_to_path, validate_ccsid, makeIncludeDirsAbsolute # nopep8


COMMAND_MAP = {'CRTCMD': 'CMD',
Expand Down Expand Up @@ -76,6 +76,11 @@ def __init__(self, srcstmf: str, obj: str, lib: str, cmd: str, tgtCcsid: Optiona
self.back_up_obj_list = [(self.obj, self.lib, self.obj_type)]
else:
self.back_up_obj_list = []
# Need project path for include resolution
# prepend project path to every directory in INCDIR in compile parameters
if (joblog_path and parameters):
parameters = makeIncludeDirsAbsolute(joblog_path, parameters)
self.parameters = parameters

def run(self):
success = False
Expand Down
43 changes: 43 additions & 0 deletions makei/tests/test_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from utils import makeIncludeDirsAbsolute

def test_sanity():
path = '/a/b/.logs/joblog.json'
parameters = " some stuff at the begginning aINCDIR ('PARAM1' 'PARAM2' ''PARAM3'' 'PARAM4' )and some stuff after "
expected = " some stuff at the begginning aINCDIR ('/a/b/PARAM1' '/a/b/PARAM2' ''/a/b/PARAM3'' '/a/b/PARAM4')and some stuff after "
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_empty_params():
path = '/a/b/.logs/joblog.json'
parameters = " INCDIR ('' '''')"
expected = " INCDIR ('/a/b/' ''/a/b/'')"
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_longer_job_log_path():
path = '/a/b/cd/efg/hijklmnop/.logs/joblog.json'
parameters = " INCDIR( 'dir1' ''dir2'')"
expected = " INCDIR('/a/b/cd/efg/hijklmnop/dir1' ''/a/b/cd/efg/hijklmnop/dir2'')"
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_doesnt_modify_absolute_path():
path = '/a/b/cd/efg/hijklmnop/.logs/joblog.json'
parameters = " INCDIR( '/a/b/dir1' ''dir2'')"
expected = " INCDIR('/a/b/dir1' ''/a/b/cd/efg/hijklmnop/dir2'')"
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_doesnt_modify_absolute_path_with_double_quotes():
path = '/a/b/cd/efg/hijklmnop/.logs/joblog.json'
parameters = " INCDIR( ''/a/b/dir1'' ''dir2'')"
expected = " INCDIR(''/a/b/dir1'' ''/a/b/cd/efg/hijklmnop/dir2'')"
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_no_preceding_path_before_logs():
path = '/.logs/joblog.json'
parameters = " INCDIR('dir2')"
expected = " INCDIR('/dir2')"
assert makeIncludeDirsAbsolute(path, parameters) == expected

def test_joblob_not_found():
path = '/a/b/cd/efg/hijklmnop/.logs/joblogs.json'
parameters = " INCDIR( ''/a/b/dir1'' ''dir2'')"
expected = " INCDIR(''/a/b/dir1'' ''dir2'')"
assert makeIncludeDirsAbsolute(path, parameters) == expected
79 changes: 75 additions & 4 deletions makei/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,17 +262,21 @@ def get_target_from_filename(filename: str) -> str:
"""Returns the target from the filename
"""
name, _, ext, _ = decompose_filename(filename)
return f'{name}.{FILE_TARGET_MAPPING[ext]}'
return f'{name.upper()}.{FILE_TARGET_MAPPING[ext]}'

def get_compile_targets_from_filenames(filenames: List[str]) -> List[str]:
""" Returns the possible target name for the given filename
>>> get_compile_targets_from_filenames(["test.PGM.RPGLE"])
['test.PGM']
['TEST.PGM']
>>> get_compile_targets_from_filenames(["test.pgm.rpgle"])
['TEST.PGM']
>>> get_compile_targets_from_filenames(["test.RPGLE"])
['test.MODULE']
['TEST.MODULE']
>>> get_compile_targets_from_filenames(["vat300.rpgle"])
['VAT300.MODULE']
>>> get_compile_targets_from_filenames(["functionsVAT/VAT300.RPGLE", "test.RPGLE"])
['VAT300.MODULE', 'test.MODULE']
['VAT300.MODULE', 'TEST.MODULE']
>>> get_compile_targets_from_filenames(["ART200-Work_with_article.PGM.SQLRPGLE", "SGSMSGF.MSGF"])
['ART200.PGM', 'SGSMSGF.MSGF']
"""
Expand Down Expand Up @@ -300,6 +304,73 @@ def replace_file_content(file_path: Path, replace: Callable[[str], str]):
#Move new file
move(abs_path, file_path)

def makeIncludeDirsAbsolute(jobLogPath: str, parameters: str ):
"""
Return modified parameters with absolute dirs if it includes INCDIR
joblog_path is the full qualified path to the joblog.json.
Assumed that the joblog.json path is of the form
'</project path>/.logs/joblog.json'
parameters is a string containing all parameters to the compile command
may contain a substring of the form INCDIR('dir' 'dir2')
return: the same parameters string with the INCDIR replaced
to INCDIR('<project path>/dir' '<project path>/dir2')
Note it is possible to have INCDIR(''dir1'' ''dir2'')
>>> makeIncludeDirsAbsolute('/a/b/.logs/joblog.json', " PARM1( beginning)INCDIR ('PARAM1' 'PARAM2' ''PARAM3'' 'PARAM4' )parm2( after ) ")
" PARM1( beginning)INCDIR ('/a/b/PARAM1' '/a/b/PARAM2' ''/a/b/PARAM3'' '/a/b/PARAM4')parm2( after ) "
>>> makeIncludeDirsAbsolute('/a/b/.logs/joblog.json', "INCDIR ('' '''')")
"INCDIR ('/a/b/' ''/a/b/'')"
>>> makeIncludeDirsAbsolute('/a/b/cd/efg/hijklmnop/.logs/joblog.json', " INCDIR( 'dir1' ''dir2'')")
" INCDIR('/a/b/cd/efg/hijklmnop/dir1' ''/a/b/cd/efg/hijklmnop/dir2'')"
>>> makeIncludeDirsAbsolute('/a/b/cd/efg/hijklmnop/.logs/joblog.json', " INCDIR( '/a/b/dir1' ''dir2'')")
" INCDIR('/a/b/dir1' ''/a/b/cd/efg/hijklmnop/dir2'')"
>>> makeIncludeDirsAbsolute('/a/b/cd/efg/hijklmnop/.logs/joblog.json', " INCDIR( ''/a/b/dir1'' ''dir2'')")
" INCDIR(''/a/b/dir1'' ''/a/b/cd/efg/hijklmnop/dir2'')"
>>> makeIncludeDirsAbsolute('/.logs/joblog.json', " INCDIR('dir2')")
" INCDIR('/dir2')"
>>> makeIncludeDirsAbsolute('/a/b/cd/efg/hijklmnop/.logs/joblogs.json', " INCDIR( ''/a/b/dir1'' ''dir2'')")
" INCDIR( ''/a/b/dir1'' ''dir2'')"
>>> makeIncludeDirsAbsolute('/a/b/.logs/joblogs.json', "no include path here")
'no include path here'
>>> makeIncludeDirsAbsolute('/joblogs.json', "no .logs")
'no .logs'
>>> makeIncludeDirsAbsolute('/.logs/joblogs.json', "INCDIR but no paren")
'INCDIR but no paren'
>>> makeIncludeDirsAbsolute('/.logs/joblogs.json', "INCDIR( but no close paren")
'INCDIR( but no close paren'
"""
try:
indexOfJobLogSubstr = jobLogPath.index('.logs/joblog.json')
curDir = jobLogPath[0:indexOfJobLogSubstr]
except:
return parameters

try:
incDirKeyWordIndex = parameters.index('INCDIR')
startOfIncDir = parameters.index('(', incDirKeyWordIndex)
endOfIncDir = parameters.index(')', startOfIncDir)
except:
return parameters

includePath = []
includePathStr = parameters[startOfIncDir + 1: endOfIncDir]
includePath = includePathStr.split()

for i in range(len(includePath)):
relativePath = includePath[i][1] != '/' and not (len(includePath[i]) > 3 and includePath[i][1] == "'" and includePath[i][2] == "/")
enclosedByQuotes = includePath[i][1] == "'" and len(includePath[i]) > 2

if relativePath and curDir:
if enclosedByQuotes:
includePathDir = includePath[i][2:-2]
includePath[i] = "''" + curDir + includePathDir + "''"
else:
includePathDir = includePath[i][1:-1]
includePath[i] = "'" + curDir + includePathDir + "'"

startOfParamString = parameters[0:startOfIncDir + 1]
endOfParamString = parameters[endOfIncDir:]
return startOfParamString + " ".join(includePath) + endOfParamString

if __name__ == "__main__":
import doctest
Expand Down
56 changes: 32 additions & 24 deletions mk/def_rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,6 @@ empty :=
space :=$(empty) $(empty)
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))

# The extractName and extractTextDescriptor are used to decompose the long filename into module name and
# the text descriptor.
# e.g. CUSTOME1-Customer_file.LF has `CUSTOME1` as the module name and `Customer file` as the text descriptor


# The following logs to stdout is parsed and used by the makei program. Check makei.BuildEnv.make before making changes!
define logSuccess =
Expand All @@ -60,6 +56,9 @@ define logFail =
$(call echo_error_cmd,"Failed to create $1!")
endef

# The extractName and extractTextDescriptor are used to decompose the long filename into module name and
# the text descriptor.
# e.g. CUSTOME1-Customer_file.LF has `CUSTOME1` as the module name and `Customer file` as the text descriptor
define extractName =
echo '$(notdir $<)' | awk -F- '{ print $$1 }'
endef
Expand Down Expand Up @@ -90,8 +89,8 @@ endef
# instead of a constant so that all settings are defined in one place, at the top.)
# tl;dr: If you want to customize a compile setting for an object, change these variables
# in your TARGET (not here).
ACTGRP :=
AUT :=
ACTGRP :=
AUT :=
BNDDIR :=
COMMIT := *NONE
CURLIB :=
Expand Down Expand Up @@ -128,16 +127,18 @@ BNDCL_ACTGRP := $(ACTGRP)
BNDCL_AUT := $(AUT)
BNDCL_DBGVIEW := $(DBGVIEW)
BNDCL_DFTACTGRP := $(DFTACTGRP)
BNDCL_INCDIR := $(INCDIR)
BNDCL_OPTION := $(OPTION)
BNDCL_TGTRLS := $(TGTRLS)

BNDRPG_ACTGRP := $(ACTGRP)
BNDRPG_AUT := $(AUT)
BNDRPG_DBGVIEW := $(DBGVIEW)
BNDRPG_DFTACTGRP := $(DFTACTGRP)
BNDRPG_INCDIR := $(INCDIR)
BNDRPG_OPTION := $(OPTION)
BNDRPG_TGTRLS := $(TGTRLS)
BNDRPG_INCDIR := $(INCDIR)


CMD_AUT := $(AUT)
CMD_HLPID = $(basename $@)
Expand Down Expand Up @@ -250,10 +251,10 @@ SRVPGM_TGTRLS := $(TGTRLS)
WSCST_AUT := $(AUT)

# Creation command parameters with variables (the ones listed at the top) for the most common ones.
CRTCLMODFLAGS = AUT($(AUT)) DBGVIEW($(DBGVIEW)) OPTION($(OPTION)) TEXT('$(TEXT)') TGTRLS($(TGTRLS)) INCDIR('$(INCDIR)')
CRTCLMODFLAGS = AUT($(AUT)) DBGVIEW($(DBGVIEW)) OPTION($(OPTION)) TEXT('$(TEXT)') TGTRLS($(TGTRLS)) INCDIR($(INCDIR))
CRTCMDFLAGS = PGM($(PGM)) VLDCKR($(VLDCKR)) PMTFILE($(PMTFILE)) HLPPNLGRP($(HLPPNLGRP)) HLPID($(HLPID)) AUT($(AUT)) TEXT('$(TEXT)')
CRTCMODFLAGS = TERASPACE($(TERASPACE)) STGMDL($(STGMDL)) OUTPUT(*PRINT) OPTION($(OPTION)) DBGVIEW($(DBGVIEW)) \
SYSIFCOPT($(SYSIFCOPT)) AUT($(AUT)) TEXT('$(TEXT)') TGTCCSID($(TGTCCSID)) TGTRLS($(TGTRLS)) INCDIR('$(INCDIR)')
SYSIFCOPT($(SYSIFCOPT)) AUT($(AUT)) TEXT('$(TEXT)') TGTCCSID($(TGTCCSID)) TGTRLS($(TGTRLS)) INCDIR($(INCDIR))
CRTDSPFFLAGS = ENHDSP(*YES) RSTDSP($(RSTDSP)) DFRWRT(*YES) AUT($(AUT)) OPTION($(OPTION)) TEXT('$(TEXT)')
CRTLFFLAGS = AUT($(AUT)) OPTION($(OPTION)) TEXT('$(TEXT)')
CRTMNUFLAGS = AUT($(AUT)) OPTION($(OPTION)) CURLIB($(CURLIB)) PRDLIB($(PRDLIB)) TEXT('$(TEXT)') TYPE($(TYPE))
Expand All @@ -263,18 +264,19 @@ CRTPNLGRPFLAGS = AUT($(AUT)) OPTION($(OPTION)) TEXT('$(TEXT)')
CRTCBLPGMFLAGS = OPTION($(OPTION)) TEXT('$(TEXT)')
CRTPRTFFLAGS = AUT($(AUT)) OPTION($(OPTION)) PAGESIZE($(PAGESIZE)) TEXT('$(TEXT)')
CRTRPGMODFLAGS = AUT($(AUT)) DBGVIEW($(DBGVIEW)) OPTION($(OPTION)) OUTPUT(*PRINT) TEXT('$(TEXT)') \
TGTCCSID($(TGTCCSID)) TGTRLS($(TGTRLS)) INCDIR('$(INCDIR)')
TGTCCSID($(TGTCCSID)) TGTRLS($(TGTRLS)) INCDIR($(INCDIR))
CRTQMQRYFLAGS = AUT($(AUT)) TEXT('$(TEXT)')
CRTSQLCIFLAGS = COMMIT($(COMMIT)) OBJTYPE($(OBJTYPE)) OUTPUT(*PRINT) TEXT('$(TEXT)') TGTRLS($(TGTRLS)) DBGVIEW($(DBGVIEW)) \
COMPILEOPT('INCDIR(''$(INCDIR)'') OPTION($(OPTION)) STGMDL($(STGMDL)) SYSIFCOPT($(SYSIFCOPT)) \
COMPILEOPT('INCDIR($(addprefix ',$(addsuffix ',$(INCDIR)))) OPTION($(OPTION)) STGMDL($(STGMDL)) SYSIFCOPT($(SYSIFCOPT)) \
TGTCCSID($(TGTCCSID)) TERASPACE($(TERASPACE))
CRTSQLRPGIFLAGS = COMMIT($(COMMIT)) OBJTYPE($(OBJTYPE)) OPTION($(OPTION)) OUTPUT(*PRINT) TEXT('$(TEXT)') \
TGTRLS($(TGTRLS)) DBGVIEW($(DBGVIEW)) RPGPPOPT($(RPGPPOPT)) \
COMPILEOPT('TGTCCSID($(TGTCCSID)) INCDIR(''$(INCDIR)'')')
COMPILEOPT('TGTCCSID($(TGTCCSID)) INCDIR($(addprefix ',$(addsuffix ',$(INCDIR))))')
CRTSRVPGMFLAGS = ACTGRP($(ACTGRP)) TEXT('$(TEXT)') TGTRLS($(TGTRLS)) AUT($(AUT)) DETAIL($(DETAIL)) STGMDL($(STGMDL))
CRTWSCSTFLAGS = AUT($(AUT)) TEXT('$(TEXT)')
CRTBNDRPGFLAGS:= DBGVIEW($(DBGVIEW)) TGTCCSID($(TGTCCSID)) OPTION($(OPTION)) TEXT('$(TEXT)') INCDIR('$(INCDIR)')
CRTBNDCFLAGS:=TGTCCSID($(TGTCCSID)) OPTION($(OPTION)) TEXT('$(TEXT)') INCDIR('$(INCDIR)')
CRTBNDRPGFLAGS:= DBGVIEW($(DBGVIEW)) TGTCCSID($(TGTCCSID)) OPTION($(OPTION)) TEXT('$(TEXT)') INCDIR($(INCDIR))
CRTBNDCFLAGS:=TGTCCSID($(TGTCCSID)) OPTION($(OPTION)) TEXT('$(TEXT)') INCDIR($(INCDIR))
CRTBNDCLFLAGS = AUT($(AUT)) DBGVIEW($(DBGVIEW)) OPTION($(OPTION)) TEXT('$(TEXT)') TGTRLS($(TGTRLS)) INCDIR($(INCDIR))
RUNSQLFLAGS:= DBGVIEW(*SOURCE) TGTRLS($(TGTRLS)) OUTPUT(*PRINT) MARGINS(1024)

# Extra command string for adhoc addition of extra parameters to a creation command.
Expand Down Expand Up @@ -311,7 +313,9 @@ PREUSRLIBLPATH = $(call getLibPath,$(preUsrlibl))
POSTUSRLIBLPATH = $(call getLibPath,$(postUsrlibl))
CURLIBPATH = $(call getLibPath,$(curlib))

VPATH = $(subst $(space),:,$(strip $(call uniq,$(INCDIR) $(PREUSRLIBLPATH) $(CURLIBPATH) $(POSTUSRLIBLPATH) $(OBJPATH) $(SRCPATH))))
VPATH = $(subst $(space),:,$(strip $(call uniq,$(strip $(unquotedINCDIR)) $(PREUSRLIBLPATH) $(CURLIBPATH) $(POSTUSRLIBLPATH) $(OBJPATH) $(SRCPATH))))


define PRESETUP =
echo -e "$(crtcmd)"; \
curlib="$(curlib)" \
Expand Down Expand Up @@ -436,10 +440,10 @@ fileSIZE = $(strip \

# Determine default settings for the various source types that can make a module object.
moduleAUT = $(strip \
$(if $(filter %.C,$<),$(CMOD_AUT), \
$(if $(filter %.c,$<),$(CMOD_AUT), \
$(if $(filter %.CLLE,$<),$(CLMOD_AUT), \
$(if $(filter %.clle,$<),$(CLMOD_AUT), \
$(if $(filter %.C,$<), $(CMOD_AUT), \
$(if $(filter %.c,$<), $(CMOD_AUT), \
$(if $(filter %.CLLE,$<), $(CLMOD_AUT), \
$(if $(filter %.clle,$<), $(CLMOD_AUT), \
$(if $(filter %.RPGLE,$<),$(RPGMOD_AUT), \
$(if $(filter %.rpgle,$<),$(RPGMOD_AUT), \
UNKNOWN_FILE_TYPE)))))))
Expand Down Expand Up @@ -478,11 +482,15 @@ moduleINCDIR = $(strip \
$(if $(filter %.c,$<),$(CMOD_INCDIR), \
$(if $(filter %.CLLE,$<),$(CLMOD_INCDIR), \
$(if $(filter %.clle,$<),$(CLMOD_INCDIR), \
$(if $(filter %.RPGLE,$<),$(RPGMOD_INCDIR), \
$(if $(filter %.rpgle,$<),$(RPGMOD_INCDIR), \
$(if $(filter %.SQLRPGLE,$<),$(SQLRPGIMOD_INCDIR), \
$(if $(filter %.sqlrpgle,$<),$(SQLRPGIMOD_INCDIR), \
$(if $(filter %.CBLLE,$<),$(CBLMOD_INCDIR), \
$(if $(filter %.cblle,$<),$(CBLMOD_INCDIR), \
$(if $(filter %.SQLC,$<),$(SQLCIMOD_INCDIR), \
$(if $(filter %.sqlc,$<),$(SQLCIMOD_INCDIR), \
UNKNOWN_FILE_TYPE)))))))))
UNKNOWN_FILE_TYPE)))))))))))))
moduleRPGPPOPT = $(strip \
$(if $(filter %.SQLRPGLE,$<),$(SQLRPGIMOD_RPGPPOPT), \
$(if $(filter %.sqlrpgle,$<),$(SQLRPGIMOD_RPGPPOPT), \
Expand Down Expand Up @@ -792,7 +800,6 @@ endef
# |_| |_|\___/|____/ \___/|_____|_____| |_| \_\___|\___|_| .__/ \___||___/
# |_|


define MODULE_VARIABLES
$(eval AUT = $(moduleAUT))\
$(eval DBGVIEW = $(moduleDBGVIEW))\
Expand Down Expand Up @@ -836,7 +843,7 @@ define CLLE_TO_MODULE_RECIPE =
@$(set_STMF_CCSID)
$(eval crtcmd := "$(SCRIPTSPATH)/crtfrmstmf --ccsid $(TGTCCSID) -f $< -o $(basename $(@F)) -l $(OBJLIB) -c "CRTCLMOD" -p '"$(CRTCLMODFLAGS)"'")
@$(PRESETUP) \
$(SCRIPTSPATH)/launch "$(JOBLOGFILE)" "$(crtcmd)" >> $(LOGFILE) 2>&1 && $(call logSuccess,$@) || $(call logFail,$@)
$(SCRIPTSPATH)/crtfrmstmf --ccsid $(TGTCCSID) -f $< -o $(basename $(@F)) -l $(OBJLIB) -c "CRTCLMOD" -p "$(CRTCLMODFLAGS)" --save-joblog "$(JOBLOGFILE)" >> $(LOGFILE) 2>&1 && $(call logSuccess,$@) || $(call logFail,$@)
@$(call EVFEVENT_DOWNLOAD,$*.evfevent)
endef

Expand Down Expand Up @@ -951,9 +958,10 @@ define PGM.CLLE_TO_PGM_RECIPE =
$(PGM_VARIABLES)
$(eval d = $($@_d))
@$(call echo_cmd,"=== Create ILE CL Program [$(basename $@)]")
$(eval crtcmd := CRTBNDCL srcstmf('$<') PGM($(OBJLIB)/$(basename $(@F))) $(CRTCLMODFLAGS))
@$(set_STMF_CCSID)
$(eval crtcmd := "$(SCRIPTSPATH)/crtfrmstmf --ccsid $(TGTCCSID) -f $< -o $(basename $(@F)) -l $(OBJLIB) -c "CRTBNDCL" -p '"$(CRTBNDCLFLAGS)"'")
@$(PRESETUP) \
$(SCRIPTSPATH)/launch "$(JOBLOGFILE)" "$(crtcmd)" >> $(LOGFILE) 2>&1 && $(call logSuccess,$@) || $(call logFail,$@)
$(SCRIPTSPATH)/crtfrmstmf --ccsid $(TGTCCSID) -f $< -o $(basename $(@F)) -l $(OBJLIB) -c "CRTBNDCL" -p "$(CRTBNDCLFLAGS)" --save-joblog "$(JOBLOGFILE)" >> $(LOGFILE) 2>&1 && $(call logSuccess,$@) || $(call logFail,$@)
@$(call EVFEVENT_DOWNLOAD,$*.evfevent)
endef

Expand Down
1 change: 0 additions & 1 deletion scripts/makei
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
""" The CLI entry for BOB"""

import argparse
from email.policy import default
import json
import os
from pathlib import Path
Expand Down

0 comments on commit 5ad8a25

Please sign in to comment.