python-lxc: pass include/library dirs as arguments to setup.py

Signed-off-by: Aleksandr Mezin <mezin.alexander@gmail.com>
This commit is contained in:
Aleksandr Mezin 2016-05-27 15:38:42 +06:00
parent 58a44782d9
commit 00d98acd9f
5 changed files with 43 additions and 64 deletions

1
.gitignore vendored
View File

@ -66,7 +66,6 @@ src/lxc/lxc-wait
src/lxc/lxc-user-nic
src/lxc/version.h
src/python-lxc/setup.py
src/python-lxc/build/
src/python-lxc/lxc/__pycache__/

View File

@ -847,7 +847,6 @@ AC_CONFIG_FILES([
src/lxc/lxc.functions
src/lxc/version.h
src/python-lxc/Makefile
src/python-lxc/setup.py
src/lua-lxc/Makefile

View File

@ -6,21 +6,25 @@ else
DISTSETUPOPTS=
endif
INSTALL_OPTS := install --prefix=$(prefix) --no-compile $(DISTSETUPOPTS)
CALL_SETUP_PY := cd @srcdir@ && $(PYTHON) setup.py build -b @abs_builddir@/build
all:
$(PYTHON) setup.py build
$(CALL_SETUP_PY) build_ext -I @abs_top_srcdir@/src -L @abs_top_builddir@/src/lxc
install:
if [ "$(DESTDIR)" = "" ]; then \
$(PYTHON) setup.py install --prefix=$(prefix) --no-compile $(DISTSETUPOPTS); \
if [ -z "$(DESTDIR)" ]; then \
$(CALL_SETUP_PY) $(INSTALL_OPTS); \
else \
$(PYTHON) setup.py install --root=$(DESTDIR) --prefix=$(prefix) --no-compile $(DISTSETUPOPTS); \
$(CALL_SETUP_PY) $(INSTALL_OPTS) --root=$(DESTDIR); \
fi
clean-local:
rm -rf build
rm -rf @builddir@/build
endif
EXTRA_DIST = \
setup.py \
lxc.c \
lxc/__init__.py \
examples/api_test.py \

34
src/python-lxc/setup.py Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
#
# python-lxc: Python bindings for LXC
#
# (C) Copyright Canonical Ltd. 2012
#
# Authors:
# Stéphane Graber <stgraber@ubuntu.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
# USA
from distutils.core import setup, Extension
setup(name='_lxc',
version='0.1',
description='LXC',
packages=['lxc'],
package_dir={'lxc': 'lxc'},
ext_modules=[Extension('_lxc', sources=['lxc.c'], libraries=['lxc'])],
)

View File

@ -1,57 +0,0 @@
#!/usr/bin/env python3
#
# python-lxc: Python bindings for LXC
#
# (C) Copyright Canonical Ltd. 2012
#
# Authors:
# Stéphane Graber <stgraber@ubuntu.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
# USA
import os, os.path
from distutils.core import setup, Extension
# Distutils doesn't cope well with source files that have relative paths going
# up in the directory tree: it tries to navigate outside of the build dir and
# fails miserably. Therefore, we will instead cd to the source directory,
# run this script from there, but write the build products to the correct path.
#
# Since we will be changing directories before building, we must transform
# all the path variables to their forms relative to srcdir.
srcdir, builddir, top_srcdir, top_builddir = map(os.path.abspath,
["@srcdir@", "@builddir@", "@top_srcdir@", "@top_builddir@"])
builddir, top_srcdir, top_builddir = map(lambda d: os.path.relpath(d, srcdir),
[builddir, top_srcdir, top_builddir])
os.chdir(srcdir)
module = Extension('_lxc', sources=['lxc.c'],
include_dirs=[os.path.join(top_srcdir, 'src'),
os.path.join(top_builddir, 'src')],
library_dirs=[os.path.join(top_builddir, 'src/lxc')],
libraries=['lxc'])
setup(name='_lxc',
version='0.1',
description='LXC',
packages=['lxc'],
package_dir={'lxc': 'lxc'},
ext_modules=[module],
options={'build': {'build_base': os.path.join(builddir, 'build')}})