From 11026d05791d7208036b18c043d6e968ef366f00 Mon Sep 17 00:00:00 2001 From: Grissiom Date: Wed, 7 Jan 2015 12:50:43 +0800 Subject: [PATCH] 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. --- bsp/lpc43xx/M0/SConstruct | 18 ++++++++++++++++++ bsp/lpc43xx/M4/SConstruct | 10 +++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) 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)