Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/checkpoint-restore/criu.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@openvz.org>2016-02-15 15:26:50 +0300
committerPavel Emelyanov <xemul@virtuozzo.com>2016-02-15 15:32:27 +0300
commit594fb527533f2377e0f98f7d46c00a0ef0219e9c (patch)
treead95c0ba37ce4edeccee6c106d0fb470e9d43391 /images/Makefile
parent319f4a08a87fd5a76a710935d3d35854aec34117 (diff)
build: Move @protobuf dir into @images
But keep @protobuf as a symlink: we have this path encoded in sources. Gonna be removed with time. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Diffstat (limited to 'images/Makefile')
-rw-r--r--images/Makefile115
1 files changed, 115 insertions, 0 deletions
diff --git a/images/Makefile b/images/Makefile
new file mode 100644
index 000000000..12089a219
--- /dev/null
+++ b/images/Makefile
@@ -0,0 +1,115 @@
+proto-obj-y += stats.o
+proto-obj-y += core.o
+proto-obj-y += core-x86.o
+proto-obj-y += core-arm.o
+proto-obj-y += core-aarch64.o
+proto-obj-y += core-ppc64.o
+proto-obj-y += cpuinfo.o
+proto-obj-y += inventory.o
+proto-obj-y += fdinfo.o
+proto-obj-y += fown.o
+proto-obj-y += ns.o
+proto-obj-y += regfile.o
+proto-obj-y += ghost-file.o
+proto-obj-y += fifo.o
+proto-obj-y += remap-file-path.o
+proto-obj-y += eventfd.o
+proto-obj-y += eventpoll.o
+proto-obj-y += fh.o
+proto-obj-y += fsnotify.o
+proto-obj-y += signalfd.o
+proto-obj-y += fs.o
+proto-obj-y += pstree.o
+proto-obj-y += pipe.o
+proto-obj-y += tcp-stream.o
+proto-obj-y += sk-packet.o
+proto-obj-y += mnt.o
+proto-obj-y += pipe-data.o
+proto-obj-y += sa.o
+proto-obj-y += timer.o
+proto-obj-y += timerfd.o
+proto-obj-y += mm.o
+proto-obj-y += sk-opts.o
+proto-obj-y += sk-unix.o
+proto-obj-y += sk-inet.o
+proto-obj-y += tun.o
+proto-obj-y += sk-netlink.o
+proto-obj-y += packet-sock.o
+proto-obj-y += ipc-var.o
+proto-obj-y += ipc-desc.o
+proto-obj-y += ipc-shm.o
+proto-obj-y += ipc-msg.o
+proto-obj-y += ipc-sem.o
+proto-obj-y += utsns.o
+proto-obj-y += creds.o
+proto-obj-y += vma.o
+proto-obj-y += netdev.o
+proto-obj-y += tty.o
+proto-obj-y += file-lock.o
+proto-obj-y += rlimit.o
+proto-obj-y += pagemap.o
+proto-obj-y += siginfo.o
+proto-obj-y += rpc.o
+proto-obj-y += ext-file.o
+proto-obj-y += cgroup.o
+proto-obj-y += userns.o
+proto-obj-y += google/protobuf/descriptor.o # To make protoc-c happy and compile opts.proto
+proto-obj-y += opts.o
+proto-obj-y += seccomp.o
+proto-obj-y += binfmt-misc.o
+proto-obj-y += time.o
+
+CFLAGS += -I$(obj)/
+
+#
+# Generates a set of names from protobuf "import" directive.
+# The names are bare, ie no suffixes.
+define gen-proto-dep-names
+$(shell grep "^[[:blank:]]*import[[:blank:]]" $(1) | \
+ sed -e 's/[[:blank:]]*import[[:blank:]]*//' \
+ -e 's/[\";]//g' \
+ -e 's/\.proto//g' | \
+ sort | uniq)
+endef
+
+#
+# Generates rules needed to compile protobuf files.
+define gen-proto-rules
+$(obj)/$(1).pb-c.c $(obj)/$(1).pb-c.h: $(obj)/$(1).proto $(addsuffix .pb-c.c,$(addprefix $(obj)/,$(2)))
+ $$(E) " PBCC " $$@
+ $$(Q) protoc-c --proto_path=$(obj)/ --c_out=$(obj)/ $$<
+ifeq ($(PROTOUFIX),y)
+ $$(Q) sed -i -e 's/4294967295/0xFFFFFFFF/g' $$@
+ $$(Q) sed -i -e 's/4294967295/0xFFFFFFFF/g' $$(patsubst %.c,%.h,$$@)
+ $$(Q) sed -i -e 's/4294967295/0xFFFFFFFF/g' $$(patsubst %.h,%.c,$$@)
+endif
+$(obj)/$(1).pb-c.d: $(obj)/$(1).pb-c.c $(addsuffix .pb-c.d,$(addprefix $(obj)/,$(2)))
+ $$(E) " DEP " $$@
+ $$(Q) $$(CC) -M -MT $$@ -MT $(patsubst %.d,%.o,$$@) $$(CFLAGS) $$< -o $$@
+endef
+
+$(foreach file, $(proto-obj-y), \
+ $(eval $(call gen-proto-rules,$(file:.o=), \
+ $(call gen-proto-dep-names, \
+ $(addprefix $(obj)/,$(file:.o=.proto))))))
+
+$(obj)/%.o: $(obj)/%.pb-c.c $(obj)/%.pb-c.h
+ $(E) " CC " $@
+ $(Q) $(CC) -c $(CFLAGS) $< -o $@
+
+$(obj)/built-in.o: $(addprefix $(obj)/,$(proto-obj-y))
+ $(E) " LINK " $@
+ $(Q) $(LD) $(ldflags-y) -r -o $@ $^
+
+_all += $(obj)/built-in.o
+
+ifneq ($(MAKECMDGOALS),clean)
+-include $(addprefix $(obj)/,$(proto-obj-y:.o=.pb-c.d))
+endif
+
+cleanup-y += $(obj)/*.c.d $(obj)/*.pb-c.c $(obj)/*.pb-c.h
+cleanup-y += $(obj)/google/protobuf/*.d
+cleanup-y += $(obj)/google/protobuf/*.h
+cleanup-y += $(obj)/google/protobuf/*.c
+cleanup-y += $(obj)/google/protobuf/*.o
+cleanup-y += $(obj)/*.d $(obj)/*.i $(obj)/*.s $(obj)/*.o