yasm_osx_fat.py 938 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python
  2. import sys
  3. import os
  4. includes = sys.argv[1]
  5. output_file = sys.argv[2]
  6. input_file = sys.argv[3]
  7. can_remove = {}
  8. lipo_command = ''
  9. exit_code = 1
  10. for arch in ['32', '64']:
  11. if arch == '32' and input_file.endswith('x86_64.asm'):
  12. can_remove[arch] = False
  13. else:
  14. command = 'yasm ' + includes + ' -f macho' + arch + ' -D X86_' + arch + ' -o ' + output_file + '.' + arch + ' ' + input_file
  15. print(command)
  16. if os.system(command) == 0:
  17. lipo_command += output_file + '.' + arch + ' '
  18. can_remove[arch] = True
  19. else:
  20. can_remove[arch] = False
  21. if lipo_command != '':
  22. lipo_command = 'lipo -create ' + lipo_command + '-output ' + output_file
  23. print(lipo_command)
  24. if os.system(lipo_command) == 0:
  25. exit_code = 0
  26. for arch in ['32', '64']:
  27. if can_remove[arch]:
  28. os.remove(output_file + '.' + arch)
  29. sys.exit(exit_code)