11026d0579
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.
48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import os
|
|
import sys
|
|
import rtconfig
|
|
|
|
if os.getenv('RTT_ROOT'):
|
|
RTT_ROOT = os.getenv('RTT_ROOT')
|
|
else:
|
|
RTT_ROOT = os.path.join(Dir('#').get_abspath(), '..', '..', '..')
|
|
|
|
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
|
|
from building import *
|
|
|
|
TARGET = 'rtthread-lpc40xx.' + rtconfig.TARGET_EXT
|
|
|
|
env = Environment(tools = ['mingw'],
|
|
AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
|
|
CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
|
|
AR = rtconfig.AR, ARFLAGS = '-rc',
|
|
LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
|
|
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
|
|
|
|
Export('RTT_ROOT')
|
|
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)
|