49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
import os
|
|
import rtconfig
|
|
import subprocess
|
|
from building import *
|
|
Import('RTT_ROOT')
|
|
|
|
group = []
|
|
|
|
cwd = GetCurrentDir()
|
|
CPPPATH = [cwd, cwd + "/kernel"]
|
|
|
|
if not GetDepend(['RT_USING_VDSO']):
|
|
Return('group')
|
|
|
|
if rtconfig.ARCH != "aarch64":
|
|
src = Glob('*.c')
|
|
group = DefineGroup('VDSO', src, depend = ['RT_USING_SMART','RT_USING_VDSO'], CPPPATH = CPPPATH)
|
|
Return('group')
|
|
|
|
list = os.listdir(cwd)
|
|
src = Glob('kernel/*.c')
|
|
src +=Glob('kernel/*.S')
|
|
|
|
if not os.path.exists(cwd + "/user/vdso.lds"):
|
|
Preprocessing("user/vdso.lds.S", ".lds", CPPPATH=[cwd])
|
|
|
|
#aarch64 vdso xmake
|
|
# vdso_file = os.path.join(cwd, 'usr', 'xmake.lua')
|
|
# command = ["xmake", "-F", vdso_file]
|
|
# clean = ["xmake", "clean"]
|
|
|
|
vdso_file = os.path.join(cwd, 'user', 'SConstruct')
|
|
command = ["scons", "-f", vdso_file]
|
|
clean = ["scons", "-f", vdso_file, "--clean"]
|
|
|
|
if not GetOption('clean'):
|
|
result = subprocess.run(command)
|
|
else:
|
|
result = subprocess.run(clean)
|
|
|
|
if result.returncode == 0:
|
|
print("Command executed successfully")
|
|
else:
|
|
print("Command failed with exit code:", result.returncode)
|
|
exit(1)
|
|
|
|
group = DefineGroup('VDSO', src, depend = ['RT_USING_SMART','RT_USING_VDSO'], CPPPATH = CPPPATH)
|
|
Return('group')
|