47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | 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') |