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 \
--- /dev/null
+#!/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'])],
+ )
+++ /dev/null
-#!/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')}})