diff options
| author | Grissiom <[email protected]> | 2015-01-07 12:50:43 +0800 |
|---|---|---|
| committer | Grissiom <[email protected]> | 2015-01-07 17:15:49 +0800 |
| commit | 11026d05791d7208036b18c043d6e968ef366f00 (patch) | |
| tree | ca5b64e5e602754e5ff7e3b8986868a9b998035c | |
| parent | 17a75eaa028d0c4f462c0cc64649b661bdf7d5d0 (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/SConstruct | 18 | ||||
| -rw-r--r-- | bsp/lpc43xx/M4/SConstruct | 10 |
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) |
