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.
55 lines
1.5 KiB
Python
55 lines
1.5 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 = 'build/rtthread_lpc43xx.' + 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':
|
|
print 'build M0 code first'
|
|
if sys.platform.startswith('linux'):
|
|
import glob
|
|
ocwd = os.getcwdu()
|
|
os.chdir('../M0')
|
|
res = os.system('scons')
|
|
if res:
|
|
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.
|
|
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)
|