فهرست منبع

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.
Grissiom 10 سال پیش
والد
کامیت
11026d0579
2فایلهای تغییر یافته به همراه27 افزوده شده و 1 حذف شده
  1. 18 0
      bsp/lpc43xx/M0/SConstruct
  2. 9 1
      bsp/lpc43xx/M4/SConstruct

+ 18 - 0
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)

+ 9 - 1
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)