from wxPopen import ProcessLogger
from toolchain_gcc import toolchain_gcc
includes_re = re.compile('\s*#include\s*["<]([^">]*)[">].*')
class toolchain_makefile(toolchain_gcc):
This abstract class contains GCC specific code.
It cannot be used as this and should be inherited in a target specific
class such as target_linux or target_win32
for Location, CFilesAndCFLAGS, DoCalls in self.PluginsRootInstance.LocationCFilesAndCFLAGS:
# Get CFiles list to give it to makefile
for CFile, CFLAGS in CFilesAndCFLAGS:
CFileName = os.path.basename(CFile)
srcfiles.append(CFileName)
beremizcommand = {"src": ' '.join(srcfiles),
"cflags": ' '.join(cflags)
target = self.getTarget().getcontent()["value"]
command = target.getCommand().split(' ') +\
[target.getBuildPath()] +\
[arg % beremizcommand for arg in target.getArguments().split(' ')] +\
target.getRule().split(' ')
# Call Makefile to build PLC code and link it with target specific code
status, result, err_result = ProcessLogger(self.PluginsRootInstance.logger,
self.PluginsRootInstance.logger.write_error(_("C compilation of %s failed.\n"))