mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-26 03:47:35 +00:00
It is one of our target platforms. Cc: Adrian Reber <areber@redhat.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com> Acked-by: Adrian Reber <areber@redhat.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
53 lines
1.3 KiB
Makefile
53 lines
1.3 KiB
Makefile
QEMU_ARCHES := armv7hf aarch64 ppc64le s390x fedora-rawhide-aarch64 # require qemu
|
|
ARCHES := $(QEMU_ARCHES) x86_64 fedora-asan fedora-rawhide centos
|
|
TARGETS := $(ARCHES) alpine
|
|
TARGETS_CLANG := $(addsuffix $(TARGETS),-clang)
|
|
|
|
all: $(TARGETS) $(TARGETS_CLANG)
|
|
.PHONY: all
|
|
|
|
# A build for each architecture requires appropriate Dockerfile
|
|
define ARCH_DEP
|
|
$(1): Dockerfile.$(1)
|
|
endef
|
|
$(foreach arch,$(ARCHES),$(eval $(call ARCH_DEP,$(arch))))
|
|
|
|
Dockerfile.%: Dockerfile.%.hdr Dockerfile.%.tmpl
|
|
cat $^ > $@
|
|
|
|
qemu-user-static:
|
|
./extract-deb-pkg qemu-user-static
|
|
|
|
binfmt_misc:
|
|
./binfmt_misc
|
|
.PHONY: binfmt_misc
|
|
|
|
$(QEMU_ARCHES): qemu-user-static binfmt_misc
|
|
|
|
$(TARGETS):
|
|
mkdir -p $(HOME)/.ccache
|
|
mv $(HOME)/.ccache ../../
|
|
docker build -t criu-$@ -f Dockerfile.$@ $(DB_CC) $(DB_ENV) ../..
|
|
docker run criu-$@ tar c -C /tmp .ccache | tar x -C $(HOME)
|
|
.PHONY: $(TARGETS)
|
|
|
|
# Clang builds add some Docker build env
|
|
define CLANG_DEP
|
|
$(1)-clang: $(1)
|
|
endef
|
|
$(foreach t,$(TARGETS),$(eval $(call CLANG_DEP,$(t))))
|
|
|
|
%-clang: DB_CC=--build-arg CC=clang
|
|
%-clang: DB_ENV=--build-arg ENV1=CCACHE_CPP2
|
|
s390x-clang: DB_CC=--build-arg CC=clang-3.8
|
|
.PHONY: $(TARGETS_CLANG)
|
|
|
|
clean:
|
|
rm -rf qemu-user-static
|
|
for ARCH in $(ARCHES); do \
|
|
FILE=/proc/sys/fs/binfmt_misc/$$ARCH; \
|
|
test -f $$FILE && echo -1 > $$FILE; \
|
|
rm -f Dockerfile.$$ARCH; \
|
|
done
|
|
.PHONY: clean
|