#!/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] (machine, platform) = get_platform(bin_dir) 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')