12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines#!/usr/bin/python
22d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
32d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesimport os, sys, subprocess
42d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesfrom android_common import *
52d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
62d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
72d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hineshere = os.path.abspath(os.path.dirname(sys.argv[0]))
82d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesandroid_run = os.path.join(here, 'android_run.py')
92d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
102d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesoutput = None
112d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesoutput_type = 'executable'
122d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
132d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesargs = sys.argv[1:]
142d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hineswhile args:
152d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    arg = args.pop(0)
162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    if arg == '-shared':
172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines        output_type = 'shared'
182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    elif arg == '-c':
192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines        output_type = 'object'
202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    elif arg == '-o':
212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines        output = args.pop(0)
222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesif output == None:
242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    print "No output file name!"
252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    sys.exit(1)
262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesret = subprocess.call(sys.argv[1:])
282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesif ret != 0:
292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    sys.exit(ret)
302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesif output_type in ['executable', 'shared']:
322d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    push_to_device(output)
332d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines
342d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hinesif output_type == 'executable':
352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    os.rename(output, output + '.real')
362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines    os.symlink(android_run, output)
37