|
@@ -97,6 +97,12 @@ def main():
|
|
'--ar', dest='ar_exe', required=False,
|
|
'--ar', dest='ar_exe', required=False,
|
|
help='The ar executable to use, finds \'ar\' in the path if not given',
|
|
help='The ar executable to use, finds \'ar\' in the path if not given',
|
|
type=str, action='store')
|
|
type=str, action='store')
|
|
|
|
+ parser.add_argument(
|
|
|
|
+ '--use-libtool', dest='use_libtool', action='store_true', default=False)
|
|
|
|
+ parser.add_argument(
|
|
|
|
+ '--libtool', dest='libtool_exe', required=False,
|
|
|
|
+ help='The libtool executable to use, finds \'libtool\' in the path if not given',
|
|
|
|
+ type=str, action='store')
|
|
parser.add_argument(
|
|
parser.add_argument(
|
|
'archives', metavar='archives', nargs='+',
|
|
'archives', metavar='archives', nargs='+',
|
|
help='The archives to merge')
|
|
help='The archives to merge')
|
|
@@ -109,6 +115,13 @@ def main():
|
|
if not ar_exe:
|
|
if not ar_exe:
|
|
print_and_exit("failed to find 'ar' executable")
|
|
print_and_exit("failed to find 'ar' executable")
|
|
|
|
|
|
|
|
+ if args.use_libtool:
|
|
|
|
+ libtool_exe = args.libtool_exe
|
|
|
|
+ if not libtool_exe:
|
|
|
|
+ libtool_exe = distutils.spawn.find_executable('libtool')
|
|
|
|
+ if not libtool_exe:
|
|
|
|
+ print_and_exit("failed to find 'libtool' executable")
|
|
|
|
+
|
|
if len(args.archives) < 2:
|
|
if len(args.archives) < 2:
|
|
print_and_exit('fewer than 2 inputs provided')
|
|
print_and_exit('fewer than 2 inputs provided')
|
|
archives = [find_and_diagnose_missing(ar, args.search_paths)
|
|
archives = [find_and_diagnose_missing(ar, args.search_paths)
|
|
@@ -127,8 +140,13 @@ def main():
|
|
out = execute_command_verbose([ar_exe, 't', arc])
|
|
out = execute_command_verbose([ar_exe, 't', arc])
|
|
files.extend(out.splitlines())
|
|
files.extend(out.splitlines())
|
|
|
|
|
|
- execute_command_verbose([ar_exe, 'rcs', args.output] + files,
|
|
|
|
- cwd=temp_directory_root, verbose=args.verbose)
|
|
|
|
|
|
+ if args.use_libtool:
|
|
|
|
+ files = [f for f in files if not f.startswith('__.SYMDEF')]
|
|
|
|
+ execute_command_verbose([libtool_exe, '-static', '-o', args.output] + files,
|
|
|
|
+ cwd=temp_directory_root, verbose=args.verbose)
|
|
|
|
+ else:
|
|
|
|
+ execute_command_verbose([ar_exe, 'rcs', args.output] + files,
|
|
|
|
+ cwd=temp_directory_root, verbose=args.verbose)
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
if __name__ == '__main__':
|