build.py 1.5 KB

123456789101112131415161718192021222324252627282930313233
  1. import os
  2. import sys
  3. import subprocess
  4. import shutil
  5. import re
  6. import getpass
  7. import glob
  8. def has_build(module_name):
  9. build_module = ['openssl']
  10. if module_name in build_module:
  11. return True
  12. else:
  13. return False
  14. def build(module_name, build_utils, src_dir, bin_dir, install_dir, job_n):
  15. # 设置环境变量
  16. os.environ['ARCH'] = 'arm'
  17. root_dir = os.environ["PRODUCT_ROOT_DIR"]
  18. cross_compile = f'{root_dir}/buildtools/toolchains/gcc-gt675x-10.4.0-2023.06.27-x86_64_aarch64-htnice-linux-gnu/bin/aarch64-htnice-linux-gnu-'
  19. os.environ['CROSS_COMPILE'] = cross_compile
  20. if module_name == 'openssl':
  21. build_utils.copy_files_ignoring_hidden(src_dir, bin_dir)
  22. build_utils.exec_command(['./config', 'no-asm', f'--prefix={install_dir}', f'--cross-compile-prefix={cross_compile}', f'--openssldir={install_dir}'], "config", bin_dir, exit=False)
  23. build_utils.exec_command(['sed', '-i', 's/-m64//g', f'{bin_dir}/Makefile'], "sed", bin_dir, exit=True)
  24. return build_utils.exec_command(['make', f'--directory={bin_dir}', f'--jobs={job_n}'], "make", bin_dir, exit=False)
  25. # subprocess.check_call(['make', f'--directory={root_dir}/system/quectel-cm', f'--jobs={job_n}'])
  26. def build_install(module_name, build_utils, bin_dir, install_dir, job_n):
  27. if module_name == 'openssl':
  28. build_utils.exec_command(['make', 'install', f'--directory={bin_dir}', f'--jobs={job_n}'], "make", bin_dir, exit=False)
  29. return True