44 lines
881 B
Python
Executable file
44 lines
881 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
|
|
sofiles = [ ]
|
|
|
|
for dir in sys.argv[2:]:
|
|
|
|
for fn in os.listdir(dir):
|
|
fn = os.path.join(dir, fn)
|
|
|
|
if not fn.endswith(".so"):
|
|
continue
|
|
|
|
if not os.path.exists(fn + ".o"):
|
|
continue
|
|
if not os.path.exists(fn + ".libs"):
|
|
continue
|
|
|
|
sofiles.append(fn)
|
|
|
|
# The raw argument list.
|
|
args = [ ]
|
|
|
|
for fn in sofiles:
|
|
afn = fn + ".o"
|
|
libsfn = fn + ".libs"
|
|
|
|
args.append(afn)
|
|
args.extend(file(libsfn).read().split(" "))
|
|
|
|
unique_args = [ ]
|
|
|
|
while args:
|
|
a = args.pop()
|
|
if a not in unique_args:
|
|
unique_args.insert(0, a)
|
|
|
|
|
|
unique_args = ' '.join([ x for x in unique_args if x.endswith('.so.o') ])
|
|
print 'Biglink create %s library' % sys.argv[1]
|
|
subprocess.Popen(("ar -q %s " % sys.argv[1]) + unique_args, shell=True).communicate()
|