diff --git a/tools/building.py b/tools/building.py index 54193fcf2f..ae9c8da6d1 100644 --- a/tools/building.py +++ b/tools/building.py @@ -192,18 +192,25 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [ LINKCOMSTR = 'LINK $TARGET' ) - # board build script - objs = SConscript('SConscript', variant_dir='build', duplicate=0) Repository(Rtt_Root) + + # we need to seperate the variant_dir for BSPs and the kernels. BSPs could + # have their own components etc. If they point to the same folder, SCons + # would find the wrong source code to compile. + bsp_vdir = 'build/bsp' + kernel_vdir = 'build/kernel' + # board build script + objs = SConscript('SConscript', variant_dir=bsp_vdir, duplicate=0) # include kernel - objs.extend(SConscript(Rtt_Root + '/src/SConscript', variant_dir='build/src', duplicate=0)) + objs.extend(SConscript(Rtt_Root + '/src/SConscript', variant_dir=kernel_vdir + '/src', duplicate=0)) # include libcpu if not has_libcpu: - objs.extend(SConscript(Rtt_Root + '/libcpu/SConscript', variant_dir='build/libcpu', duplicate=0)) + objs.extend(SConscript(Rtt_Root + '/libcpu/SConscript', + variant_dir=kernel_vdir + '/libcpu', duplicate=0)) # include components objs.extend(SConscript(Rtt_Root + '/components/SConscript', - variant_dir='build/components', + variant_dir=kernel_vdir + '/components', duplicate=0, exports='remove_components'))