summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-12 10:39:56 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-12-16 15:34:46 +0100
commit9956d77cc726c4a0fc6b710607a5938102798cb5 (patch)
tree43560f718b0d07d8ca4cd5835f63f3f55678dd91
parentMove __FreeBSD__ define to header files (diff)
downloadrtems-libbsd-9956d77cc726c4a0fc6b710607a5938102798cb5.tar.bz2
Allow source file set specific compiler flags
-rwxr-xr-xfreebsd-to-rtems.py33
1 files changed, 20 insertions, 13 deletions
diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py
index 18b1c193..2fb45196 100755
--- a/freebsd-to-rtems.py
+++ b/freebsd-to-rtems.py
@@ -309,8 +309,15 @@ class MakefileFragmentComposer(object):
return ''
class SourceFileMakefileFragmentComposer(MakefileFragmentComposer):
+ def __init__(self, cflags = None):
+ self.cflags = cflags
+
def compose(self, path):
- return 'LIB_C_FILES += ' + path + '\n'
+ fragment = 'LIB_C_FILES += ' + path + '\n'
+ if self.cflags != None:
+ fragment = fragment + path[:-1] + 'o: ' + path + '\n' \
+ + '\t$(CC) $(CPPFLAGS) $(CFLAGS) ' + self.cflags + ' -c $< -o $@\n'
+ return fragment
class TestMakefileFragementComposer(MakefileFragmentComposer):
def __init__(self, testName, fileFragments, runTest, netTest):
@@ -602,26 +609,26 @@ class Module:
for cpu in targetCPUs:
self.files = self.addFiles(self.files, files, TargetSourceCPUDependentPathComposer(cpu, sourceCPU), FromFreeBSDToRTEMSHeaderConverter(), NoConverter(), assertHeaderFile)
- def addSourceFiles(self, files):
- self.files = self.addFiles(self.files, files, PathComposer(), NoConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ def addSourceFiles(self, files, cflags = None):
+ self.files = self.addFiles(self.files, files, PathComposer(), NoConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
- def addKernelSpaceSourceFiles(self, files):
- self.files = self.addFiles(self.files, files, FreeBSDPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ def addKernelSpaceSourceFiles(self, files, cflags = None):
+ self.files = self.addFiles(self.files, files, FreeBSDPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
- def addUserSpaceSourceFiles(self, files):
- self.files = self.addFiles(self.files, files, FreeBSDPathComposer(), FromFreeBSDToRTEMSUserSpaceSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ def addUserSpaceSourceFiles(self, files, cflags = None):
+ self.files = self.addFiles(self.files, files, FreeBSDPathComposer(), FromFreeBSDToRTEMSUserSpaceSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
- def addRTEMSSourceFiles(self, files):
- self.files = self.addFiles(self.files, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ def addRTEMSSourceFiles(self, files, cflags = None):
+ self.files = self.addFiles(self.files, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
- def addCPUDependentSourceFiles(self, cpu, files):
+ def addCPUDependentSourceFiles(self, cpu, files, cflags = None):
self.initCPUDependencies(cpu)
- self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, CPUDependentPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, CPUDependentPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
- def addTargetSourceCPUDependentSourceFiles(self, targetCPUs, sourceCPU, files):
+ def addTargetSourceCPUDependentSourceFiles(self, targetCPUs, sourceCPU, files, cflags = None):
for cpu in targetCPUs:
self.initCPUDependencies(cpu)
- self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, TargetSourceCPUDependentPathComposer(cpu, sourceCPU), FromFreeBSDToRTEMSSourceConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer())
+ self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, TargetSourceCPUDependentPathComposer(cpu, sourceCPU), FromFreeBSDToRTEMSSourceConverter(), NoConverter(), assertSourceFile, SourceFileMakefileFragmentComposer(cflags))
def addTest(self, testName, fileFragments, runTest = True, netTest = False):
self.files.append(File(testName, PathComposer(), NoConverter(), NoConverter(), TestMakefileFragementComposer(testName, fileFragments, runTest, netTest)))