diff options
Diffstat (limited to 'utils/lxc/Makefile')
-rw-r--r-- | utils/lxc/Makefile | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/utils/lxc/Makefile b/utils/lxc/Makefile new file mode 100644 index 000000000..a613352df --- /dev/null +++ b/utils/lxc/Makefile @@ -0,0 +1,225 @@ +# +# Copyright (C) 2013-2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=lxc +PKG_VERSION:=1.0.5 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://linuxcontainers.org/downloads/ +PKG_MD5SUM:=9d9af9e9e69a831cd50b58d91c786013 + +PKG_BUILD_DEPENDS:=lua +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +LXC_APPLETS_BIN += \ + attach autostart cgroup clone config console create destroy execute \ + freeze info monitor snapshot start stop unfreeze unshare usernsexec wait + +LXC_APPLETS_LIB += \ + monitord user-nic + +LXC_SCRIPTS += \ + checkconfig ls top + +DEPENDS_APPLETS = +libpthread +libcap +liblxc + +DEPENDS_top = +lxc-lua +luafilesystem @BROKEN + + +define Package/lxc/Default + SECTION:=utils + CATEGORY:=Utilities + TITLE:=LXC userspace tools + URL:=http://lxc.sourceforge.net/ + MAINTAINER:=Luka Perkov <luka@openwrt.org> +endef + +define Package/lxc + $(call Package/lxc/Default) + MENU:=1 +endef + +define Package/lxc/description + LXC is the userspace control package for Linux Containers, a lightweight + virtual system mechanism sometimes described as "chroot on steroids". +endef + +define Package/lxc-common + $(call Package/lxc/Default) + TITLE:=LXC common files + DEPENDS:= lxc +endef + +define Package/lxc-hooks + $(call Package/lxc/Default) + TITLE:=LXC virtual machine hooks + DEPENDS:= lxc +endef + +define Package/lxc-templates + $(call Package/lxc/Default) + TITLE:=LXC virtual machine templates + DEPENDS:= lxc @BROKEN +endef + +define Package/liblxc + $(call Package/lxc/Default) + SECTION:=libs + CATEGORY:=Libraries + TITLE:=LXC userspace library + DEPENDS:= lxc +libcap +libpthread +endef + +define Package/lxc-lua + $(call Package/lxc/Default) + TITLE:=LXC Lua bindings + DEPENDS:= lxc +liblua +liblxc +luafilesystem +endef + +define Package/lxc-init + $(call Package/lxc/Default) + TITLE:=LXC Lua bindings + DEPENDS:= lxc +liblxc +endef + +CONFIGURE_ARGS += \ + --disable-apparmor \ + --disable-doc \ + --disable-examples \ + --disable-seccomp + --enable-lua=yes \ + --with-lua-pc="$(STAGING_DIR)/usr/lib/pkgconfig/lua.pc" \ + +MAKE_FLAGS += \ + LUA_INSTALL_CMOD="/usr/lib/lua" \ + LUA_INSTALL_LMOD="/usr/lib/lua" + +define Build/Configure + ( cd $(PKG_BUILD_DIR); ./autogen.sh ); + $(call Build/Configure/Default) +endef + + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include/lxc/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/lxc/* \ + $(1)/usr/include/lxc/ + + $(INSTALL_DIR) $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/liblxc.so* \ + $(1)/usr/lib/ + + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lxc.pc \ + $(1)/usr/lib/pkgconfig/ +endef + + +define Package/lxc/install + true +endef + +define Package/lxc-common/conffiles +/etc/lxc/default.conf +/etc/lxc/lxc.conf +endef + +define Package/lxc-common/install + $(INSTALL_DIR) $(1)/usr/lib/lxc/rootfs + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/lxc/rootfs/README \ + $(1)/usr/lib/lxc/rootfs/ + + $(INSTALL_DIR) $(1)/usr/share/lxc + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/lxc/lxc.functions \ + $(1)/usr/share/lxc/ + + $(INSTALL_DIR) $(1)/etc/lxc/ + $(CP) \ + $(PKG_INSTALL_DIR)/etc/lxc/default.conf \ + $(1)/etc/lxc/ +endef + +define Package/lxc-hooks/install + $(INSTALL_DIR) $(1)/usr/share/lxc/hooks + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/lxc/hooks/mountcgroups \ + $(1)/usr/share/lxc/hooks/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/lxc/hooks/mountecryptfsroot \ + $(1)/usr/share/lxc/hooks/ +endef + +define Package/lxc-templates/install + $(INSTALL_DIR) $(1)/usr/share/lxc/templates/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/lxc/templates/lxc-* \ + $(1)/usr/share/lxc/templates/ +endef + +define Package/liblxc/install + $(INSTALL_DIR) $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/liblxc.so* \ + $(1)/usr/lib/ +endef + +define Package/lxc-lua/install + $(INSTALL_DIR) $(1)/usr/lib/lua + $(CP) \ + $(PKG_INSTALL_DIR)/usr/share/lua/5.1/lxc.lua \ + $(1)/usr/lib/lua/ + $(INSTALL_DIR) $(1)/usr/lib/lua/lxc + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/lua/5.1/lxc/core.so \ + $(1)/usr/lib/lua/lxc/ +endef + +define Package/lxc-init/install + $(INSTALL_DIR) $(1)/sbin + $(CP) \ + $(PKG_INSTALL_DIR)/usr/sbin/init.lxc \ + $(1)/sbin/ +endef + +define GenPlugin + define Package/lxc-$(1) + $(call Package/lxc/Default) + TITLE:=Utility lxc-$(1) from the LXC userspace tools + DEPENDS:= lxc +lxc-common $(2) $(DEPENDS_$(1)) + endef + + define Package/lxc-$(1)/install + $(INSTALL_DIR) $$(1)$(3) + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)$(3)/lxc-$(1) \ + $$(1)$(3)/ + endef + + $$(eval $$(call BuildPackage,lxc-$(1))) +endef + + +$(eval $(call BuildPackage,lxc)) +$(eval $(call BuildPackage,lxc-common)) +$(eval $(call BuildPackage,lxc-hooks)) +$(eval $(call BuildPackage,lxc-templates)) +$(eval $(call BuildPackage,liblxc)) +$(eval $(call BuildPackage,lxc-lua)) +$(foreach u,$(LXC_APPLETS_BIN),$(eval $(call GenPlugin,$(u),$(DEPENDS_APPLETS),"/usr/bin"))) +$(foreach u,$(LXC_APPLETS_LIB),$(eval $(call GenPlugin,$(u),$(DEPENDS_APPLETS),"/usr/lib/lxc"))) +$(foreach u,$(LXC_SCRIPTS),$(eval $(call GenPlugin,$(u),,"/usr/bin"))) |