[CRIU] [PATCH 4/4] compel: Add installation
Cyrill Gorcunov
gorcunov at openvz.org
Tue Nov 15 10:02:01 PST 2016
To ship plugins, libs and dev headers.
Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
Makefile.compel | 13 ++++++++++---
Makefile.install | 9 ++++++++-
compel/Makefile | 37 ++++++++++++++++++++++++++++++++++++-
compel/plugins/Makefile | 26 ++++++++++++++++++++++++++
4 files changed, 80 insertions(+), 5 deletions(-)
diff --git a/Makefile.compel b/Makefile.compel
index 42d05bc412f0..d15b26763b9b 100644
--- a/Makefile.compel
+++ b/Makefile.compel
@@ -35,6 +35,10 @@ compel-deps += $(COMPEL_VERSION_HEADER)
compel-deps += $(CONFIG_HEADER)
compel-deps += include/common/asm
+LIBCOMPEL_SO := libcompel.so
+LIBCOMPEL_A := libcompel.a
+export LIBCOMPEL_SO LIBCOMPEL_A
+
#
# Compel itself.
compel/%: $(compel-deps) compel/plugins/std.built-in.o .FORCE
@@ -58,14 +62,17 @@ compel/plugins/shmem.built-in.o: $(compel-deps) .FORCE
compel/plugins/fds.built-in.o: $(compel-deps) .FORCE
$(Q) $(MAKE) $(build)=compel/plugins $@
-compel/compel: compel/built-in.o compel/libcompel.a | $(compel-deps)
+compel/compel: compel/built-in.o compel/$(LIBCOMPEL_A) | $(compel-deps)
$(call msg-link, $@)
$(Q) $(CC) $(CFLAGS) $^ $(WRAPFLAGS) $(LDFLAGS) -rdynamic -o $@
#
# And compel library.
-LIBCOMPEL_SO := libcompel.so
LIBCOMPEL_SO_CFLAGS += $(CFLAGS) -rdynamic -Wl,-soname,$(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR)
-compel/$(LIBCOMPEL_SO): compel/libcompel.a
+compel/$(LIBCOMPEL_SO): compel/$(LIBCOMPEL_A)
$(call msg-link, $@)
$(Q) $(CC) -shared $(LIBCOMPEL_SO_CFLAGS) -o $@ -Wl,--whole-archive $^ -Wl,--no-whole-archive $(LDFLAGS)
+
+compel-install-targets += compel/$(LIBCOMPEL_SO)
+compel-install-targets += compel/compel
+compel-install-targets += compel/plugins/std.built-in.o
diff --git a/Makefile.install b/Makefile.install
index 939bcf9cbbef..9e45e0e9f4d3 100644
--- a/Makefile.install
+++ b/Makefile.install
@@ -46,7 +46,12 @@ install-criu: criu
$(Q) $(MAKE) $(build)=criu install
.PHONY: install-criu
-install: install-man install-lib install-criu
+install-compel: $(compel-install-targets)
+ $(Q) $(MAKE) $(build)=compel install
+ $(Q) $(MAKE) $(build)=compel/plugins install
+.PHONY: install-compel
+
+install: install-man install-lib install-criu install-compel
@true
.PHONY: install
@@ -54,4 +59,6 @@ uninstall:
$(Q) $(MAKE) -C Documentation $@
$(Q) $(MAKE) -C lib $@
$(Q) $(MAKE) -C criu $@
+ $(Q) $(MAKE) $(build)=compel $@
+ $(Q) $(MAKE) $(build)=compel/plugins $@
.PHONY: uninstall
diff --git a/compel/Makefile b/compel/Makefile
index 27ef59c52bc5..4a561c83bc4d 100644
--- a/compel/Makefile
+++ b/compel/Makefile
@@ -14,7 +14,7 @@ ccflags-y += -fPIC
ccflags-y += -I compel/include/uapi
ccflags-y += -I compel/plugins/include/uapi
-lib-name := libcompel.a
+lib-name := $(LIBCOMPEL_A)
lib-y += src/lib/log.o
host-lib-y += src/lib/log.o
@@ -51,3 +51,38 @@ endif
cleanup-y += compel/compel
cleanup-y += compel/compel-host
cleanup-y += compel/libcompel.so
+
+install: compel/compel compel/$(LIBCOMPEL_SO) compel/$(LIBCOMPEL_A)
+ $(E) " INSTALL " compel
+ $(Q) mkdir -p $(DESTDIR)$(SBINDIR)
+ $(Q) install -m 755 compel/compel $(DESTDIR)$(SBINDIR)
+ $(E) " INSTALL " $(LIBCOMPEL_SO)
+ $(Q) mkdir -p $(DESTDIR)$(LIBDIR)
+ $(Q) install -m 0644 compel/$(LIBCOMPEL_SO) $(DESTDIR)$(LIBDIR)
+ $(Q) install -m 755 compel/$(LIBCOMPEL_SO) $(DESTDIR)$(LIBDIR)/$(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR).$(COMPEL_SO_VERSION_MINOR)
+ $(Q) ln -fns $(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR).$(COMPEL_SO_VERSION_MINOR) $(DESTDIR)$(LIBDIR)/$(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR)
+ $(Q) ln -fns $(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR).$(COMPEL_SO_VERSION_MINOR) $(DESTDIR)$(LIBDIR)/$(LIBCOMPEL_SO)
+ $(E) " INSTALL " $(LIBCOMPEL_A)
+ $(Q) install -m 0644 compel/$(LIBCOMPEL_A) $(DESTDIR)$(LIBDIR)
+ $(E) " INSTALL " compel uapi
+ $(Q) mkdir -p $(DESTDIR)$(LIBEXECDIR)/compel/
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)/compel/
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)/compel/asm
+ $(Q) cp -fr compel/include/uapi/compel/*.h $(DESTDIR)$(INCLUDEDIR)/compel
+ $(Q) cp -fr compel/include/uapi/compel/asm/*.h $(DESTDIR)$(INCLUDEDIR)/compel/asm
+.PHONY: install
+
+uninstall:
+ $(E) " UNINSTALL" compel
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(SBINDIR)/,compel)
+ $(E) " UNINSTALL" $(LIBCOMPEL_SO)
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/,$(LIBCOMPEL_SO))
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/,$(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR))
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/,$(LIBCOMPEL_SO).$(COMPEL_SO_VERSION_MAJOR).$(COMPEL_SO_VERSION_MINOR))
+ $(E) " UNINSTALL" $(LIBCOMPEL_A)
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBDIR)/,$(LIBCOMPEL_A))
+ $(E) " UNINSTALL" compel uapi
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(INCLUDEDIR),compel/*.h)
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(INCLUDEDIR),compel/asm/*.h)
+ $(Q) $(RM) -rf $(addprefix $(DESTDIR)$(INCLUDEDIR),compel/asm/)
+.PHONY: uninstall
diff --git a/compel/plugins/Makefile b/compel/plugins/Makefile
index 824ebfc5cd78..8669e8433b2b 100644
--- a/compel/plugins/Makefile
+++ b/compel/plugins/Makefile
@@ -66,3 +66,29 @@ endef
# and definitions so we have to order their
# generation manually.
$(foreach t,$(target),$(eval $(call syscall-priority,$(t)-obj-y,std-headers-deps)))
+
+#
+# FIXME syscall-types.h should be setup earlier
+#
+install:
+ $(E) " INSTALL " compel plugins
+ $(Q) mkdir -p $(DESTDIR)$(LIBEXECDIR)/compel/
+ $(Q) install -m 0644 compel/plugins/std.built-in.o $(DESTDIR)$(LIBEXECDIR)/compel/
+ $(Q) mkdir -p $(DESTDIR)$(LIBEXECDIR)/compel/scripts
+ $(Q) install -m 0644 compel/arch/$(ARCH)/scripts/compel-pack.lds.S $(DESTDIR)$(LIBEXECDIR)/compel/scripts
+ $(E) " INSTALL " compel plugins uapi
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)/compel/plugins
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)/compel/plugins/std
+ $(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)/compel/plugins/std/asm
+ $(Q) cp -fr compel/include/uapi/compel/plugins/plugin-std.h $(DESTDIR)$(INCLUDEDIR)/compel/plugins
+ $(Q) cp -fr compel/include/uapi/compel/plugins/std/*.h $(DESTDIR)$(INCLUDEDIR)/compel/plugins/std
+ $(Q) cp -fr compel/arch/$(ARCH)/plugins/include/asm/syscall-types.h $(DESTDIR)$(INCLUDEDIR)/compel/plugins/std/asm
+.PHONY: install
+
+uninstall:
+ $(E) " UNINSTALL" compel plugins
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBEXECDIR)/compel/,std.built-in.o)
+ $(Q) $(RM) $(addprefix $(DESTDIR)$(LIBEXECDIR)/compel/scripts,compel-pack.lds.S)
+ $(E) " UNINSTALL" compel and plugins uapi
+ $(Q) $(RM) -rf $(addprefix $(DESTDIR)$(INCLUDEDIR),compel/plugins)
+.PHONY: uninstall
--
2.7.4
More information about the CRIU
mailing list