summaryrefslogtreecommitdiff
path: root/tools/makefile.py
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2019-02-15 09:04:14 +0800
committerBernard Xiong <[email protected]>2019-02-15 09:04:14 +0800
commitac28dded3ee7ed420f755e96a2983620d33a37fb (patch)
tree4cce29d65662b9eae5767f48944474fb6944646c /tools/makefile.py
parent65b7f438ff414aff145c91b2db2b517d9be5c0cc (diff)
[Tools] Add Makefile genernation.
Diffstat (limited to 'tools/makefile.py')
-rw-r--r--tools/makefile.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/tools/makefile.py b/tools/makefile.py
new file mode 100644
index 0000000000..f6ff4a305b
--- /dev/null
+++ b/tools/makefile.py
@@ -0,0 +1,68 @@
+import os
+import sys
+
+from utils import *
+from utils import _make_path_relative
+import rtconfig
+
+def TargetMakefile(env):
+ project = ProjectInfo(env)
+
+ make = open('config.mk', 'w')
+
+ BSP_ROOT = os.path.abspath(env['BSP_ROOT'])
+ RTT_ROOT = os.path.abspath(env['RTT_ROOT'])
+
+ make.write('BSP_ROOT ?= %s\n' % BSP_ROOT.replace('\\', '\\\\'))
+ make.write('RTT_ROOT ?= %s\n' % RTT_ROOT.replace('\\', '\\\\'))
+ make.write('\n')
+
+ cross = os.path.abspath(rtconfig.EXEC_PATH)
+ cross = os.path.join(cross, rtconfig.PREFIX)
+ make.write('CROSS_COMPILE ?=%s' % cross.replace('\\', '\\\\'))
+ make.write('\n')
+ make.write('\n')
+
+ make.write('CFLAGS :=%s' % (rtconfig.CFLAGS))
+ make.write('\n')
+ make.write('AFLAGS :=%s' % (rtconfig.AFLAGS))
+ make.write('\n')
+ make.write('LFLAGS :=%s' % (rtconfig.LFLAGS))
+ make.write('\n')
+ if 'CXXFLAGS' in dir(rtconfig):
+ make.write('CXXFLAGS :=%s' % (rtconfig.CXXFLAGS))
+ make.write('\n')
+
+ make.write('\n')
+
+ Files = project['FILES']
+ Headers = project['HEADERS']
+ CPPDEFINES = project['CPPDEFINES']
+
+ path = ''
+ paths = [_make_path_relative(BSP_ROOT, os.path.normpath(i)) for i in project['CPPPATH']]
+ for item in paths:
+ path += '\t-I%s \\\n' % item
+
+ make.write('CPPPATHS :=')
+ if path[0] == '\t': path = path[1:]
+ length = len(path)
+ if path[length - 2] == '\\': path = path[:length - 2]
+ make.write(path)
+ make.write('\n')
+ make.write('\n')
+
+ defines = ''
+ for item in project['CPPDEFINES']:
+ defines += ' -D%s' % item
+ make.write('DEFINES :=')
+ make.write(defines)
+ make.write('\n')
+
+ src = open('src.mk', 'w')
+ files = [_make_path_relative(BSP_ROOT, os.path.normpath(i)) for i in Files]
+ src.write('SRC_FILES :=\n')
+ for item in files:
+ src.write('SRC_FILES +=%s\n' % item)
+
+ return