mirror of
https://github.com/opencontainers/runc.git
synced 2025-12-24 11:50:58 +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:
42
Makefile
42
Makefile
@@ -63,18 +63,24 @@ endif
|
||||
|
||||
.DEFAULT: runc
|
||||
|
||||
.PHONY: runc
|
||||
runc: runc-bin verify-dmz-arch
|
||||
|
||||
.PHONY: runc-bin
|
||||
runc-bin: runc-dmz
|
||||
$(GO_BUILD) -o runc .
|
||||
|
||||
.PHONY: all
|
||||
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:
|
||||
$(GO_BUILD) -o contrib/cmd/$@/$@ ./contrib/cmd/$@
|
||||
|
||||
.PHONY: static
|
||||
static: static-bin verify-dmz-arch
|
||||
|
||||
.PHONY: static-bin
|
||||
static-bin: runc-dmz
|
||||
$(GO_BUILD_STATIC) -o runc .
|
||||
|
||||
@@ -83,9 +89,11 @@ runc-dmz:
|
||||
rm -f libcontainer/dmz/runc-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
|
||||
|
||||
.PHONY: release
|
||||
release: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
--rm -v $(CURDIR):/go/src/$(PROJECT) \
|
||||
@@ -93,28 +101,36 @@ release: runcimage
|
||||
$(RUNC_IMAGE) make localrelease
|
||||
script/release_sign.sh -S $(GPG_KEYID) -r release/$(VERSION) -v $(VERSION)
|
||||
|
||||
.PHONY: localrelease
|
||||
localrelease: verify-changelog
|
||||
script/release_build.sh -r release/$(VERSION) -v $(VERSION) $(RELEASE_ARGS)
|
||||
|
||||
.PHONY: dbuild
|
||||
dbuild: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
--privileged --rm \
|
||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||
$(RUNC_IMAGE) make clean all
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
golangci-lint run ./...
|
||||
|
||||
.PHONY: man
|
||||
man:
|
||||
man/md2man-all.sh
|
||||
|
||||
.PHONY: runcimage
|
||||
runcimage:
|
||||
$(CONTAINER_ENGINE) build $(CONTAINER_ENGINE_BUILD_FLAGS) -t $(RUNC_IMAGE) .
|
||||
|
||||
.PHONY: test
|
||||
test: unittest integration rootlessintegration
|
||||
|
||||
.PHONY: localtest
|
||||
localtest: localunittest localintegration localrootlessintegration
|
||||
|
||||
.PHONY: unittest
|
||||
unittest: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
-t --privileged --rm \
|
||||
@@ -122,9 +138,11 @@ unittest: runcimage
|
||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||
$(RUNC_IMAGE) make localunittest TESTFLAGS="$(TESTFLAGS)"
|
||||
|
||||
.PHONY: localunittest
|
||||
localunittest: all
|
||||
$(GO) test -timeout 3m -tags "$(BUILDTAGS)" $(TESTFLAGS) -v ./...
|
||||
|
||||
.PHONY: integration
|
||||
integration: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
-t --privileged --rm \
|
||||
@@ -132,9 +150,11 @@ integration: runcimage
|
||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||
$(RUNC_IMAGE) make localintegration TESTPATH="$(TESTPATH)"
|
||||
|
||||
.PHONY: localintegration
|
||||
localintegration: all
|
||||
bats -t tests/integration$(TESTPATH)
|
||||
|
||||
.PHONY: rootlessintegration
|
||||
rootlessintegration: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
-t --privileged --rm \
|
||||
@@ -142,25 +162,31 @@ rootlessintegration: runcimage
|
||||
-e ROOTLESS_TESTPATH \
|
||||
$(RUNC_IMAGE) make localrootlessintegration
|
||||
|
||||
.PHONY: localrootlessintegration
|
||||
localrootlessintegration: all
|
||||
tests/rootless.sh
|
||||
|
||||
.PHONY: shell
|
||||
shell: runcimage
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
-ti --privileged --rm \
|
||||
-v $(CURDIR):/go/src/$(PROJECT) \
|
||||
$(RUNC_IMAGE) bash
|
||||
|
||||
.PHONY: install
|
||||
install:
|
||||
install -D -m0755 runc $(DESTDIR)$(BINDIR)/runc
|
||||
|
||||
.PHONY: install-bash
|
||||
install-bash:
|
||||
install -D -m0644 contrib/completions/bash/runc $(DESTDIR)$(PREFIX)/share/bash-completion/completions/runc
|
||||
|
||||
.PHONY: install-man
|
||||
install-man: man
|
||||
install -d -m 755 $(DESTDIR)$(MANDIR)/man8
|
||||
install -D -m 644 man/man8/*.8 $(DESTDIR)$(MANDIR)/man8
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -f runc runc-* libcontainer/dmz/runc-dmz
|
||||
rm -f contrib/cmd/fs-idmap/fs-idmap
|
||||
@@ -171,40 +197,48 @@ clean:
|
||||
sudo rm -rf release
|
||||
rm -rf man/man8
|
||||
|
||||
.PHONY: cfmt
|
||||
cfmt: C_SRC=$(shell git ls-files '*.c' | grep -v '^vendor/')
|
||||
cfmt:
|
||||
indent -linux -l120 -il0 -ppi2 -cp1 -T size_t -T jmp_buf $(C_SRC)
|
||||
|
||||
.PHONY: shellcheck
|
||||
shellcheck:
|
||||
shellcheck tests/integration/*.bats tests/integration/*.sh \
|
||||
tests/integration/*.bash tests/*.sh \
|
||||
man/*.sh script/*
|
||||
# TODO: add shellcheck for more sh files (contrib/completions/bash/runc).
|
||||
|
||||
.PHONY: shfmt
|
||||
shfmt:
|
||||
$(CONTAINER_ENGINE) run $(CONTAINER_ENGINE_RUN_FLAGS) \
|
||||
--rm -v $(CURDIR):/src -w /src \
|
||||
mvdan/shfmt:v3.5.1 -d -w .
|
||||
|
||||
.PHONY: localshfmt
|
||||
localshfmt:
|
||||
shfmt -d -w .
|
||||
|
||||
.PHONY: venodr
|
||||
vendor:
|
||||
$(GO) mod tidy
|
||||
$(GO) mod vendor
|
||||
$(GO) mod verify
|
||||
|
||||
.PHONY: verify-changelog
|
||||
verify-changelog:
|
||||
# No space at EOL.
|
||||
! grep -n '\s$$' CHANGELOG.md
|
||||
# Period before issue/PR references.
|
||||
! grep -n '[0-9a-zA-Z][^.] (#[1-9][0-9, #]*)$$' CHANGELOG.md
|
||||
|
||||
.PHONY: verify-dependencies
|
||||
verify-dependencies: 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 "all vendor files are up to date."
|
||||
|
||||
.PHONY: verify-dmz-arch
|
||||
verify-dmz-arch:
|
||||
@if test -s libcontainer/dmz/runc-dmz; then \
|
||||
set -Eeuo pipefail; \
|
||||
@@ -214,12 +248,6 @@ verify-dmz-arch:
|
||||
<(readelf -h libcontainer/dmz/runc-dmz | grep -E "(Machine|Flags):"); \
|
||||
fi
|
||||
|
||||
.PHONY: validate-keyring
|
||||
validate-keyring:
|
||||
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