Browse Source

[bsp/imxrt] improve build output.

guozhanxin 3 years ago
parent
commit
1b6031954a

+ 22 - 22
bsp/imxrt/imxrt1052-atk-commander/SConstruct

@@ -15,32 +15,21 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
@@ -52,6 +41,9 @@ if os.path.exists(SDK_ROOT + '/libraries'):
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -61,11 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1050'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
+
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 22 - 22
bsp/imxrt/imxrt1052-fire-pro/SConstruct

@@ -15,32 +15,21 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
@@ -52,6 +41,9 @@ if os.path.exists(SDK_ROOT + '/libraries'):
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -61,11 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1050'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
+
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 21 - 24
bsp/imxrt/imxrt1052-nxp-evk/SConstruct

@@ -15,32 +15,21 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
@@ -52,6 +41,9 @@ if os.path.exists(SDK_ROOT + '/libraries'):
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -61,14 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1050'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
 
-# include peripherals
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'peripherals', 'SConscript')))
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 22 - 22
bsp/imxrt/imxrt1052-seeed-ArchMix/SConstruct

@@ -15,32 +15,21 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
@@ -52,6 +41,9 @@ if os.path.exists(SDK_ROOT + '/libraries'):
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -61,11 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1050'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
+
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 22 - 24
bsp/imxrt/imxrt1060-nxp-evk/SConstruct

@@ -15,42 +15,35 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
 
 SDK_ROOT = os.path.abspath('./')
+
 if os.path.exists(SDK_ROOT + '/libraries'):
     libraries_path_prefix = SDK_ROOT + '/libraries'
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -60,14 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1060'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
 
-# include peripherals
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'peripherals', 'SConscript')))
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 22 - 24
bsp/imxrt/imxrt1064-nxp-evk/SConstruct

@@ -15,42 +15,35 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
 
 SDK_ROOT = os.path.abspath('./')
+
 if os.path.exists(SDK_ROOT + '/libraries'):
     libraries_path_prefix = SDK_ROOT + '/libraries'
 else:
     libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
 
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
 SDK_LIB = libraries_path_prefix
 Export('SDK_LIB')
 
@@ -60,14 +53,19 @@ objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 imxrt_library = 'MIMXRT1064'
 rtconfig.BSP_LIBRARY_TYPE = imxrt_library
 
+bsp_vdir = 'build'
+
 # include libraries
-objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
 
 # include drivers
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript')))
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
 
-# include peripherals
-objs.extend(SConscript(os.path.join(libraries_path_prefix, 'peripherals', 'SConscript')))
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 38 - 22
bsp/imxrt/libraries/templates/imxrt1050xxx/SConstruct

@@ -15,41 +15,57 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
 
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+    libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+    libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
 # prepare building environment
 objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 
-objs = objs + SConscript('../libraries/drivers/SConscript')
-objs = objs + SConscript('../libraries/MIMXRT1050/SConscript')
+imxrt_library = 'MIMXRT1050'
+rtconfig.BSP_LIBRARY_TYPE = imxrt_library
+
+bsp_vdir = 'build'
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
+
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)

+ 38 - 22
bsp/imxrt/libraries/templates/imxrt1064xxx/SConstruct

@@ -15,41 +15,57 @@ except:
     print(RTT_ROOT)
     exit(-1)
 
-TARGET = 'rtthread.' + rtconfig.TARGET_EXT
-DefaultEnvironment(tools=[])
-if rtconfig.PLATFORM == 'armcc':
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        # overwrite cflags, because cflags has '--C99'
-        CXXCOM = '$CXX -o $TARGET --cpp -c $CXXFLAGS $_CCCOMCOM $SOURCES')
-else:
-    env = Environment(tools = ['mingw'],
-        AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
-        CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
-        CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
-        AR = rtconfig.AR, ARFLAGS = '-rc',
-        LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS,
-        CXXCOM = '$CXX -o $TARGET -c $CXXFLAGS $_CCCOMCOM $SOURCES')
+TARGET = 'rt-thread.' + rtconfig.TARGET_EXT
 
+DefaultEnvironment(tools=[])
+env = Environment(tools = ['mingw'],
+    AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
+    CC = rtconfig.CC, CFLAGS = rtconfig.CFLAGS,
+    AR = rtconfig.AR, ARFLAGS = '-rc',
+    CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
+    LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
 env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
 
 if rtconfig.PLATFORM == 'iar':
     env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES'])
     env.Replace(ARFLAGS = [''])
-    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map')
+    env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map')
 
 Export('RTT_ROOT')
 Export('rtconfig')
 
+SDK_ROOT = os.path.abspath('./')
+
+if os.path.exists(SDK_ROOT + '/libraries'):
+    libraries_path_prefix = SDK_ROOT + '/libraries'
+else:
+    libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries'
+
+from utils import _make_path_relative
+libraries_path_prefix = _make_path_relative(os.path.abspath('./'), libraries_path_prefix)
+
+SDK_LIB = libraries_path_prefix
+Export('SDK_LIB')
+
 # prepare building environment
 objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)
 
-objs = objs + SConscript('../libraries/drivers/SConscript')
-objs = objs + SConscript('../libraries/MIMXRT1064/SConscript')
+imxrt_library = 'MIMXRT1060'
+rtconfig.BSP_LIBRARY_TYPE = imxrt_library
+
+bsp_vdir = 'build'
+
+# include libraries
+objs.extend(SConscript(os.path.join(libraries_path_prefix, imxrt_library, 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/'+ imxrt_library, duplicate=0))
+
+# include drivers
+objs.extend(SConscript(os.path.join(libraries_path_prefix, 'drivers', 'SConscript'),
+                        variant_dir=bsp_vdir + '/libraries/drivers', duplicate=0))
+
+bsp_port_script = os.path.join(os.getcwd(), 'board', 'ports', 'SConscript')
+if os.path.isfile(bsp_port_script):
+    objs.extend(SConscript(bsp_port_script, variant_dir=bsp_vdir + '/board/ports', duplicate=0))
 
 # make a building
 DoBuilding(TARGET, objs)