3a33906ab1
_TIME_T_DEFINED was pre-defined in order to build jffs2 with VC. While it may cause many side effects.
144 lines
4.1 KiB
Python
Executable File
144 lines
4.1 KiB
Python
Executable File
import os
|
|
import sys
|
|
import rtconfig
|
|
|
|
if os.getenv('RTT_ROOT'):
|
|
RTT_ROOT = os.getenv('RTT_ROOT')
|
|
else:
|
|
RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
|
|
|
|
if os.getenv('RTT_RTGUI'):
|
|
RTT_RTGUI = os.getenv('RTT_RTGUI')
|
|
else:
|
|
# set the rtgui root directory by hand
|
|
# empty string means use the RTGUI in svn
|
|
RTT_RTGUI = os.path.normpath(r'F:\Project\git\rt-gui\components\rtgui')
|
|
# RTT_RTGUI =''
|
|
|
|
sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
|
|
from building import *
|
|
|
|
|
|
env = Environment(TARGET_ARCH='x86')
|
|
|
|
Export('RTT_ROOT')
|
|
Export('rtconfig')
|
|
|
|
if rtconfig.PLATFORM == 'cl':
|
|
TARGET = 'rtthread-win32.' + rtconfig.TARGET_EXT
|
|
|
|
libs = Split('''
|
|
winmm
|
|
gdi32
|
|
winspool
|
|
comdlg32
|
|
advapi32
|
|
shell32
|
|
ole32
|
|
oleaut32
|
|
uuid
|
|
odbc32
|
|
odbccp32
|
|
''')
|
|
definitions = Split('''
|
|
WIN32
|
|
_DEBUG
|
|
_CONSOLE
|
|
MSVC
|
|
''')
|
|
env.Append(CCFLAGS=rtconfig.CFLAGS)
|
|
env.Append(LINKFLAGS=rtconfig.LFLAGS)
|
|
env['LIBS']=libs
|
|
env['CPPDEFINES']=definitions
|
|
elif rtconfig.PLATFORM == 'mingw':
|
|
libs = Split('''
|
|
winmm
|
|
gdi32
|
|
winspool
|
|
comdlg32
|
|
advapi32
|
|
shell32
|
|
ole32
|
|
oleaut32
|
|
uuid
|
|
odbc32
|
|
odbccp32
|
|
''')
|
|
TARGET = 'rtthread-win32.' + 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['LIBS']=libs
|
|
env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
|
|
elif rtconfig.CROSS_TOOL == 'clang-analyze':
|
|
TARGET = 'rtthread'
|
|
env = Environment(toolpath=[os.path.join(RTT_ROOT, 'tools', 'tools')],
|
|
tools = [rtconfig.CROSS_TOOL])
|
|
else:
|
|
TARGET = 'rtthread'
|
|
env['CC']=rtconfig.CC
|
|
env.Append(CCFLAGS=rtconfig.CFLAGS)
|
|
env.Append(LINKFLAGS=rtconfig.LFLAGS)
|
|
env.Append(LIBS=['m'])
|
|
|
|
# prepare building environment
|
|
|
|
objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False, remove_components=['rtgui'])
|
|
if GetDepend('RT_USING_RTGUI'):
|
|
if RTT_RTGUI:
|
|
objs += SConscript(os.path.join(RTT_RTGUI, 'SConscript'),
|
|
variant_dir='build/components/rtgui',
|
|
duplicate=0)
|
|
objs = objs + SConscript(RTT_RTGUI+'/../../demo/examples/SConscript',
|
|
variant_dir='build/examples/gui', duplicate=0)
|
|
else:
|
|
objs += SConscript(os.path.join(RTT_ROOT + '/components/rtgui', 'SConscript'),
|
|
variant_dir='build/components/rtgui',
|
|
duplicate=0)
|
|
objs = objs + SConscript(RTT_ROOT + '/examples/gui/SConscript',
|
|
variant_dir='build/examples/gui', duplicate=0)
|
|
|
|
if GetDepend('RT_USING_TC'):
|
|
objs = objs + SConscript(RTT_ROOT + '/examples/kernel/SConscript', variant_dir = 'build/tc/kernel', duplicate=0)
|
|
|
|
def ObjRemove(objs, remove):
|
|
for item in objs:
|
|
# print type(item), os.path.basename(str(item))
|
|
if os.path.basename(str(item)) in remove:
|
|
objs.remove(item)
|
|
return
|
|
|
|
# build program -shared
|
|
if GetDepend('RT_USING_MODULE'):
|
|
# Remove module.c in $RTT_ROOT/src
|
|
ObjRemove(objs, ['module.obj', 'module.o'])
|
|
|
|
AddOption('--def',
|
|
dest='def',
|
|
action='store_true',
|
|
default=False,
|
|
help='create rthread.def of rtthread.dll on windows')
|
|
if GetOption('def'):
|
|
if rtconfig.PLATFORM == 'mingw':
|
|
env['LINKFLAGS'] = rtconfig.DEFFILE_LFLAGS
|
|
else:
|
|
rtconfig.POST_ACTION = 'createdef.py $TARGET rtthread.def'
|
|
|
|
program = env.Program(TARGET, objs)
|
|
else:
|
|
if rtconfig.PLATFORM == 'cl':
|
|
objs += ['rtthread.def']
|
|
elif rtconfig.PLATFORM == 'mingw':
|
|
rtconfig.POST_ACTION = 'del /Q rtthread.lib \n rename librtthread.a rtthread.lib\n'
|
|
# rtconfig.POST_ACTION = 'lib /machine:i386 /def:rtthread.def /out:rtthread.lib'
|
|
env.SharedLibrary("rtthread.dll", objs)
|
|
program = env.Program(TARGET, 'dummy.c', LIBS='rtthread', LIBPATH='.')
|
|
|
|
else:
|
|
program = env.Program(TARGET, objs)
|
|
|
|
# end building
|
|
EndBuilding(TARGET, program)
|