summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrissiom <[email protected]>2015-01-07 12:50:43 +0800
committerGrissiom <[email protected]>2015-01-07 17:15:49 +0800
commit11026d05791d7208036b18c043d6e968ef366f00 (patch)
treeca5b64e5e602754e5ff7e3b8986868a9b998035c
parent17a75eaa028d0c4f462c0cc64649b661bdf7d5d0 (diff)
lpc43xx: clean the .o before building M0 and M4
SCons will omit the file in parent dir of SConstruct somehow and build the object files in that dir instead of in variant dir. This cause problem because we cannot mix the object files between M0 and M4 which SCons failed to rebuild. So we have to manually remove the files before building.
-rw-r--r--bsp/lpc43xx/M0/SConstruct18
-rw-r--r--bsp/lpc43xx/M4/SConstruct10
2 files changed, 27 insertions, 1 deletions
diff --git a/bsp/lpc43xx/M0/SConstruct b/bsp/lpc43xx/M0/SConstruct
index 62cebd454f..c7967d02f6 100644
--- a/bsp/lpc43xx/M0/SConstruct
+++ b/bsp/lpc43xx/M0/SConstruct
@@ -25,5 +25,23 @@ Export('rtconfig')
# prepare building environment
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
+if rtconfig.CROSS_TOOL == 'gcc':
+ import glob
+ # Remove the .o for M0 left on the drivers dir.
+ for i in glob.glob(GetCurrentDir() + '/../drivers/*.o'):
+ print 'RM %s' % i
+ os.unlink(i)
+
+ if sys.platform.startswith('linux'):
+ import glob
+ ocwd = os.getcwdu()
+ res = os.system('cd ../Libraries/; find -name \*.o -exec rm {} \;')
+ os.chdir(ocwd)
+ else:
+ # Assume Windows.
+ ocwd = os.getcwdu()
+ print 'TODO: remove the object files in ../Libraries'
+ os.chdir(ocwd)
+
# do building
DoBuilding(TARGET, objs)
diff --git a/bsp/lpc43xx/M4/SConstruct b/bsp/lpc43xx/M4/SConstruct
index 17f5eaf11c..7b02b732d4 100644
--- a/bsp/lpc43xx/M4/SConstruct
+++ b/bsp/lpc43xx/M4/SConstruct
@@ -28,6 +28,7 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
if rtconfig.CROSS_TOOL == 'gcc':
print 'build M0 code first'
if sys.platform.startswith('linux'):
+ import glob
ocwd = os.getcwdu()
os.chdir('../M0')
res = os.system('scons')
@@ -35,12 +36,19 @@ if rtconfig.CROSS_TOOL == 'gcc':
print 'build M0 exit with code %d\n' % res
sys.exit(res)
os.chdir(ocwd)
+ res = os.system('cd ../Libraries/; find -name \*.o -exec rm {} \;')
+ os.chdir(ocwd)
else:
- # assume Windows.
+ # Assume Windows.
ocwd = os.getcwdu()
os.chdir('..\M0')
os.system('scons.bat')
os.chdir(ocwd)
+ # Remove the .o for M0 left on the drivers dir.
+ for i in glob.glob(GetCurrentDir() + '/../drivers/*.o'):
+ print 'RM %s' % i
+ os.unlink(i)
+
# do building
DoBuilding(TARGET, objs)