1# Prefer setuptools, fall back to distutils 2try: 3 from setuptools import setup, Extension 4except ImportError: 5 from distutils.core import setup, Extension 6import os, sys 7 8XEN_ROOT = "../.." 9 10SHLIB_libxenctrl = os.environ['SHLIB_libxenctrl'].split() 11SHLIB_libxenguest = os.environ['SHLIB_libxenguest'].split() 12SHLIB_libxenstore = os.environ['SHLIB_libxenstore'].split() 13 14extra_compile_args = [ "-fno-strict-aliasing" ] 15 16PATH_XEN = XEN_ROOT + "/tools/include" 17PATH_LIBXENTOOLLOG = XEN_ROOT + "/tools/libs/toollog" 18PATH_LIBXENEVTCHN = XEN_ROOT + "/tools/libs/evtchn" 19PATH_LIBXENCTRL = XEN_ROOT + "/tools/libs/ctrl" 20PATH_LIBXENGUEST = XEN_ROOT + "/tools/libs/guest" 21PATH_XENSTORE = XEN_ROOT + "/tools/libs/store" 22 23xc = Extension("xc", 24 extra_compile_args = extra_compile_args, 25 include_dirs = [ PATH_XEN, 26 PATH_LIBXENTOOLLOG + "/include", 27 PATH_LIBXENEVTCHN + "/include", 28 PATH_LIBXENCTRL + "/include", 29 PATH_LIBXENGUEST + "/include", 30 "xen/lowlevel/xc" ], 31 library_dirs = [ PATH_LIBXENCTRL, PATH_LIBXENGUEST ], 32 libraries = [ "xenctrl", "xenguest" ], 33 depends = [ PATH_LIBXENCTRL + "/libxenctrl.so", PATH_LIBXENGUEST + "/libxenguest.so" ], 34 extra_link_args = SHLIB_libxenctrl + SHLIB_libxenguest, 35 sources = [ "xen/lowlevel/xc/xc.c" ]) 36 37xs = Extension("xs", 38 extra_compile_args = extra_compile_args, 39 include_dirs = [ PATH_XEN, PATH_XENSTORE + "/include", "xen/lowlevel/xs" ], 40 library_dirs = [ PATH_XENSTORE ], 41 libraries = [ "xenstore" ], 42 depends = [ PATH_XENSTORE + "/libxenstore.so" ], 43 extra_link_args = SHLIB_libxenstore, 44 sources = [ "xen/lowlevel/xs/xs.c" ]) 45 46plat = os.uname()[0] 47modules = [ xc, xs ] 48 49setup(name = 'xen', 50 version = '3.0', 51 description = 'Xen', 52 packages = ['xen', 53 'xen.migration', 54 'xen.lowlevel', 55 ], 56 ext_package = "xen.lowlevel", 57 ext_modules = modules 58 ) 59