47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
Import('rtconfig')
 | 
						|
from building import *
 | 
						|
import os
 | 
						|
 | 
						|
cwd     = GetCurrentDir()
 | 
						|
src     = []
 | 
						|
CPPPATH = [cwd]
 | 
						|
 | 
						|
support_arch  = {"arm": ["cortex-m3", "cortex-m4", "cortex-m7", "arm926", "cortex-a"],
 | 
						|
                 "aarch64":["cortex-a"],
 | 
						|
                 "risc-v": ["rv64"],
 | 
						|
                 "x86": ["i386"]}
 | 
						|
platform_file = {'armcc': 'rvds.S', 'gcc': 'gcc.S', 'iar': 'iar.S'}
 | 
						|
 | 
						|
platform = rtconfig.PLATFORM
 | 
						|
arch     = rtconfig.ARCH
 | 
						|
cpu      = rtconfig.CPU
 | 
						|
 | 
						|
# fix the cpu for risc-v
 | 
						|
if arch == 'risc-v':
 | 
						|
    rv64 = ['virt64', 'c906']
 | 
						|
    if cpu in rv64:
 | 
						|
        cpu = 'rv64'
 | 
						|
 | 
						|
if platform in platform_file.keys(): # support platforms
 | 
						|
    if arch in support_arch.keys() and cpu in support_arch[arch]:
 | 
						|
        asm_path = 'arch/' + arch + '/' + cpu + '/*_' + platform_file[platform]
 | 
						|
        arch_common = 'arch/' + arch + '/' + 'common/*.c'
 | 
						|
        if not GetDepend('ARCH_MM_MMU'):
 | 
						|
            excluded_files = ['ioremap.c', 'lwp_futex.c', 'lwp_mm_area.c', 'lwp_pmutex.c', 'lwp_shm.c', 'lwp_user_mm.c']
 | 
						|
            src += [f for f in Glob('*.c') if os.path.basename(str(f)) not in excluded_files] + Glob(asm_path) + Glob(arch_common)
 | 
						|
        else:
 | 
						|
            src += Glob('*.c') + Glob(asm_path) + Glob(arch_common)
 | 
						|
        src += Glob('arch/' + arch + '/' + cpu + '/*.c')
 | 
						|
        CPPPATH = [cwd]
 | 
						|
        CPPPATH += [cwd + '/arch/' + arch + '/' + cpu]
 | 
						|
 | 
						|
# Terminal I/O Subsystem
 | 
						|
termios_path = ['./terminal/', './terminal/freebsd/']
 | 
						|
for item in termios_path:
 | 
						|
    src += Glob(item + '*.c')
 | 
						|
CPPPATH += ['./terminal/']
 | 
						|
 | 
						|
group = DefineGroup('lwP', src, depend = ['RT_USING_SMART'], CPPPATH = CPPPATH)
 | 
						|
 | 
						|
Return('group')
 |