2021-08-21 20:37:20 +01:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
import sys
|
|
|
|
|
import os
|
|
|
|
|
import errno
|
|
|
|
|
from shutil import copy2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_platform(out_dir):
|
|
|
|
|
platform_file = open(out_dir + '/target.txt')
|
|
|
|
|
content = platform_file.read()
|
|
|
|
|
spl = content.find('-')
|
|
|
|
|
return (content[:spl], content[spl + 1:])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def copy_headers(src_dir, dest_dir):
|
|
|
|
|
for filename in os.listdir(src_dir):
|
|
|
|
|
if filename.endswith(".h") and not filename.startswith("__"):
|
|
|
|
|
copy2(os.path.join(src_dir, filename), dest_dir)
|
|
|
|
|
continue
|
|
|
|
|
else:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def mkdir_p(path):
|
|
|
|
|
try:
|
|
|
|
|
os.makedirs(path)
|
|
|
|
|
except OSError as exc:
|
|
|
|
|
if exc.errno == errno.EEXIST and os.path.isdir(path):
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
raise
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
source_dir = sys.argv[1]
|
|
|
|
|
bin_dir = sys.argv[2]
|
|
|
|
|
sysroot_dir = sys.argv[3]
|
2021-08-26 13:29:09 +01:00
|
|
|
# (machine, platform) = get_platform(bin_dir)
|
|
|
|
|
machine = sys.argv[4]
|
|
|
|
|
platform = sys.argv[5]
|
2021-08-21 20:37:20 +01:00
|
|
|
|
|
|
|
|
base_headers_path = '{}/photon/libc/include'.format(source_dir)
|
|
|
|
|
platform_headers_path = '{}/photon/libc/sys/{}'.format(source_dir, platform)
|
|
|
|
|
platform_sys_headers_path = '{}/photon/libc/sys/{}/sys'.format(source_dir, platform)
|
|
|
|
|
platform_sys_arch_headers_path = '{}/photon/libc/sys/{}/machine/{}'.format(source_dir, platform, machine)
|
|
|
|
|
|
|
|
|
|
machine_arch_headers_path = '{}/photon/libc/machine/{}'.format(source_dir, machine)
|
|
|
|
|
machine_generic_headers_path = '{}/photon/libc/include/machine'.format(source_dir)
|
|
|
|
|
|
|
|
|
|
mkdir_p(sysroot_dir + '/usr/include/sys')
|
|
|
|
|
mkdir_p(sysroot_dir + '/usr/include/machine')
|
|
|
|
|
|
|
|
|
|
copy_headers(base_headers_path, sysroot_dir + '/usr/include')
|
|
|
|
|
copy_headers(platform_headers_path, sysroot_dir + '/usr/include')
|
|
|
|
|
copy_headers(platform_sys_headers_path, sysroot_dir + '/usr/include/sys')
|
|
|
|
|
copy_headers(platform_sys_arch_headers_path, sysroot_dir + '/usr/include/sys')
|
|
|
|
|
|
|
|
|
|
#copy_headers(machine_arch_headers_path, sysroot_dir + '/usr/include/machine')
|
|
|
|
|
copy_headers(machine_generic_headers_path, sysroot_dir + '/usr/include/machine')
|