]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
build: Fix support for split build and source dirs
authorDaniel Miranda <danielkza2@gmail.com>
Thu, 21 Aug 2014 10:56:39 +0000 (07:56 -0300)
committerStéphane Graber <stgraber@ubuntu.com>
Fri, 22 Aug 2014 19:05:27 +0000 (14:05 -0500)
Building LXC in a separate target directory, by running configure from
outside the source tree, failed with multiple errors, mostly in the
Python and Lua extensions, due to assuming the source dir and build dir
are the same in a few places. To fix that:

- Pre-process setup.py with the appropriate directories at configure
  time
- Introduce the build dir as an include path in the Lua Makefile
- Link the default container configuration file from the alternatives
  in the configure stage, instead of setting a variable and using it
  in the Makefile

Signed-off-by: Daniel Miranda <danielkza2@gmail.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
config/etc/Makefile.am
configure.ac
src/lua-lxc/Makefile.am
src/python-lxc/Makefile.am
src/python-lxc/setup.py.in [moved from src/python-lxc/setup.py with 79% similarity]

index 81d770921a4c1af823a6f859ef67e9636ca5cdb4..03193da0458d8d4fe1a86353fa7f19945206f4f2 100644 (file)
@@ -1,12 +1,8 @@
 configdir = $(sysconfdir)/lxc
 config_DATA = default.conf
-distroconf = @LXC_DISTRO_CONF@
 
 EXTRA_DIST = default.conf.ubuntu default.conf.libvirt default.conf.unknown
 
-default.conf:
-       cp $(distroconf) $@
-
 clean-local:
        @$(RM) -f default.conf
 
index 462217e06e9a56e2ca5414c48febb11bc045ba31..152ef5a49535c5c23ca007f1f21aa7db4735eafe 100644 (file)
@@ -73,6 +73,8 @@ AC_MSG_RESULT([$with_distro])
 AM_CONDITIONAL([HAVE_DEBIAN], [test x"$with_distro" = "xdebian" -o x"$with_distro" = "xubuntu" -o x"$with_distro" = "xraspbian"])
 AM_CONDITIONAL([DISTRO_UBUNTU], [test "x$with_distro" = "xubuntu"])
 
+AC_CONFIG_LINKS([config/etc/default.conf:config/etc/${distroconf}])
+
 # Check for init system type
 AC_MSG_CHECKING([for init system type])
 AC_ARG_WITH([init-script],
@@ -523,7 +525,6 @@ AS_AC_EXPAND(LXC_DEFAULT_CONFIG, "$sysconfdir/lxc/default.conf")
 AS_AC_EXPAND(DATADIR, "$datadir")
 AS_AC_EXPAND(LOCALSTATEDIR, "$localstatedir")
 AS_AC_EXPAND(DOCDIR, "$docdir")
-AS_AC_EXPAND(LXC_DISTRO_CONF, "$distroconf")
 AS_AC_EXPAND(LXC_GENERATE_DATE, "$(date)")
 AS_AC_EXPAND(LXCPATH, "$with_config_path")
 AS_AC_EXPAND(LXC_GLOBAL_CONF, "$with_global_conf")
@@ -759,6 +760,7 @@ AC_CONFIG_FILES([
        src/lxc/lxc.functions
        src/lxc/version.h
        src/python-lxc/Makefile
+       src/python-lxc/setup.py
 
        src/lua-lxc/Makefile
 
index 6201adcafd931da79941df61ec13a7f5f0c52f70..9b73df133557b7c77ebd8adac41aedb24de2c05b 100644 (file)
@@ -11,13 +11,13 @@ so_PROGRAMS = core.so
 
 core_so_SOURCES = core.c
 
-AM_CFLAGS=-I$(top_srcdir)/src $(LUA_CFLAGS) -DVERSION=\"$(VERSION)\" -DLXCPATH=\"$(LXCPATH)\"
+AM_CFLAGS=-I$(top_builddir)/src -I$(top_srcdir)/src $(LUA_CFLAGS) -DVERSION=\"$(VERSION)\" -DLXCPATH=\"$(LXCPATH)\"
 
 core_so_CFLAGS = -fPIC -DPIC $(AM_CFLAGS)
 
 core_so_LDFLAGS = \
        -shared \
-       -L$(top_srcdir)/src/lxc \
+       -L$(top_builddir)/src/lxc \
        -Wl,-soname,core.so.$(firstword $(subst ., ,$(VERSION)))
 
 core_so_LDADD = -llxc
index b1c10b54f50c546bb4b97340ef0d0118bb73ca53..4a014df7d8b745a0f10fc397c62dfee6cf1cccb6 100644 (file)
@@ -7,7 +7,7 @@ else
 endif
 
 all:
-       CFLAGS="$(CFLAGS) -I ../../src -L../../src/lxc/" $(PYTHON) setup.py build
+       $(PYTHON) setup.py build
 
 install:
        if [ "$(DESTDIR)" = "" ]; then \
@@ -21,7 +21,6 @@ clean-local:
 
 endif
 EXTRA_DIST = \
-       setup.py \
        lxc.c \
        lxc/__init__.py \
        examples/api_test.py \
similarity index 79%
rename from src/python-lxc/setup.py
rename to src/python-lxc/setup.py.in
index a1061f14e7dccf8cb382711bb4054dc1bcf6ca51..31e849c166d36b94969532ccfa9ac74bbadcb241 100644 (file)
 #
 # 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
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+# USA
 
 from distutils.core import setup, Extension
 
-module = Extension('_lxc', sources=['lxc.c'], libraries=['lxc'])
+module = Extension('_lxc', sources=['@srcdir@/lxc.c'],
+                   include_dirs=['@top_builddir@/src', '@top_srcdir@/src'],
+                   library_dirs=['@top_builddir@/src/lxc'], libraries=['lxc'])
 
 setup(name='_lxc',
       version='0.1',
       description='LXC',
       packages=['lxc'],
-      package_dir={'lxc': 'lxc'},
+      package_dir={'lxc': '@srcdir@/lxc'},
       ext_modules=[module])