56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | #!/usr/bin/env python | ||
|  | 
 | ||
|  | import os | ||
|  | import sys | ||
|  | import argparse | ||
|  | import subprocess | ||
|  | from shutil import copy | ||
|  | 
 | ||
|  | def exec_command(cmd, log_path='out/build.log', **kwargs): | ||
|  |     process = subprocess.Popen(cmd) | ||
|  |     process.wait() | ||
|  |     ret_code = process.returncode | ||
|  | 
 | ||
|  |     if ret_code != 0: | ||
|  |         raise Exception("{} failed, return code is {}".format(cmd, ret_code)) | ||
|  | 
 | ||
|  | def musl_copy_file(src, dest): | ||
|  |     dest_dir = os.path.dirname(dest) | ||
|  |     if not os.path.exists(dest_dir): | ||
|  |         os.makedirs(dest_dir) | ||
|  |     copy(src, dest) | ||
|  | 
 | ||
|  | def main(): | ||
|  |     parser = argparse.ArgumentParser(description=__doc__) | ||
|  | 
 | ||
|  |     parser.add_argument('--input', | ||
|  |                         required = True, | ||
|  |                         help = 'The header source path', | ||
|  |                         metavar = 'FILE') | ||
|  | 
 | ||
|  |     parser.add_argument('--output', | ||
|  |                         required = True, | ||
|  |                         help = 'The output directory', | ||
|  |                         metavar = 'FILE') | ||
|  | 
 | ||
|  |     parser.add_argument('--ldpath', | ||
|  |                         required = True, | ||
|  |                         help = 'The ld file path', | ||
|  |                         metavar = 'FILE') | ||
|  | 
 | ||
|  |     parser.add_argument('--crtplus', | ||
|  |                         required = True, | ||
|  |                         help = 'The crtplus file path', | ||
|  |                         metavar = 'FILE')                         | ||
|  | 
 | ||
|  |     args = parser.parse_args() | ||
|  | 
 | ||
|  |     if os.path.basename(args.input) == 'crtn.o': | ||
|  |         ldargs = [args.ldpath, "-r", args.input, args.crtplus, "-o", args.output] | ||
|  |         exec_command(ldargs) | ||
|  |     else: | ||
|  |         musl_copy_file(args.input, args.output) | ||
|  | 
 | ||
|  | if __name__ == "__main__": | ||
|  |     sys.exit(main()) |