mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
Makefile: move .PHONY to before each target
All the targets in the Makefile we have are phony (as we mostly rely on go to figure out dependencies and whether to rebuild something), and they have to be marked as such. We do that at the end of the file, and the list is pretty long. Instead, let's just add .PHONY before each target. That way it is easier to spot any omissions. Alternative solutions: - add ".PHONY: %"; it won't work as wildcards are not recongized in this context; - add "MAKEFLAGS += --always-make". Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
@@ -63,18 +63,24 @@ endif
|
|||||||
|
|
||||||
.DEFAULT: runc
|
.DEFAULT: runc
|
||||||
|
|
||||||
|
.PHONY: runc
|
||||||
runc: runc-bin verify-dmz-arch
|
runc: runc-bin verify-dmz-arch
|
||||||
|
|
||||||
|
.PHONY: runc-bin
|
||||||
runc-bin: runc-dmz
|
runc-bin: runc-dmz
|
||||||
$(GO_BUILD) -o runc .
|
$(GO_BUILD) -o runc .
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
all: runc recvtty sd-helper seccompagent fs-idmap memfd-bind
|
all: runc recvtty sd-helper seccompagent fs-idmap memfd-bind
|
||||||
|
|
||||||
|
.PHONY: recvtty sd-helper seccompagent fs-idmap memfd-bind
|
||||||
recvtty sd-helper seccompagent fs-idmap memfd-bind:
|
recvtty sd-helper seccompagent fs-idmap memfd-bind:
|
||||||
$(GO_BUILD) -o contrib/cmd/$@/$@ ./contrib/cmd/$@
|
$(GO_BUILD) -o contrib/cmd/$@/$@ ./contrib/cmd/$@
|
||||||
|
|
||||||
|
.PHONY: static
|
||||||
static: static-bin verify-dmz-arch
|
static: static-bin verify-dmz-arch
|
||||||
|
|
||||||
|
.PHONY: static-bin
|
||||||
static-bin: runc-dmz
|
static-bin: runc-dmz
|
||||||
$(GO_BUILD_STATIC) -o runc .
|
$(GO_BUILD_STATIC) -o runc .
|
||||||
|
|
||||||
@@ -83,9 +89,11 @@ runc-dmz:
|
|||||||
rm -f libcontainer/dmz/runc-dmz
|
rm -f libcontainer/dmz/runc-dmz
|
||||||
$(GO) generate -tags "$(BUILDTAGS)" ./libcontainer/dmz
|
$(GO) generate -tags "$(BUILDTAGS)" ./libcontainer/dmz
|
||||||
|
|
||||||
|
.PHONY: releaseall
|
||||||
releaseall: RELEASE_ARGS := "-a 386 -a amd64 -a arm64 -a armel -a armhf -a ppc64le -a riscv64 -a s390x"
|
releaseall: RELEASE_ARGS := "-a 386 -a amd64 -a arm64 -a armel -a armhf -a ppc64le -a riscv64 -a s390x"
|
||||||
releaseall: release
|
releaseall: release
|
||||||
|
|
||||||
|
.PHONY: release
|
||||||
release: runcimage
|
release: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
--rm -v $(CURDIR):/go/src/$(PROJECT) \
|
--rm -v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
@@ -93,28 +101,36 @@ release: runcimage
|
|||||||
$(RUNC_IMAGE) make localrelease
|
$(RUNC_IMAGE) make localrelease
|
||||||
script/release_sign.sh -S $(GPG_KEYID) -r release/$(VERSION) -v $(VERSION)
|
script/release_sign.sh -S $(GPG_KEYID) -r release/$(VERSION) -v $(VERSION)
|
||||||
|
|
||||||
|
.PHONY: localrelease
|
||||||
localrelease: verify-changelog
|
localrelease: verify-changelog
|
||||||
script/release_build.sh -r release/$(VERSION) -v $(VERSION) $(RELEASE_ARGS)
|
script/release_build.sh -r release/$(VERSION) -v $(VERSION) $(RELEASE_ARGS)
|
||||||
|
|
||||||
|
.PHONY: dbuild
|
||||||
dbuild: runcimage
|
dbuild: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
--privileged --rm \
|
--privileged --rm \
|
||||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
$(RUNC_IMAGE) make clean all
|
$(RUNC_IMAGE) make clean all
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
lint:
|
lint:
|
||||||
golangci-lint run ./...
|
golangci-lint run ./...
|
||||||
|
|
||||||
|
.PHONY: man
|
||||||
man:
|
man:
|
||||||
man/md2man-all.sh
|
man/md2man-all.sh
|
||||||
|
|
||||||
|
.PHONY: runcimage
|
||||||
runcimage:
|
runcimage:
|
||||||
$(CONTAINER_ENGINE) build $(CONTAINER_ENGINE_BUILD_FLAGS) -t $(RUNC_IMAGE) .
|
$(CONTAINER_ENGINE) build $(CONTAINER_ENGINE_BUILD_FLAGS) -t $(RUNC_IMAGE) .
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
test: unittest integration rootlessintegration
|
test: unittest integration rootlessintegration
|
||||||
|
|
||||||
|
.PHONY: localtest
|
||||||
localtest: localunittest localintegration localrootlessintegration
|
localtest: localunittest localintegration localrootlessintegration
|
||||||
|
|
||||||
|
.PHONY: unittest
|
||||||
unittest: runcimage
|
unittest: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
-t --privileged --rm \
|
-t --privileged --rm \
|
||||||
@@ -122,9 +138,11 @@ unittest: runcimage
|
|||||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
$(RUNC_IMAGE) make localunittest TESTFLAGS="$(TESTFLAGS)"
|
$(RUNC_IMAGE) make localunittest TESTFLAGS="$(TESTFLAGS)"
|
||||||
|
|
||||||
|
.PHONY: localunittest
|
||||||
localunittest: all
|
localunittest: all
|
||||||
$(GO) test -timeout 3m -tags "$(BUILDTAGS)" $(TESTFLAGS) -v ./...
|
$(GO) test -timeout 3m -tags "$(BUILDTAGS)" $(TESTFLAGS) -v ./...
|
||||||
|
|
||||||
|
.PHONY: integration
|
||||||
integration: runcimage
|
integration: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
-t --privileged --rm \
|
-t --privileged --rm \
|
||||||
@@ -132,9 +150,11 @@ integration: runcimage
|
|||||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
$(RUNC_IMAGE) make localintegration TESTPATH="$(TESTPATH)"
|
$(RUNC_IMAGE) make localintegration TESTPATH="$(TESTPATH)"
|
||||||
|
|
||||||
|
.PHONY: localintegration
|
||||||
localintegration: all
|
localintegration: all
|
||||||
bats -t tests/integration$(TESTPATH)
|
bats -t tests/integration$(TESTPATH)
|
||||||
|
|
||||||
|
.PHONY: rootlessintegration
|
||||||
rootlessintegration: runcimage
|
rootlessintegration: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
-t --privileged --rm \
|
-t --privileged --rm \
|
||||||
@@ -142,25 +162,31 @@ rootlessintegration: runcimage
|
|||||||
-e ROOTLESS_TESTPATH \
|
-e ROOTLESS_TESTPATH \
|
||||||
$(RUNC_IMAGE) make localrootlessintegration
|
$(RUNC_IMAGE) make localrootlessintegration
|
||||||
|
|
||||||
|
.PHONY: localrootlessintegration
|
||||||
localrootlessintegration: all
|
localrootlessintegration: all
|
||||||
tests/rootless.sh
|
tests/rootless.sh
|
||||||
|
|
||||||
|
.PHONY: shell
|
||||||
shell: runcimage
|
shell: runcimage
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
-ti --privileged --rm \
|
-ti --privileged --rm \
|
||||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||||
$(RUNC_IMAGE) bash
|
$(RUNC_IMAGE) bash
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
install -D -m0755 runc $(DESTDIR)$(BINDIR)/runc
|
install -D -m0755 runc $(DESTDIR)$(BINDIR)/runc
|
||||||
|
|
||||||
|
.PHONY: install-bash
|
||||||
install-bash:
|
install-bash:
|
||||||
install -D -m0644 contrib/completions/bash/runc $(DESTDIR)$(PREFIX)/share/bash-completion/completions/runc
|
install -D -m0644 contrib/completions/bash/runc $(DESTDIR)$(PREFIX)/share/bash-completion/completions/runc
|
||||||
|
|
||||||
|
.PHONY: install-man
|
||||||
install-man: man
|
install-man: man
|
||||||
install -d -m 755 $(DESTDIR)$(MANDIR)/man8
|
install -d -m 755 $(DESTDIR)$(MANDIR)/man8
|
||||||
install -D -m 644 man/man8/*.8 $(DESTDIR)$(MANDIR)/man8
|
install -D -m 644 man/man8/*.8 $(DESTDIR)$(MANDIR)/man8
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
rm -f runc runc-* libcontainer/dmz/runc-dmz
|
rm -f runc runc-* libcontainer/dmz/runc-dmz
|
||||||
rm -f contrib/cmd/fs-idmap/fs-idmap
|
rm -f contrib/cmd/fs-idmap/fs-idmap
|
||||||
@@ -171,40 +197,48 @@ clean:
|
|||||||
sudo rm -rf release
|
sudo rm -rf release
|
||||||
rm -rf man/man8
|
rm -rf man/man8
|
||||||
|
|
||||||
|
.PHONY: cfmt
|
||||||
cfmt: C_SRC=$(shell git ls-files '*.c' | grep -v '^vendor/')
|
cfmt: C_SRC=$(shell git ls-files '*.c' | grep -v '^vendor/')
|
||||||
cfmt:
|
cfmt:
|
||||||
indent -linux -l120 -il0 -ppi2 -cp1 -T size_t -T jmp_buf $(C_SRC)
|
indent -linux -l120 -il0 -ppi2 -cp1 -T size_t -T jmp_buf $(C_SRC)
|
||||||
|
|
||||||
|
.PHONY: shellcheck
|
||||||
shellcheck:
|
shellcheck:
|
||||||
shellcheck tests/integration/*.bats tests/integration/*.sh \
|
shellcheck tests/integration/*.bats tests/integration/*.sh \
|
||||||
tests/integration/*.bash tests/*.sh \
|
tests/integration/*.bash tests/*.sh \
|
||||||
man/*.sh script/*
|
man/*.sh script/*
|
||||||
# TODO: add shellcheck for more sh files (contrib/completions/bash/runc).
|
# TODO: add shellcheck for more sh files (contrib/completions/bash/runc).
|
||||||
|
|
||||||
|
.PHONY: shfmt
|
||||||
shfmt:
|
shfmt:
|
||||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||||
--rm -v $(CURDIR):/src -w /src \
|
--rm -v $(CURDIR):/src -w /src \
|
||||||
mvdan/shfmt:v3.5.1 -d -w .
|
mvdan/shfmt:v3.5.1 -d -w .
|
||||||
|
|
||||||
|
.PHONY: localshfmt
|
||||||
localshfmt:
|
localshfmt:
|
||||||
shfmt -d -w .
|
shfmt -d -w .
|
||||||
|
|
||||||
|
.PHONY: venodr
|
||||||
vendor:
|
vendor:
|
||||||
$(GO) mod tidy
|
$(GO) mod tidy
|
||||||
$(GO) mod vendor
|
$(GO) mod vendor
|
||||||
$(GO) mod verify
|
$(GO) mod verify
|
||||||
|
|
||||||
|
.PHONY: verify-changelog
|
||||||
verify-changelog:
|
verify-changelog:
|
||||||
# No space at EOL.
|
# No space at EOL.
|
||||||
! grep -n '\s$$' CHANGELOG.md
|
! grep -n '\s$$' CHANGELOG.md
|
||||||
# Period before issue/PR references.
|
# Period before issue/PR references.
|
||||||
! grep -n '[0-9a-zA-Z][^.] (#[1-9][0-9, #]*)$$' CHANGELOG.md
|
! grep -n '[0-9a-zA-Z][^.] (#[1-9][0-9, #]*)$$' CHANGELOG.md
|
||||||
|
|
||||||
|
.PHONY: verify-dependencies
|
||||||
verify-dependencies: vendor
|
verify-dependencies: vendor
|
||||||
@test -z "$$(git status --porcelain -- go.mod go.sum vendor/)" \
|
@test -z "$$(git status --porcelain -- go.mod go.sum vendor/)" \
|
||||||
|| (echo -e "git status:\n $$(git status -- go.mod go.sum vendor/)\nerror: vendor/, go.mod and/or go.sum not up to date. Run \"make vendor\" to update"; exit 1) \
|
|| (echo -e "git status:\n $$(git status -- go.mod go.sum vendor/)\nerror: vendor/, go.mod and/or go.sum not up to date. Run \"make vendor\" to update"; exit 1) \
|
||||||
&& echo "all vendor files are up to date."
|
&& echo "all vendor files are up to date."
|
||||||
|
|
||||||
|
.PHONY: verify-dmz-arch
|
||||||
verify-dmz-arch:
|
verify-dmz-arch:
|
||||||
@if test -s libcontainer/dmz/runc-dmz; then \
|
@if test -s libcontainer/dmz/runc-dmz; then \
|
||||||
set -Eeuo pipefail; \
|
set -Eeuo pipefail; \
|
||||||
@@ -214,12 +248,6 @@ verify-dmz-arch:
|
|||||||
<(readelf -h libcontainer/dmz/runc-dmz | grep -E "(Machine|Flags):"); \
|
<(readelf -h libcontainer/dmz/runc-dmz | grep -E "(Machine|Flags):"); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
.PHONY: validate-keyring
|
||||||
validate-keyring:
|
validate-keyring:
|
||||||
script/keyring_validate.sh
|
script/keyring_validate.sh
|
||||||
|
|
||||||
.PHONY: runc runc-bin all recvtty sd-helper seccompagent fs-idmap static static-bin \
|
|
||||||
releaseall release localrelease dbuild lint man runcimage \
|
|
||||||
test localtest unittest localunittest integration localintegration \
|
|
||||||
rootlessintegration localrootlessintegration shell install install-bash \
|
|
||||||
install-man clean cfmt shfmt localshfmt shellcheck \
|
|
||||||
vendor verify-changelog verify-dependencies verify-dmz-arch validate-keyring
|
|
||||||
|
|||||||
Reference in New Issue
Block a user