Commit db6cb693 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Pavel Emelyanov

build: Move everything criu related into criu directory

Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 3410d395
......@@ -6,31 +6,15 @@
*.out
*.swp
*.swo
*-blob.h
*.so
.git-ignore
*.patch
*.pyc
criu
cscope*
tags
TAGS
Makefile.local
syscall-x86-64.S
include/syscall.h
include/syscall-codes.h
protobuf/*.c
protobuf/*.h
protobuf/google/protobuf/*.c
protobuf/google/protobuf/*.h
include/version.h
arch/x86/sys-exec-tbl.c
arch/x86/syscalls.S
pie/pie.lds.S
pie/piegen/piegen
include/config.h
protobuf-desc-gen.h
criu.pc
build
images/*.c
images/*.h
images/google/protobuf/*.c
images/google/protobuf/*.h
.gitid
usr/
-include ../Makefile.inc
include $(__nmk_dir)/include.mk
include $(__nmk_dir)/macro.mk
ASCIIDOC := asciidoc
A2X := a2x
......@@ -9,10 +10,9 @@ XMLS := $(patsubst %.txt,%.xml,$(SRC))
MANS := $(patsubst %.txt,%.8,$(SRC))
MAN8DIR := $(MANDIR)/man8
GROFF=groff
PAPER=$(shell paperconf 2>/dev/null || echo letter)
GROFF_OPTS := -Tps -t -dpaper=$(PAPER) -P-p$(PAPER) \
-man -msafer -rC1 -rD1 -rS11
GROFF :=groff
PAPER :=$(shell paperconf 2>/dev/null || echo letter)
GROFF_OPTS := -Tps -t -dpaper=$(PAPER) -P-p$(PAPER) -man -msafer -rC1 -rD1 -rS11
PSS := $(MANS:%.8=%.ps)
PDFS := $(MANS:%.8=%.pdf)
......@@ -27,20 +27,20 @@ check:
done
%.8: %.txt
$(E) " GEN " $@
$(call msg-gen, $@)
$(Q) $(ASCIIDOC) -b docbook -d manpage -o $(patsubst %.8,%.xml,$@) $<
$(Q) $(XMLTO) man --skip-validation $(patsubst %.8,%.xml,$@) 2>/dev/null
%.ps: %.8
$(E) " GEN " $@
$(call msg-gen, $@)
$(Q) $(GROFF) $(GROFF_OPTS) $^ > $@
%.pdf: %.ps
$(E) " GEN " $@
$(call msg-gen, $@)
$(Q) ps2pdf $< $@
clean:
$(E) " CLEAN "
$(call msg-clean, "Documentation")
$(Q) rm -f $(XMLS) $(MANS) $(PSS) $(PDFS)
install: $(MANS)
......
This diff is collapsed.
obj-y += parasite-syscall.o
obj-y += mem.o
obj-y += rst-malloc.o
obj-y += cr-restore.o
obj-y += crtools.o
obj-y += image.o
obj-y += image-desc.o
obj-y += net.o
obj-y += tun.o
obj-y += proc_parse.o
obj-y += sysfs_parse.o
obj-y += cr-dump.o
obj-y += cr-show.o
obj-y += cr-check.o
obj-y += cr-dedup.o
obj-y += util.o
obj-y += bfd.o
obj-y += action-scripts.o
obj-y += sysctl.o
obj-y += ptrace.o
obj-y += kcmp-ids.o
obj-y += rbtree.o
obj-y += log.o
obj-y += libnetlink.o
obj-y += sockets.o
obj-y += sk-inet.o
obj-y += sk-tcp.o
obj-y += sk-unix.o
obj-y += sk-packet.o
obj-y += sk-netlink.o
obj-y += sk-queue.o
obj-y += files.o
obj-y += files-reg.o
obj-y += files-ext.o
obj-y += pipes.o
obj-y += fifo.o
obj-y += file-ids.o
obj-y += namespaces.o
obj-y += uts_ns.o
obj-y += ipc_ns.o
obj-y += netfilter.o
obj-y += shmem.o
obj-y += eventfd.o
obj-y += eventpoll.o
obj-y += mount.o
obj-y += fsnotify.o
obj-y += irmap.o
obj-y += signalfd.o
obj-y += pstree.o
obj-y += bitmap.o
obj-y += protobuf.o
obj-y += protobuf-desc.o
obj-y += tty.o
obj-y += cr-exec.o
obj-y += file-lock.o
obj-y += page-pipe.o
obj-y += page-xfer.o
obj-y += page-read.o
obj-y += pagemap-cache.o
obj-y += kerndat.o
obj-y += stats.o
obj-y += cgroup.o
obj-y += timerfd.o
obj-y += aio.o
obj-y += string.o
obj-y += sigframe.o
obj-y += lsm.o
ifeq ($(VDSO),y)
obj-y += vdso.o
obj-y += pie/util-vdso.o
endif
obj-y += cr-service.o
obj-y += plugin.o
obj-y += cr-errno.o
obj-y += pie/pie-relocs.o
obj-y += seize.o
obj-y += fault-injection.o
obj-y += pie/util-fd.o
obj-y += pie/util.o
obj-y += seccomp.o
ifneq ($(MAKECMDGOALS),clean)
incdeps := y
endif
PROTOBUF_GEN := scripts/protobuf-gen.sh
protobuf-desc.c: protobuf-desc-gen.h
protobuf-desc-gen.h: $(PROTOBUF_GEN) include/protobuf-desc.h
$(E) " GEN " $@
$(Q) $(SH) $(obj)/$(PROTOBUF_GEN) > $@
cleanup-y += protobuf-desc-gen.h
# Installation paths
PREFIX ?= /usr/local
SBINDIR ?= $(PREFIX)/sbin
MANDIR ?= $(PREFIX)/share/man
SYSTEMDUNITDIR ?= $(PREFIX)/lib/systemd/system/
LOGROTATEDIR ?= $(PREFIX)/etc/logrotate.d/
LIBDIR ?= $(PREFIX)/lib
# For recent Debian/Ubuntu with multiarch support
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture \
-qDEB_HOST_MULTIARCH 2>/dev/null)
ifneq "$(DEB_HOST_MULTIARCH)" ""
LIBDIR ?= $(PREFIX)/lib/$(DEB_HOST_MULTIARCH)
# For most other systems
else ifeq "$(shell uname -m)" "x86_64"
LIBDIR ?= $(PREFIX)/lib64
endif
INCLUDEDIR ?= $(PREFIX)/include/criu
install: install-criu install-man
install-criu: all $(CRIU-LIB) install-crit
$(E) " INSTALL " $(PROGRAM)
$(Q) mkdir -p $(DESTDIR)$(SBINDIR)
$(Q) install -m 755 $(PROGRAM) $(DESTDIR)$(SBINDIR)
$(Q) mkdir -p $(DESTDIR)$(LIBDIR)
$(Q) install -m 755 $(CRIU-LIB) \
$(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR)
$(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
$(DESTDIR)$(LIBDIR)/$(CRIU-SO).so.$(VERSION_SO_MAJOR)
$(Q) ln -fns $(CRIU-SO).so.$(VERSION_SO_MAJOR).$(VERSION_SO_MINOR) \
$(DESTDIR)$(LIBDIR)/$(CRIU-SO).so
$(Q) mkdir -p $(DESTDIR)$(INCLUDEDIR)
$(Q) install -m 644 $(CRIU-INC) $(DESTDIR)$(INCLUDEDIR)
$(Q) mkdir -p $(DESTDIR)$(SYSTEMDUNITDIR)
$(Q) sed -e 's,@version@,$(CRTOOLSVERSION),' \
-e 's,@libdir@,$(LIBDIR),' \
-e 's,@includedir@,$(dir $(INCLUDEDIR)),' \
lib/criu.pc.in > criu.pc
$(Q) mkdir -p $(DESTDIR)$(LIBDIR)/pkgconfig
$(Q) install -m 644 criu.pc $(DESTDIR)$(LIBDIR)/pkgconfig
install-man:
$(Q) $(MAKE) -C Documentation install
install-crit: crit
$(E) " INSTALL crit"
$(Q) python scripts/crit-setup.py install --root=$(DESTDIR) --prefix=$(PREFIX)
.PHONY: install install-man install-crit install-criu
targets += syscalls
targets += crtools
SYS-ASM := syscalls.S
syscalls-asm-y += $(SYS-ASM:.S=).o
crtools-obj-y += crtools.o
crtools-obj-y += cpu.o
SYS-DEF := ../arm/syscall.def
SYS-ASM-COMMON := syscall-common.S
SYS-TYPES := include/syscall-types.h
SYS-CODES := include/syscall-codes.h
SYS-PROTO := include/syscall.h
SYS-GEN := ../scripts/arm/gen-syscalls.pl
SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
SYS-EXEC-TBL := sys-exec-tbl.c
syscalls-asm-y-asmflags += -fpie -Wstrict-prototypes -Wa,--noexecstack
syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
ASMFLAGS += -D__ASSEMBLY__
ARCH_BITS := 64
$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN) \
$(obj)/$(SYS-DEF) \
$(SYS-CODES) \
$(SYS-PROTO) \
$(obj)/$(SYS-ASM) \
$(SYS-ASM-COMMON) \
$(SYS-TYPES) \
$(ARCH_BITS)
$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/$(SYS-DEF)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN-TBL) \
$(obj)/$(SYS-DEF) \
$(obj)/$(SYS-EXEC-TBL) \
$(ARCH_BITS)
_all += $(obj)/$(SYS-EXEC-TBL)
cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
cleanup-y += $(SYS-CODES)
cleanup-y += $(SYS-PROTO)
ifneq ($(MAKECMDGOALS),clean)
deps-after := $(obj)/$(SYS-ASM)
incdeps := y
endif
targets += syscalls
targets += crtools
SYS-ASM := syscalls.S
syscalls-asm-y += $(SYS-ASM:.S=).o
crtools-obj-y += crtools.o
crtools-obj-y += cpu.o
SYS-DEF := syscall.def
SYS-ASM-COMMON := syscall-common.S
SYS-TYPES := include/syscall-types.h
SYS-CODES := include/syscall-codes.h
SYS-PROTO := include/syscall.h
SYS-GEN := ../scripts/arm/gen-syscalls.pl
SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
SYS-EXEC-TBL := sys-exec-tbl.c
syscalls-asm-y-asmflags += -fpie -Wstrict-prototypes -Wa,--noexecstack
syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
ASMFLAGS += -D__ASSEMBLY__
ARCH_BITS := 32
$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN) \
$(obj)/$(SYS-DEF) \
$(SYS-CODES) \
$(SYS-PROTO) \
$(obj)/$(SYS-ASM) \
$(SYS-ASM-COMMON) \
$(SYS-TYPES) \
$(ARCH_BITS)
$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/$(SYS-DEF)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN-TBL) \
$(obj)/$(SYS-DEF) \
$(obj)/$(SYS-EXEC-TBL) \
$(ARCH_BITS)
_all += $(obj)/$(SYS-EXEC-TBL)
cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
cleanup-y += $(SYS-CODES)
cleanup-y += $(SYS-PROTO)
ifneq ($(MAKECMDGOALS),clean)
deps-after := $(obj)/$(SYS-ASM)
incdeps := y
endif
targets += syscalls
targets += crtools
SYS-ASM := syscalls.S
syscalls-asm-y += $(SYS-ASM:.S=).o
crtools-obj-y += crtools.o
crtools-obj-y += cpu.o
SYS-DEF := syscall-ppc64.def
SYS-ASM-COMMON := syscall-common-ppc64.S
SYS-TYPES := include/syscall-types.h
SYS-CODES := include/syscall-codes.h
SYS-PROTO := include/syscall.h
SYS-GEN := syscalls-ppc64.sh
SYS-EXEC-TBL := sys-exec-tbl.c
syscalls-asm-y-asmflags := -fpie -Wstrict-prototypes -Wa,--noexecstack
syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
ASMFLAGS += -D__ASSEMBLY__
$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF) $(obj)/$(SYS-ASM-COMMON) $(SYS-TYPES)
$(E) " GEN " $@
$(Q) $(SH) \
$(obj)/$(SYS-GEN) --asm \
$(obj)/$(SYS-DEF) \
$(SYS-CODES) \
$(SYS-PROTO) \
$(obj)/$(SYS-ASM) \
$(SYS-ASM-COMMON) \
$(SYS-TYPES)
$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN) $(obj)/$(SYS-DEF)
$(E) " GEN " $@
$(Q) $(SH) \
$(obj)/$(SYS-GEN) --exec \
$(obj)/$(SYS-DEF) \
$(obj)/$(SYS-EXEC-TBL)
_all += $(obj)/$(SYS-EXEC-TBL)
cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
cleanup-y += $(SYS-CODES)
cleanup-y += $(SYS-PROTO)
ifneq ($(MAKECMDGOALS),clean)
deps-after := $(obj)/$(SYS-ASM)
incdeps := y
endif
#!/bin/sh
gen_asm() {
in=$1
codesout=$2
codesinc=`echo $2 | sed -e 's/.*include\///g'`
protosout=$3
asmout=$4
asmcommon=`echo $5 | sed -e 's/.*include\///g'`
prototypes=`echo $6 | sed -e 's/.*include\///g'`
codesdef=`echo $codesout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
protosdef=`echo $protosout | sed -e 's/.*include\///g' | tr "[[:space:]].-" _`
echo "/* Autogenerated, don't edit */" > $codesout
echo "#ifndef $codesdef" >> $codesout
echo "#define $codesdef" >> $codesout
echo "/* Autogenerated, don't edit */" > $protosout
echo "#ifndef $protosdef" >> $protosout
echo "#define $protosdef" >> $protosout
echo "#ifndef CR_NOGLIBC" >> $protosout
echo "#error This file should only be used in the parasite code" >> $protosout
echo "#endif" >> $protosout
echo "#include \"$prototypes\"" >> $protosout
echo "#include \"$codesinc\"" >> $protosout
echo "/* Autogenerated, don't edit */" > $asmout
echo "#include \"$codesinc\"" >> $asmout
echo "#include \"$asmcommon\"" >> $asmout
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "#define", $1, $2}' >> $codesout
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "extern long ", $3, $4, ";"}' >> $protosout
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", $3, ",", $2, ")"}' >> $asmout
echo "#endif /* $codesdef */" >> $codesout
echo "#endif /* $protosdef */" >> $protosout
}
gen_exec() {
in=$1
codecout=$2
echo "/* Autogenerated, don't edit */" > $codecout
cat $in | egrep -v '^#' | sed -e 's/\t\{1,\}/|/g' | awk -F '|' '{print "SYSCALL(", substr($3, 5), ",", $2, ")"}' >> $codecout
}
if [ "$1" = "--asm" ]; then
shift
gen_asm $@
fi
if [ "$1" = "--exec" ]; then
shift
gen_exec $@
fi
#
# CRIU version.
VERSION_MAJOR := 2
VERSION_MINOR := 0
VERSION_SUBLEVEL :=
VERSION_EXTRA :=
VERSION_NAME :=
export VERSION_MAJOR VERSION_MINOR
export VERSION_SUBLEVEL VERSION_EXTRA VERSION_NAME
#
# HOST part is needed to build helper
# tools such as piegen.
HOSTCC ?= gcc
HOSTLD ?= ld
HOSTCFLAGS ?= $(CFLAGS)
CFLAGS += $(USERCFLAGS)
export HOSTCC HOSTLD HOSTCFLAGS
ifeq ($(ARCH),x86)
SRCARCH := x86
LDARCH := i386:x86-64
VDSO := y
endif
ifeq ($(ARCH),arm)
SRCARCH := arm
endif
ifeq ($(ARCH),arm64)
ARCH := aarch64
SRCARCH := aarch64
VDSO := y
endif
ifeq ($(ARCH),powerpc)
ARCH := ppc64
SRCARCH := ppc64
LDARCH := powerpc:common64
VDSO := y
endif
LDARCH ?= $(SRCARCH)
export SRCARCH LDARCH VDSO
SRCARCH ?= $(ARCH)
LDARCH ?= $(SRCARCH)
ARCH_DIR := arch/$(SRCARCH)
export SRCARCH LDARCH ARCH_DIR VDSO
$(if $(wildcard $(ARCH_DIR)),,$(error "The architecture $(ARCH) isn't supported"))
#
# General flags.
ccflags-y += -fno-strict-aliasing
ccflags-y += -iquote $(SRC_DIR)/criu/include
ccflags-y += -iquote $(SRC_DIR)/images
ccflags-y += -iquote $(SRC_DIR)/criu/pie
ccflags-y += -iquote $(SRC_DIR)/criu/$(ARCH_DIR)
ccflags-y += -iquote $(SRC_DIR)/criu/$(ARCH_DIR)/include
ccflags-y += -iquote $(SRC_DIR)/
ccflags-y += -I/usr/include/libnl3
export ccflags-y
LIBS := -lrt -lpthread -lprotobuf-c -ldl -lnl-3
ifeq ($(GMON),1)
CFLAGS += -pg
GMONLDOPT := -pg
endif
#
# piegen tool might be disabled by hands. Don't use it until
# you know what you're doing.
ifneq ($(filter ia32 x86 ppc64,$(ARCH)),)
ifneq ($(PIEGEN),no)
piegen-y := y
export piegen-y
endif
endif
#
# Version header file.
include Makefile.version
#
# Configure variables.
include Makefile.config
config: $(VERSION_HEADER)
#
# System calls library.
SYSCALL-LIB := $(ARCH_DIR)/syscalls.built-in.o
$(SYSCALL-LIB): config
$(Q) $(MAKE) $(call build-as,Makefile.syscalls,$(ARCH_DIR)) all
PHONY += $(SYSCALL-LIB)
#
# Architecture dependant part.
ARCH-LIB := $(ARCH_DIR)/crtools.built-in.o
$(ARCH-LIB): config $(SYSCALL-LIB)
$(Q) $(MAKE) $(call build-as,Makefile,$(ARCH_DIR)) $@
PHONY += $(ARCH-LIB)
#
# piegen tool needed for PIE code.
ifeq ($(piegen-y),y)
piegen := pie/piegen/piegen
pie/piegen/%: config
$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS) $(WARNINGS) $(DEFINES)" $(MAKE) $(build)=pie/piegen $@
pie/piegen: config
$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS) $(WARNINGS) $(DEFINES)" $(MAKE) $(build)=pie/piegen all
$(piegen): pie/piegen/built-in.o
$(call msg-link, $@)
$(Q) $(HOSTCC) $(HOSTCFLAGS) $^ $(LDFLAGS) -o $@
PHONY += pie/piegen
endif
#
# PIE library code.
pie/lib.a: $(ARCH-LIB)
$(Q) $(MAKE) $(call build-as,Makefile.library,pie) all
#
# PIE code blobs themseves.
pie: $(ARCH_DIR) $(piegen) pie/lib.a
$(Q) $(MAKE) $(build)=pie all
PHONY += pie
#
# CRIU executable
PROGRAM-BUILTINS += ../images/built-in.o
PROGRAM-BUILTINS += built-in.o
PROGRAM-BUILTINS += pie/lib.a
PROGRAM-BUILTINS += $(SYSCALL-LIB)
LIBS += arch/$(ARCH)/crtools.built-in.o
built-in.o: pie/lib.a
$(Q) $(MAKE) $(call build-as,Makefile.crtools,.) all
criu: $(PROGRAM-BUILTINS) built-in.o
$(call msg-link, $@)
$(Q) $(CC) $(CFLAGS) $^ $(LIBS) $(LDFLAGS) $(GMONLDOPT) -rdynamic -o $@
PHONY += criu
#
# Cleanup everything.
clean:
$(Q) $(MAKE) $(call build-as,Makefile.syscalls,$(ARCH_DIR)) $@
$(Q) $(MAKE) $(call build-as,Makefile.library,pie) $@
$(Q) $(MAKE) $(call build-as,Makefile.crtools,.) $@
$(Q) $(MAKE) $(build)=pie/piegen $@
$(Q) $(MAKE) $(build)=pie $@
$(Q) $(RM) ./*.{gcda,gcno,gcov}
$(Q) $(RM) ./pie/*.{gcda,gcno,gcov}
$(Q) $(RM) ./pie/piegen/*.{gcda,gcno,gcov}
$(Q) $(RM) -r ./gcov
$(Q) $(RM) $(VERSION_HEADER)
$(Q) $(RM) $(CONFIG_HEADER)
#
# Final @all target.
all: $(PHONY)
@true
.PHONY: $(PHONY) clean
include scripts/utilities.mak
include scripts/feature-tests.mak
include $(__nmk_dir)/utils.mk
include ../scripts/feature-tests.mak
CONFIG := include/config.h
CONFIG_HEADER := include/config.h
ifeq ($(call try-cc,$(LIBBSD_DEV_TEST),-lbsd),y)
LIBS += -lbsd
DEFINES += -DCONFIG_HAS_LIBBSD
LIBS += -lbsd
DEFINES += -DCONFIG_HAS_LIBBSD
endif
ifeq ($(call pkg-config-check,libselinux),y)
LIBS := -lselinux $(LIBS)
DEFINES += -DCONFIG_HAS_SELINUX
LIBS += -lselinux $(LIBS)
DEFINES += -DCONFIG_HAS_SELINUX
endif
$(CONFIG): scripts/utilities.mak scripts/feature-tests.mak include/config-base.h
$(E) " GEN " $@
$(CONFIG_HEADER): include/config-base.h
$(call msg-gen, $@)
$(Q) @echo '#ifndef __CR_CONFIG_H__' > $@
$(Q) @echo '#define __CR_CONFIG_H__' >> $@
$(Q) @echo '' >> $@
$(Q) @echo '#include "config-base.h"' >> $@
$(Q) @echo '' >> $@
ifeq ($(call try-cc,$(TCP_REPAIR_TEST),),y)
ifeq ($(call try-cc,$(TCP_REPAIR_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_TCP_REPAIR' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(PRLIMIT_TEST),),y)
ifeq ($(call try-cc,$(PRLIMIT_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PRLIMIT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(STRLCPY_TEST),$(LIBS)),y)
ifeq ($(call try-cc,$(STRLCPY_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCPY' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(STRLCAT_TEST),$(LIBS)),y)
ifeq ($(call try-cc,$(STRLCAT_TEST),$(LIBS),$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_STRLCAT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(PTRACE_PEEKSIGINFO_TEST),),y)
ifeq ($(call try-cc,$(PTRACE_PEEKSIGINFO_TEST),,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_PEEKSIGINFO_ARGS' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(VDSO),y)
$(Q) @echo '#define CONFIG_VDSO' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(SETPROCTITLE_INIT_TEST),-lbsd),y)
ifeq ($(call try-cc,$(SETPROCTITLE_INIT_TEST),-lbsd,$(DEFINES)),y)
$(Q) @echo '#define CONFIG_HAS_SETPROCTITLE_INIT' >> $@
$(Q) @echo '' >> $@
endif
ifeq ($(call try-cc,$(MEMFD_TEST),),y)
$(Q) @echo '#define CONFIG_HAS_MEMFD' >> $@
endif
ifeq ($(piegen-y),y)
$(Q) @echo '#define CONFIG_PIEGEN' >> $@
$(Q) @echo '' >> $@
endif
$(Q) @echo '#endif /* __CR_CONFIG_H__ */' >> $@
config: $(CONFIG)
.PHONY: config
config: $(CONFIG_HEADER)
PHONY += config
ccflags-y += -iquote $(ARCH)
obj-y += action-scripts.o
obj-y += aio.o
obj-y += bfd.o
obj-y += bitmap.o
obj-y += cgroup.o
obj-y += cr-check.o
obj-y += cr-dedup.o
obj-y += cr-dump.o
obj-y += cr-errno.o
obj-y += cr-exec.o
obj-y += cr-restore.o
obj-y += cr-service.o
obj-y += cr-show.o
obj-y += crtools.o
obj-y += eventfd.o
obj-y += eventpoll.o
obj-y += fault-injection.o
obj-y += fifo.o
obj-y += file-ids.o
obj-y += file-lock.o
obj-y += files-ext.o
obj-y += files.o
obj-y += files-reg.o
obj-y += fsnotify.o
obj-y += image-desc.o
obj-y += image.o
obj-y += ipc_ns.o
obj-y += irmap.o
obj-y += kcmp-ids.o
obj-y += kerndat.o
obj-y += libnetlink.o
obj-y += log.o
obj-y += lsm.o
obj-y += mem.o
obj-y += mount.o
obj-y += namespaces.o
obj-y += netfilter.o
obj-y += net.o
obj-y += pagemap-cache.o
obj-y += page-pipe.o
obj-y += page-read.o
obj-y += page-xfer.o
obj-y += parasite-syscall.o
obj-y += pie/pie-relocs.o
obj-y += pie-util-fd.o
obj-y += pie-util.o
obj-y += pipes.o
obj-y += plugin.o
obj-y += proc_parse.o
obj-y += protobuf-desc.o
obj-y += protobuf.o
obj-y += pstree.o
obj-y += ptrace.o
obj-y += rbtree.o
obj-y += rst-malloc.o
obj-y += seccomp.o
obj-y += seize.o
obj-y += shmem.o
obj-y += sigframe.o
obj-y += signalfd.o
obj-y += sk-inet.o
obj-y += sk-netlink.o
obj-y += sk-packet.o
obj-y += sk-queue.o
obj-y += sk-tcp.o
obj-y += sk-unix.o
obj-y += sockets.o
obj-y += stats.o
obj-y += string.o
obj-y += sysctl.o
obj-y += sysfs_parse.o
obj-y += timerfd.o
obj-y += tty.o
obj-y += tun.o
obj-y += util.o
obj-y += uts_ns.o
ifeq ($(VDSO),y)
obj-y += pie-util-vdso.o
obj-y += vdso.o
endif
PROTOBUF_GEN := $(SRC_DIR)/scripts/protobuf-gen.sh
protobuf-desc.c: protobuf-desc-gen.h
protobuf-desc-gen.h: $(PROTOBUF_GEN) include/protobuf-desc.h
$(call msg-gen, $@)
$(Q) $(SH) $(PROTOBUF_GEN) > $@
cleanup-y += protobuf-desc-gen.h
CRTOOLSVERSION := $(VERSION_MAJOR)$(if $(VERSION_MINOR),.$(VERSION_MINOR))$(if $(VERSION_SUBLEVEL),.$(VERSION_SUBLEVEL))
VERSION_HEADER := include/version.h
GITID_FILE := .gitid
GITID := $(shell if [ -d ".git" ]; then git describe; fi)
VERSION_HEADER := include/version.h
GITID_FILE := ../.gitid
GITID := $(shell if [ -d "../.git" ]; then cd .. && git describe; fi)
ifeq ($(GITID),)
GITID := 0
GITID := 0
else
GITID_FILE_VALUE := $(shell if [ -f '.gitid' ]; then if [ `cat .gitid` = $(GITID) ]; then echo y; fi; fi)
GITID_FILE_VALUE := $(shell if [ -f '$(GITID_FILE)' ]; then if [ `cat '$(GITID_FILE)'` = $(GITID) ]; then echo y; fi; fi)
ifneq ($(GITID_FILE_VALUE),y)
.PHONY: $(GITID_FILE)
endif
endif
$(GITID_FILE):
$(E) " GEN " $@
$(call msg-gen, $@)
$(Q) echo "$(GITID)" > $(GITID_FILE)
$(VERSION_HEADER): Makefile scripts/Makefile.version $(GITID_FILE)
$(E) " GEN " $@
$(VERSION_HEADER): Makefile.version $(GITID_FILE)
$(call msg-gen, $@)
$(Q) echo "/* Autogenerated, do not edit */" > $(VERSION_HEADER)
$(Q) echo "#ifndef __CR_VERSION_H__" >> $(VERSION_HEADER)
$(Q) echo "#define __CR_VERSION_H__" >> $(VERSION_HEADER)
......@@ -28,9 +27,5 @@ $(VERSION_HEADER): Makefile scripts/Makefile.version $(GITID_FILE)
$(Q) echo "#define CRIU_GITID \"$(GITID)\"" >> $(VERSION_HEADER)
$(Q) echo "#endif /* __CR_VERSION_H__ */" >> $(VERSION_HEADER)
##
## In case if someone add last resort rule
## together with .SUFFIXES not cleaned, this
## will slow down the build procedure
scripts/Makefile.version::
Makefile.version:
@true
builtin-name := crtools.built-in.o
ccflags-y += -iquote $(obj) -iquote $(SRC_DIR)
ccflags-y += -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
obj-y += cpu.o
obj-y += crtools.o
builtin-name := syscalls.built-in.o
SYS-TYPES := ../../include/syscall-types.h
SYS-CODES := ../../include/syscall-codes.h
SYS-PROTO := ../../include/syscall.h
SYS-DEF := syscall.def
SYS-ASM-COMMON := syscall-common.S
SYS-GEN := ../scripts/arm/gen-syscalls.pl
SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
SYS-ASM := syscalls.S
obj-y += $(SYS-ASM:.S=).o
ARCH_BITS := 64
SYS-EXEC-TBL := sys-exec-tbl.c
$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN) \
$(obj)/syscalls/$(SYS-DEF) \
$(obj)/$(SYS-CODES) \
$(obj)/$(SYS-PROTO) \
$(obj)/$(SYS-ASM) \
syscalls/$(SYS-ASM-COMMON) \
$(obj)/$(SYS-TYPES) \
$(ARCH_BITS)
$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN-TBL) \
$(obj)/syscalls/$(SYS-DEF) \
$(obj)/$(SYS-EXEC-TBL) \
$(ARCH_BITS)
all-y += $(obj)/$(SYS-EXEC-TBL)
cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
cleanup-y += $(obj)/$(SYS-CODES)
cleanup-y += $(obj)/$(SYS-PROTO)
../../arm/syscalls/syscall.def
\ No newline at end of file
builtin-name := crtools.built-in.o
ccflags-y += -iquote $(obj) -iquote $(SRC_DIR) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
obj-y += cpu.o
obj-y += crtools.o
builtin-name := syscalls.built-in.o
SYS-TYPES := ../../include/syscall-types.h
SYS-CODES := ../../include/syscall-codes.h
SYS-PROTO := ../../include/syscall.h
SYS-DEF := syscall.def
SYS-ASM-COMMON := syscall-common.S
SYS-GEN := ../scripts/arm/gen-syscalls.pl
SYS-GEN-TBL := ../scripts/arm/gen-sys-exec-tbl.pl
asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
SYS-ASM := syscalls.S
obj-y += $(SYS-ASM:.S=).o
ARCH_BITS := 32
SYS-EXEC-TBL := sys-exec-tbl.c
$(obj)/$(SYS-ASM): $(obj)/$(SYS-GEN) $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN) \
$(obj)/syscalls/$(SYS-DEF) \
$(obj)/$(SYS-CODES) \
$(obj)/$(SYS-PROTO) \
$(obj)/$(SYS-ASM) \
syscalls/$(SYS-ASM-COMMON) \
$(obj)/$(SYS-TYPES) \
$(ARCH_BITS)
$(obj)/syscalls.o: $(obj)/$(SYS-ASM)
$(obj)/$(SYS-EXEC-TBL): $(obj)/$(SYS-GEN-TBL) $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
$(Q) perl \
$(obj)/$(SYS-GEN-TBL) \
$(obj)/syscalls/$(SYS-DEF) \
$(obj)/$(SYS-EXEC-TBL) \
$(ARCH_BITS)
all-y += $(obj)/$(SYS-EXEC-TBL)
cleanup-y += $(obj)/$(SYS-EXEC-TBL) $(obj)/$(SYS-ASM)
cleanup-y += $(obj)/$(SYS-CODES)
cleanup-y += $(obj)/$(SYS-PROTO)
builtin-name := crtools.built-in.o
ccflags-y += -iquote $(obj) -iquote $(SRC_DIR) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
obj-y += cpu.o
obj-y += crtools.o
builtin-name := syscalls.built-in.o
SYS-TYPES := ../../include/syscall-types.h
SYS-CODES := ../../include/syscall-codes.h
SYS-PROTO := ../../include/syscall.h
SYS-DEF := syscall-ppc64.tbl
SYS-ASM-COMMON := syscall-common-ppc64.S
asflags-y += -D__ASSEMBLY__ -nostdlib -fomit-frame-pointer
asflags-y += -fpie -Wstrict-prototypes -Wa,--noexecstack
asflags-y += -iquote $(obj) -iquote $(obj)/include -iquote $(SRC_DIR)/criu/include
SYS-ASM := syscalls.S
obj-y += $(SYS-ASM:.S=).o
$(obj)/$(SYS-CODES): $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
$(Q) echo "/* Autogenerated, don't edit */" > $@
$(Q) echo "#ifndef __ASM_CR_SYSCALL_CODES_H__" >> $@
$(Q) echo "#define __ASM_CR_SYSCALL_CODES_H__" >> $@
$(Q) cat $< | awk '/^__NR/{print "#define", $$1, $$2}' >> $@
$(Q) echo "#endif /* __ASM_CR_SYSCALL_CODES_H__ */" >> $@
cleanup-y += $(obj)/$(SYS-CODES)
$(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
$(E) " GEN " $@
$(Q) echo "/* Autogenerated, don't edit */" > $@
$(Q) echo "#ifndef __ASM_CR_SYSCALL_PROTO_H__" >> $@
$(Q) echo "#define __ASM_CR_SYSCALL_PROTO_H__" >> $@
$(Q) echo "#include \"syscall-codes.h\"" >> $@
$(Q) echo "#include \"syscall-types.h\"" >> $@
$(Q) cat $< | awk '/^__NR/{print "extern long", $$3, substr($$0, index($$0,$$4)), ";"}' >> $@
$(Q) echo "#endif /* __ASM_CR_SYSCALL_PROTO_H__ */" >> $@
cleanup-y += $(obj)/$(SYS-PROTO)
$(obj)/$(SYS-ASM): $(obj)/syscalls/$(SYS-DEF) $(obj)/syscalls/$(SYS-ASM-COMMON) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
$(E) " GEN " $@
$(Q) echo "/* Autogenerated, don't edit */" > $@
$(Q) echo "#include \"syscall-codes.h\"" >> $@
$(Q) echo "#include \"syscalls/$(SYS-ASM-COMMON)\"" >> $@
$(Q) cat $< | awk '/^__NR/{print "SYSCALL(", $$3, ",", $$2, ")"}' >> $@
cleanup-y += $(obj)/$(SYS-ASM)
SYS-EXEC-TBL := sys-exec-tbl.c
$(obj)/$(SYS-EXEC-TBL): $(obj)/syscalls/$(SYS-DEF) $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
$(E) " GEN " $@
$(Q) echo "/* Autogenerated, don't edit */" > $@
$(Q) cat $< | awk '/^__NR/{print "SYSCALL(", substr($$3, 5), ",", $$2, ")"}' >> $@
cleanup-y += $(obj)/$(SYS-EXEC-TBL)
all-y += $(obj)/$(SYS-EXEC-TBL)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment