summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
author陈豪 | Jacob Chen <[email protected]>2015-03-29 18:35:44 +0800
committer陈豪 | Jacob Chen <[email protected]>2015-03-29 18:35:44 +0800
commit9a4dacaad743801c9be2dbae49251c4e1b8f99a9 (patch)
tree34def3bef5c5fc4a9b7594eba5a2729f8c86aab0 /tools
parentdaac5388afe5a18d51e9839719de8423b62b00c1 (diff)
parent5af7abd8c2e8b8a39c0bf096bdf9b5cb08f266fa (diff)
Merge pull request #3 from RT-Thread/master
111
Diffstat (limited to 'tools')
-rwxr-xr-xtools/as.sh3
-rw-r--r--tools/building.py129
-rw-r--r--tools/codeblocks.py24
-rw-r--r--tools/cscope.py24
-rw-r--r--tools/iar.py24
-rw-r--r--tools/keil.py195
-rw-r--r--tools/sconsui.py24
-rw-r--r--tools/tools/clang-analyze.py2
-rw-r--r--tools/ua.py35
-rw-r--r--tools/utils.py24
-rw-r--r--tools/vs.py24
-rw-r--r--tools/vs2012.py24
-rw-r--r--tools/win32spawn.py24
-rwxr-xr-xtools/wizard.py24
14 files changed, 521 insertions, 59 deletions
diff --git a/tools/as.sh b/tools/as.sh
new file mode 100755
index 0000000000..d4f30f418c
--- /dev/null
+++ b/tools/as.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+astyle --style=allman --indent=spaces=4 --pad-oper --pad-header --unpad-paren --suffix=none --align-pointer=name --lineend=linux --convert-tabs --verbose $1
diff --git a/tools/building.py b/tools/building.py
index caa48d96ae..d95cf3672f 100644
--- a/tools/building.py
+++ b/tools/building.py
@@ -1,3 +1,27 @@
+#
+# File : building.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
@@ -67,7 +91,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
rtconfig.EXEC_PATH = rtconfig.EXEC_PATH.replace('bin40', 'armcc/bin')
Env['LINKFLAGS']=Env['LINKFLAGS'].replace('RV31', 'armcc')
- # reset AR command flags
+ # reset AR command flags
env['ARCOM'] = '$AR --create $TARGET $SOURCES'
env['LIBPREFIX'] = ''
env['LIBSUFFIX'] = '.lib'
@@ -102,7 +126,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
PreProcessor.process_contents(contents)
BuildOptions = PreProcessor.cpp_namespace
- # add copy option
+ # add copy option
AddOption('--copy',
dest='copy',
action='store_true',
@@ -148,12 +172,12 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
rtconfig.POST_ACTION = ''
# add build library option
- AddOption('--buildlib',
- dest='buildlib',
+ AddOption('--buildlib',
+ dest='buildlib',
type='string',
help='building library of a component')
- AddOption('--cleanlib',
- dest='cleanlib',
+ AddOption('--cleanlib',
+ dest='cleanlib',
action='store_true',
default=False,
help='clean up the library by --buildlib')
@@ -167,6 +191,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
#{target_name:(CROSS_TOOL, PLATFORM)}
tgt_dict = {'mdk':('keil', 'armcc'),
'mdk4':('keil', 'armcc'),
+ 'mdk5':('keil', 'armcc'),
'iar':('iar', 'iar'),
'vs':('msvc', 'cl'),
'vs2012':('msvc', 'cl'),
@@ -231,22 +256,31 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
return objs
-def PrepareModuleBuilding(env, root_directory):
+def PrepareModuleBuilding(env, root_directory, bsp_directory):
import rtconfig
+ global BuildOptions
global Env
global Rtt_Root
Env = env
Rtt_Root = root_directory
- # add build/clean library option for library checking
- AddOption('--buildlib',
- dest='buildlib',
+ # parse bsp rtconfig.h to get used component
+ PreProcessor = SCons.cpp.PreProcessor()
+ f = file(bsp_directory + '/rtconfig.h', 'r')
+ contents = f.read()
+ f.close()
+ PreProcessor.process_contents(contents)
+ BuildOptions = PreProcessor.cpp_namespace
+
+ # add build/clean library option for library checking
+ AddOption('--buildlib',
+ dest='buildlib',
type='string',
help='building library of a component')
- AddOption('--cleanlib',
- dest='cleanlib',
+ AddOption('--cleanlib',
+ dest='cleanlib',
action='store_true',
default=False,
help='clean up the library by --buildlib')
@@ -268,7 +302,7 @@ def GetDepend(depend):
building = False
elif BuildOptions[depend] != '':
return BuildOptions[depend]
-
+
return building
# for list type depend
@@ -345,7 +379,7 @@ def DefineGroup(name, src, depend, **parameters):
if group.has_key('LINKFLAGS'):
Env.Append(LINKFLAGS = group['LINKFLAGS'])
- # check whether to clean up library
+ # check whether to clean up library
if GetOption('cleanlib') and os.path.exists(os.path.join(group['path'], GroupLibFullName(name, Env))):
if group['src'] != []:
print 'Remove library:', GroupLibFullName(name, Env)
@@ -364,18 +398,19 @@ def DefineGroup(name, src, depend, **parameters):
if group.has_key('LIBPATH'):
Env.Append(LIBPATH = group['LIBPATH'])
- objs = Env.Object(group['src'])
if group.has_key('LIBRARY'):
- objs = Env.Library(name, objs)
+ objs = Env.Library(name, group['src'])
+ else:
+ objs = group['src']
- # merge group
+ # merge group
for g in Projects:
if g['name'] == name:
# merge to this group
MergeGroup(g, group)
return objs
- # add a new group
+ # add a new group
Projects.append(group)
return objs
@@ -437,12 +472,6 @@ def DoBuilding(target, objects):
break
else:
- # merge the repeated items in the Env
- if Env.has_key('CPPPATH') : Env['CPPPATH'] = list(set(Env['CPPPATH']))
- if Env.has_key('CPPDEFINES'): Env['CPPDEFINES'] = list(set(Env['CPPDEFINES']))
- if Env.has_key('LIBPATH') : Env['LIBPATH'] = list(set(Env['LIBPATH']))
- if Env.has_key('LIBS') : Env['LIBS'] = list(set(Env['LIBS']))
-
program = Env.Program(target, objects)
EndBuilding(target, program)
@@ -455,6 +484,7 @@ def EndBuilding(target, program = None):
if GetOption('target') == 'mdk':
from keil import MDKProject
from keil import MDK4Project
+ from keil import MDK5Project
template = os.path.isfile('template.Uv2')
if template:
@@ -464,16 +494,24 @@ def EndBuilding(target, program = None):
if template:
MDK4Project('project.uvproj', Projects)
else:
- print 'No template project file found.'
+ template = os.path.isfile('template.uvprojx')
+ if template:
+ MDK5Project('project.uvprojx', Projects)
+ else:
+ print 'No template project file found.'
+
if GetOption('target') == 'mdk4':
- from keil import MDKProject
from keil import MDK4Project
MDK4Project('project.uvproj', Projects)
+ if GetOption('target') == 'mdk5':
+ from keil import MDK5Project
+ MDK5Project('project.uvprojx', Projects)
+
if GetOption('target') == 'iar':
from iar import IARProject
- IARProject('project.ewp', Projects)
+ IARProject('project.ewp', Projects)
if GetOption('target') == 'vs':
from vs import VSProject
@@ -490,7 +528,7 @@ def EndBuilding(target, program = None):
if GetOption('target') == 'ua':
from ua import PrepareUA
PrepareUA(Projects, Rtt_Root, str(Dir('#')))
-
+
if GetOption('copy') and program != None:
MakeCopy(program)
if GetOption('copy-header') and program != None:
@@ -501,6 +539,9 @@ def EndBuilding(target, program = None):
CscopeDatabase(Projects)
def SrcRemove(src, remove):
+ if not src:
+ return
+
if type(src[0]) == type('str'):
for item in src:
if os.path.basename(item) in remove:
@@ -517,7 +558,7 @@ def GetVersion():
rtdef = os.path.join(Rtt_Root, 'include', 'rtdef.h')
- # parse rtdef.h to get RT-Thread version
+ # parse rtdef.h to get RT-Thread version
prepcessor = SCons.cpp.PreProcessor()
f = file(rtdef, 'r')
contents = f.read()
@@ -563,9 +604,9 @@ def do_rm_file(src):
def do_copy_file(src, dst):
import shutil
- # check source file
+ # check source file
if not os.path.exists(src):
- return
+ return
path = os.path.dirname(dst)
# mkdir if path not exist
@@ -576,13 +617,13 @@ def do_copy_file(src, dst):
def do_copy_folder(src_dir, dst_dir):
import shutil
- # check source directory
+ # check source directory
if not os.path.exists(src_dir):
return
-
+
if os.path.exists(dst_dir):
shutil.rmtree(dst_dir)
-
+
shutil.copytree(src_dir, dst_dir)
source_ext = ["c", "h", "s", "S", "cpp", "xpm"]
@@ -609,22 +650,22 @@ def MakeCopy(program):
global source_list
global Rtt_Root
global Env
-
+
target_path = os.path.join(Dir('#').abspath, 'rt-thread')
-
+
if Env['PLATFORM'] == 'win32':
RTT_ROOT = Rtt_Root.lower()
else:
RTT_ROOT = Rtt_Root
-
+
if target_path.startswith(RTT_ROOT):
return
for item in program:
walk_children(item)
-
+
source_list.sort()
-
+
# filte source file in RT-Thread
target_list = []
for src in source_list:
@@ -635,7 +676,7 @@ def MakeCopy(program):
target_list.append(src)
source_list = target_list
- # get source path
+ # get source path
src_dir = []
for src in source_list:
src = src.replace(RTT_ROOT, '')
@@ -647,10 +688,10 @@ def MakeCopy(program):
full_path = RTT_ROOT
for item in sub_path:
full_path = os.path.join(full_path, item)
- if full_path not in src_dir:
+ if full_path not in src_dir:
src_dir.append(full_path)
- for item in src_dir:
+ for item in src_dir:
source_list.append(os.path.join(item, 'SConscript'))
for src in source_list:
@@ -661,7 +702,7 @@ def MakeCopy(program):
dst = os.path.join(target_path, dst)
do_copy_file(src, dst)
- # copy tools directory
+ # copy tools directory
print "=> tools"
do_copy_folder(os.path.join(RTT_ROOT, "tools"), os.path.join(target_path, "tools"))
do_copy_file(os.path.join(RTT_ROOT, 'AUTHORS'), os.path.join(target_path, 'AUTHORS'))
@@ -709,7 +750,7 @@ def MakeCopyHeader(program):
dst = os.path.join(target_path, dst)
do_copy_file(src, dst)
- # copy tools directory
+ # copy tools directory
print "=> tools"
do_copy_folder(os.path.join(RTT_ROOT, "tools"), os.path.join(target_path, "tools"))
do_copy_file(os.path.join(RTT_ROOT, 'AUTHORS'), os.path.join(target_path, 'AUTHORS'))
diff --git a/tools/codeblocks.py b/tools/codeblocks.py
index 78f9629cbb..cb07956e73 100644
--- a/tools/codeblocks.py
+++ b/tools/codeblocks.py
@@ -1,3 +1,27 @@
+#
+# File : codeblocks.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
diff --git a/tools/cscope.py b/tools/cscope.py
index 18568b4c35..daeda52f9d 100644
--- a/tools/cscope.py
+++ b/tools/cscope.py
@@ -1,3 +1,27 @@
+#
+# File : cscope.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
def _get_src(project):
diff --git a/tools/iar.py b/tools/iar.py
index 40b8408971..fda3fd8768 100644
--- a/tools/iar.py
+++ b/tools/iar.py
@@ -1,3 +1,27 @@
+#
+# File : iar.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
diff --git a/tools/keil.py b/tools/keil.py
index 64afedfb65..9d6b14b81a 100644
--- a/tools/keil.py
+++ b/tools/keil.py
@@ -1,3 +1,27 @@
+#
+# File : keil.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
@@ -49,11 +73,11 @@ def MDK4AddGroupForFN(ProjectFiles, parent, name, filename, project_path):
file_type = SubElement(file, 'FileType')
file_type.text = '%d' % _get_filetype(name)
file_path = SubElement(file, 'FilePath')
-
+
file_path.text = path.decode(fs_encoding)
def MDK4AddGroup(ProjectFiles, parent, name, files, project_path):
- # don't add an empty group
+ # don't add an empty group
if len(files) == 0:
return
@@ -69,7 +93,7 @@ def MDK4AddGroup(ProjectFiles, parent, name, files, project_path):
basename = os.path.basename(path)
path = _make_path_relative(project_path, path)
path = os.path.join(path, name)
-
+
files = SubElement(group, 'Files')
file = SubElement(files, 'File')
file_name = SubElement(file, 'FileName')
@@ -81,7 +105,7 @@ def MDK4AddGroup(ProjectFiles, parent, name, files, project_path):
file_type = SubElement(file, 'FileType')
file_type.text = '%d' % _get_filetype(name)
file_path = SubElement(file, 'FilePath')
-
+
file_path.text = path.decode(fs_encoding)
def MDK4Project(target, script):
@@ -93,16 +117,16 @@ def MDK4Project(target, script):
tree = etree.parse('template.uvproj')
root = tree.getroot()
-
+
out = file(target, 'wb')
out.write('<?xml version="1.0" encoding="UTF-8" standalone="no" ?>\n')
-
+
CPPPATH = []
CPPDEFINES = []
LINKFLAGS = ''
CCFLAGS = ''
ProjectFiles = []
-
+
# add group
groups = tree.find('Targets/Target/Groups')
if groups is None:
@@ -110,28 +134,28 @@ def MDK4Project(target, script):
groups.clear() # clean old groups
for group in script:
group_xml = MDK4AddGroup(ProjectFiles, groups, group['name'], group['src'], project_path)
-
+
# get each include path
if group.has_key('CPPPATH') and group['CPPPATH']:
if CPPPATH:
CPPPATH += group['CPPPATH']
else:
CPPPATH += group['CPPPATH']
-
+
# get each group's definitions
if group.has_key('CPPDEFINES') and group['CPPDEFINES']:
if CPPDEFINES:
CPPDEFINES += group['CPPDEFINES']
else:
CPPDEFINES += group['CPPDEFINES']
-
+
# get each group's link flags
if group.has_key('LINKFLAGS') and group['LINKFLAGS']:
if LINKFLAGS:
LINKFLAGS += ' ' + group['LINKFLAGS']
else:
LINKFLAGS += group['LINKFLAGS']
-
+
if group.has_key('LIBS') and group['LIBS']:
for item in group['LIBS']:
lib_path = ''
@@ -161,7 +185,154 @@ def MDK4Project(target, script):
if os.path.exists('template.uvopt'):
import shutil
shutil.copy2('template.uvopt', 'project.uvopt')
-
+
+def MDK5AddGroupForFN(ProjectFiles, parent, name, filename, project_path):
+ group = SubElement(parent, 'Group')
+ group_name = SubElement(group, 'GroupName')
+ group_name.text = name
+
+ name = os.path.basename(filename)
+ path = os.path.dirname (filename)
+
+ basename = os.path.basename(path)
+ path = _make_path_relative(project_path, path)
+ path = os.path.join(path, name)
+ files = SubElement(group, 'Files')
+ file = SubElement(files, 'File')
+ file_name = SubElement(file, 'FileName')
+ name = os.path.basename(path)
+ if ProjectFiles.count(name):
+ name = basename + '_' + name
+ ProjectFiles.append(name)
+ file_name.text = name.decode(fs_encoding)
+ file_type = SubElement(file, 'FileType')
+ file_type.text = '%d' % _get_filetype(name)
+ file_path = SubElement(file, 'FilePath')
+
+ file_path.text = path.decode(fs_encoding)
+
+def MDK5AddGroup(ProjectFiles, parent, name, files, project_path):
+ # don't add an empty group
+ if len(files) == 0:
+ return
+
+ group = SubElement(parent, 'Group')
+ group_name = SubElement(group, 'GroupName')
+ group_name.text = name
+
+ for f in files:
+ fn = f.rfile()
+ name = fn.name
+ path = os.path.dirname(fn.abspath)
+
+ basename = os.path.basename(path)
+ path = _make_path_relative(project_path, path)
+ path = os.path.join(path, name)
+
+ files = SubElement(group, 'Files')
+ file = SubElement(files, 'File')
+ file_name = SubElement(file, 'FileName')
+ name = os.path.basename(path)
+ if ProjectFiles.count(name):
+ name = basename + '_' + name
+ ProjectFiles.append(name)
+ file_name.text = name.decode(fs_encoding)
+ file_type = SubElement(file, 'FileType')
+ file_type.text = '%d' % _get_filetype(name)
+ file_path = SubElement(file, 'FilePath')
+
+ file_path.text = path.decode(fs_encoding)
+
+def MDK5Project(target, script):
+ project_path = os.path.dirname(os.path.abspath(target))
+
+ project_uvopt = os.path.abspath(target).replace('uvprojx', 'uvoptx')
+ if os.path.isfile(project_uvopt):
+ os.unlink(project_uvopt)
+
+ tree = etree.parse('template.uvprojx')
+ root = tree.getroot()
+
+ out = file(target, 'wb')
+ out.write('<?xml version="1.0" encoding="UTF-8" standalone="no" ?>\n')
+
+ CPPPATH = []
+ CPPDEFINES = []
+ LINKFLAGS = ''
+ CCFLAGS = ''
+ ProjectFiles = []
+
+ # add group
+ groups = tree.find('Targets/Target/Groups')
+ if groups is None:
+ groups = SubElement(tree.find('Targets/Target'), 'Groups')
+ for group in script:
+ group_xml = MDK4AddGroup(ProjectFiles, groups, group['name'], group['src'], project_path)
+
+ # get each include path
+ if group.has_key('CPPPATH') and group['CPPPATH']:
+ if CPPPATH:
+ CPPPATH += group['CPPPATH']
+ else:
+ CPPPATH += group['CPPPATH']
+
+ # get each group's definitions
+ if group.has_key('CPPDEFINES') and group['CPPDEFINES']:
+ if CPPDEFINES:
+ CPPDEFINES += group['CPPDEFINES']
+ else:
+ CPPDEFINES += group['CPPDEFINES']
+
+ # get each group's link flags
+ if group.has_key('LINKFLAGS') and group['LINKFLAGS']:
+ if LINKFLAGS:
+ LINKFLAGS += ' ' + group['LINKFLAGS']
+ else:
+ LINKFLAGS += group['LINKFLAGS']
+
+ if group.has_key('LIBS') and group['LIBS']:
+ for item in group['LIBS']:
+ lib_path = ''
+ for path_item in group['LIBPATH']:
+ full_path = os.path.join(path_item, item + '.lib')
+ if os.path.isfile(full_path): # has this library
+ lib_path = full_path
+
+ if lib_path != '':
+ MDK4AddGroupForFN(ProjectFiles, groups, group['name'], lib_path, project_path)
+
+ # remove repeat path
+ paths = set()
+ for path in CPPPATH:
+ inc = _make_path_relative(project_path, os.path.normpath(path))
+ paths.add(inc) #.replace('\\', '/')
+
+ paths = [i for i in paths]
+ paths.sort()
+ CPPPATH = string.join(paths, ';')
+
+ definitions = [i for i in set(CPPDEFINES)]
+ CPPDEFINES = string.join(definitions, ', ')
+
+ # write include path, definitions and link flags
+ IncludePath = tree.find('Targets/Target/TargetOption/TargetArmAds/Cads/VariousControls/IncludePath')
+ IncludePath.text = CPPPATH
+
+ Define = tree.find('Targets/Target/TargetOption/TargetArmAds/Cads/VariousControls/Define')
+ Define.text = CPPDEFINES
+
+ Misc = tree.find('Targets/Target/TargetOption/TargetArmAds/LDads/Misc')
+ Misc.text = LINKFLAGS
+
+ xml_indent(root)
+ out.write(etree.tostring(root, encoding='utf-8'))
+ out.close()
+
+ # copy uvopt file
+ if os.path.exists('template.uvoptx'):
+ import shutil
+ shutil.copy2('template.uvoptx', 'project.uvoptx')
+
def MDKProject(target, script):
template = file('template.Uv2', "rb")
lines = template.readlines()
diff --git a/tools/sconsui.py b/tools/sconsui.py
index eddccb49f4..3542c36278 100644
--- a/tools/sconsui.py
+++ b/tools/sconsui.py
@@ -1,6 +1,30 @@
#! /usr/bin/env python
#coding=utf-8
+#
+# File : sconsui.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import sys
py2 = py30 = py31 = False
diff --git a/tools/tools/clang-analyze.py b/tools/tools/clang-analyze.py
index a966a7b56a..e73f30ca31 100644
--- a/tools/tools/clang-analyze.py
+++ b/tools/tools/clang-analyze.py
@@ -33,7 +33,7 @@ def generate(env):
env['AR'] = 'true'
env['LINK'] = 'true'
- env['CFLAGS'] = ['-fsyntax-only', '-Wall', '-Wno-invalid-source-encoding']
+ env['CFLAGS'] = ['-fsyntax-only', '-Wall', '-Wno-invalid-source-encoding', '-m32']
env['LINKFLAGS'] = '-Wl,--gc-sections'
env['ARFLAGS'] = '-rc'
diff --git a/tools/ua.py b/tools/ua.py
index ac3ea9061c..31d2641031 100644
--- a/tools/ua.py
+++ b/tools/ua.py
@@ -1,3 +1,27 @@
+#
+# File : ua.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
from utils import _make_path_relative
@@ -59,6 +83,10 @@ def PrepareUA(project, RTT_ROOT, BSP_ROOT):
ua.write('\t\t%s\n' % path)
ua.write('\t]\n\n')
ua.write('\treturn CPPPATH\n\n')
+ else:
+ ua.write('def GetCPPPATH(BSP_ROOT, RTT_ROOT):\n')
+ ua.write('\tCPPPATH=[]\n\n')
+ ua.write('\treturn CPPPATH\n\n')
if len(CPPDEFINES):
CPPDEFINES = [i for i in set(CPPDEFINES)]
@@ -66,5 +94,8 @@ def PrepareUA(project, RTT_ROOT, BSP_ROOT):
ua.write('def GetCPPDEFINES():\n')
ua.write('\tCPPDEFINES=%s\n' % str(CPPDEFINES))
ua.write('\treturn CPPDEFINES\n\n')
-
- print CPPDEFINES
+
+ else:
+ ua.write('def GetCPPDEFINES():\n')
+ ua.write('\tCPPDEFINES=""\n\n')
+ ua.write('\treturn CPPDEFINES\n\n')
diff --git a/tools/utils.py b/tools/utils.py
index d1b0944939..0fa8cc742e 100644
--- a/tools/utils.py
+++ b/tools/utils.py
@@ -1,3 +1,27 @@
+#
+# File : utils.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import sys
import os
diff --git a/tools/vs.py b/tools/vs.py
index 1dce0ddaa7..bd1c7a4b24 100644
--- a/tools/vs.py
+++ b/tools/vs.py
@@ -1,3 +1,27 @@
+#
+# File : vs.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
diff --git a/tools/vs2012.py b/tools/vs2012.py
index 3e751e940e..14da3dcace 100644
--- a/tools/vs2012.py
+++ b/tools/vs2012.py
@@ -1,3 +1,27 @@
+#
+# File : vs2012.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import sys
import string
diff --git a/tools/win32spawn.py b/tools/win32spawn.py
index 8adc64306b..9b878bf69f 100644
--- a/tools/win32spawn.py
+++ b/tools/win32spawn.py
@@ -1,3 +1,27 @@
+#
+# File : win32spawn.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
import os
import threading
import Queue
diff --git a/tools/wizard.py b/tools/wizard.py
index 4b2186fadb..41e90775d8 100755
--- a/tools/wizard.py
+++ b/tools/wizard.py
@@ -1,6 +1,30 @@
#! /usr/bin/env python
#coding=utf-8
+#
+# File : wizard.py
+# This file is part of RT-Thread RTOS
+# COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Change Logs:
+# Date Author Notes
+# 2015-01-20 Bernard Add copyright information
+#
+
"""
wizard.py - a script to generate SConscript in RT-Thread RTOS.