VirtualBox

Changeset 21195 in vbox for trunk/src/libs


Ignore:
Timestamp:
Jul 3, 2009 12:26:16 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
49498
Message:

Python: multiversion for Solaris

Location:
trunk/src/libs/xpcom18a4/python
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/xpcom18a4/python/Makefile.kmk

    r20972 r21195  
    2424
    2525# list of supported Python versions
    26 $(eval $(patsubst %|,%$(NL),$(shell $(VBOX_BLD_PYTHON) $(PATH_SUB_CURRENT)/gen_python_deps.py)))
     26$(eval $(patsubst %|,%$(NL),$(shell $(VBOX_BLD_PYTHON) $(PATH_SUB_CURRENT)/gen_python_deps.py $(KBUILD_TARGET) $(KBUILD_TARGET_ARCH))))
    2727
    2828# Python Client Module - the C++/XPCOM bits.
  • trunk/src/libs/xpcom18a4/python/gen_python_deps.py

    r20971 r21195  
    2323known = {}
    2424
    25 def checkPair(p,v,dllpre,dllsuff):
     25def checkPair(p, v,dllpre,dllsuff, do_bitness_magic):
    2626    file =  os.path.join(p, "include", "python"+v, "Python.h")
    27     # or just stat()?
    2827    if not os.path.isfile(file):
    2928        return None
     29    if do_bitness_magic:
     30        lib64 = os.path.join(p, "lib", "64", dllpre+"python"+v+dllsuff)
     31    else:
     32        lib64 = None
    3033    return [os.path.join(p, "include", "python"+v),
    31             os.path.join(p, "lib", dllpre+"python"+v+dllsuff)]
     34            os.path.join(p, "lib", dllpre+"python"+v+dllsuff),
     35            lib64]
     36
     37def print_vars(vers, known, sep, do_bitness_magic):
     38    print "VBOX_PYTHON%s_INC=%s%s" %(vers, known[0], sep)
     39    if do_bitness_magic:
     40       print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[2], sep)
     41    else:
     42       print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[1], sep)
     43
    3244
    3345def main(argv):
    3446    dllpre = "lib"
    3547    dllsuff = ".so"
    36     if sys.platform == 'darwin':
     48    do_bitness_magic = 0
     49
     50    if len(argv) > 1:
     51        target = argv[1]
     52    else:
     53        target = sys.platform
     54
     55    if len(argv) > 2:
     56        arch = argv[2]   
     57    else:
     58        arch = "unknown"
     59
     60    if target == 'darwin':
    3761        prefixes.insert(0, '/Developer/SDKs/MacOSX10.4u.sdk/usr')
    3862        prefixes.insert(0, '/Developer/SDKs/MacOSX10.5.sdk/usr')
    3963        dllsuff = '.dylib'
     64
     65    if target == 'solaris' and arch == 'amd64':
     66        do_bitness_magic = 1
    4067   
    4168    for v in versions:
    4269        for p in prefixes:
    43             c = checkPair(p, v, dllpre, dllsuff)
     70            c = checkPair(p, v, dllpre, dllsuff, do_bitness_magic)
    4471            if c is not None:
    4572                known[v] = c
     
    5582            d = k
    5683        vers = k.replace('.', '')
    57         print "VBOX_PYTHON%s_INC=%s%s" %(vers, known[k][0], sep)
    58         print "VBOX_PYTHON%s_LIB=%s%s" %(vers, known[k][1], sep)
     84        print_vars(vers, known[k], sep, do_bitness_magic)
    5985    if d is not None:
    60         print "VBOX_PYTHONDEF_INC=%s%s" %(known[d][0], sep)
    61         print "VBOX_PYTHONDEF_LIB=%s%s" %(known[d][1], sep)
     86        print_vars("DEF", known[d], sep, do_bitness_magic)
    6287
    6388if __name__ == '__main__':
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette