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