From 9c14bc66f9f0899b214a04ea960b56ddbd6c7f89 Mon Sep 17 00:00:00 2001 From: Hishmann Date: Wed, 30 Sep 2026 01:31:10 +0200 Subject: [PATCH] toolbox/supsisim/supsisim/RCPgen.py: Modified function genMake to also take parameter addMakeArgs string. toolbox/supsisim/supsisim/scene.py: Modified function Scene.codegen and Scene.generateCCode to include Make arguments similar to C defines. --- toolbox/supsisim/supsisim/RCPgen.py | 6 ++++-- toolbox/supsisim/supsisim/scene.py | 12 ++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/toolbox/supsisim/supsisim/RCPgen.py b/toolbox/supsisim/supsisim/RCPgen.py index efcfd018..8b93e22c 100644 --- a/toolbox/supsisim/supsisim/RCPgen.py +++ b/toolbox/supsisim/supsisim/RCPgen.py @@ -410,7 +410,7 @@ def genCode(model, Tsamp, blocks, rkMethod='standard_RK4', epsAbs = 1e-6, epsRel f.write('}\n\n') f.close() -def genMake(model, template, addObj = '', addCDefs = ''): +def genMake(model, template, addObj = '', addCDefs = '', addMakeArgs = ''): """Generate the Makefile Call: genMake(model, template) @@ -421,7 +421,8 @@ def genMake(model, template, addObj = '', addCDefs = ''): template : Template makefile addObj : Additional object files addCDefs : Additional C Defines - + addMakeArgs : Additional Make Defines + Returns ------- - @@ -441,6 +442,7 @@ def genMake(model, template, addObj = '', addCDefs = ''): addCDefs += ' \'-DCONF_SHV_UPDATES_USED\'' mf = mf.replace('$$ADDITIONAL_DEFINES$$', addCDefs) + mf = mf.replace('$$ADDITIONAL_MAKE_ARGS$$', addMakeArgs) f = open('Makefile','w') f.write(mf) f.close() diff --git a/toolbox/supsisim/supsisim/scene.py b/toolbox/supsisim/supsisim/scene.py index 2bb4f478..d1a0e8d6 100644 --- a/toolbox/supsisim/supsisim/scene.py +++ b/toolbox/supsisim/supsisim/scene.py @@ -505,7 +505,7 @@ def cleanBlkList(self, items): return items def codegen(self, flag): - def _parseAddCDefs(addCDefs: str) -> str: + def _parseAddDefs(addCDefs: str, defFormatFunc) -> str: ret = '' # the splitter is a comma, then check the syntax addCDefs = addCDefs.strip() @@ -523,13 +523,17 @@ def _parseAddCDefs(addCDefs: str) -> str: if not re.fullmatch("[0-9a-zA-Z_]+", left): # the macro contains forbidden characters raise ValueError("Bad format of additional build args!") - ret += "\\\'-D" + str(left) + '=' + str(right) + "\\\' " + ret += defFormatFunc(str(left), str(right)) return ret + CDefFormatFunc = lambda l, r : "\\\'-D" + l + '=' + r + "\\\' " + MakeArgFormatFunc = lambda l, r : l + '=' + r + " " + # REVISIT: might check all passed arguments in the dialog. try: - self.parsedAddCDefs = _parseAddCDefs(self.addCDefs) + self.parsedAddCDefs = _parseAddDefs(self.addCDefs, CDefFormatFunc) + self.parsedAddMakeArgs = _parseAddDefs(self.addMakeArgs, MakeArgFormatFunc) except ValueError as e: print(e) self.mainw.statusLabel.setText('Error by Code generation!') @@ -763,7 +767,7 @@ def generateCCode(self, items): fn.write('genCode(fname, ' + self.Ts + ', blks, ' + "'" + self.intgMethod + "', " + \ self.epsAbs + ', ' + self.epsRel +')\n') fn.write("genMake(fname, '" + self.template + "', addObj = '" + - self.addObjs + "', addCDefs = '" + self.parsedAddCDefs + "')\n") + self.addObjs + "', addCDefs = '" + self.parsedAddCDefs + "', addMakeArgs= '" + self.parsedAddMakeArgs + "')\n") fn.write('\nimport os\n') fn.write('os.system("make clean")\n') fn.write('if (os.system("make")) != 0:\n')