diff -r 86a7c1d11bbd -r f390e9fdd2cf targets/toolchain_makefile.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/targets/toolchain_makefile.py Thu Oct 22 11:28:11 2009 +0200 @@ -0,0 +1,42 @@ +import os, re, operator +from wxPopen import ProcessLogger +import hashlib, shutil +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 + """ + + def build(self): + srcfiles= [] + cflags = [] + 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) + if CFLAGS not in cflags: + cflags.append(CFLAGS) + + 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, + command).spin() + if status : + self.PluginsRootInstance.logger.write_error(_("C compilation of %s failed.\n")) + return False + return True