mirror of
https://github.com/containers/podman.git
synced 2025-06-24 03:08:13 +08:00
Makefile: Use ?= for shell variables (ISODATE, etc.)
Previously, Make would execute these shell commands even if we didn't need the resulting variable. With ?='s recursive expansion [1], we only expand the variable when it's consumed. For example, the ISODATE variable is only needed in the recipe for the changelog target, so most Make invocations won't need the value, and the computation is just making whatever Make actually is doing slower. I've shifted the GIT_COMMIT and BUILD_INFO values over to LDFLAGS_PODMAN, because the test/*/* targets don't care about those. I've also moved the Go-specific -ldflags from the variables into the recipes themselves, because callers probably expect C semantics for LDFLAGS and not Go's wrapper. That means that there's no longer a need for the LDFLAGS/BASE_LDFLAGS separation, so I'm just using LDFLAGS (and LDFLAGS_PODMAN) now. That reduces the declared variables to just LDFLAGS_PODMAN, so I've shifted that declaration up to get it closer to its GIT_COMMIT and BUILD_INFO precursors. [1]: https://www.gnu.org/software/make/manual/html_node/Setting.html Signed-off-by: W. Trevor King <wking@tremily.us> Closes: #777 Approved by: rhatdan
This commit is contained in:

committed by
Atomic Bot

parent
2fdd4a1610
commit
624660c1b3
27
Makefile
27
Makefile
@ -4,9 +4,9 @@ HEAD ?= HEAD
|
|||||||
CHANGELOG_BASE ?= HEAD~
|
CHANGELOG_BASE ?= HEAD~
|
||||||
CHANGELOG_TARGET ?= HEAD
|
CHANGELOG_TARGET ?= HEAD
|
||||||
PROJECT := github.com/projectatomic/libpod
|
PROJECT := github.com/projectatomic/libpod
|
||||||
GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
||||||
GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
GIT_BRANCH_CLEAN ?= $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g")
|
||||||
LIBPOD_IMAGE := libpod_dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
LIBPOD_IMAGE ?= libpod_dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN))
|
||||||
LIBPOD_INSTANCE := libpod_dev
|
LIBPOD_INSTANCE := libpod_dev
|
||||||
PREFIX ?= ${DESTDIR}/usr/local
|
PREFIX ?= ${DESTDIR}/usr/local
|
||||||
BINDIR ?= ${PREFIX}/bin
|
BINDIR ?= ${PREFIX}/bin
|
||||||
@ -25,10 +25,11 @@ OCIUMOUNTINSTALLDIR=$(PREFIX)/share/oci-umount/oci-umount.d
|
|||||||
SELINUXOPT ?= $(shell test -x /usr/sbin/selinuxenabled && selinuxenabled && echo -Z)
|
SELINUXOPT ?= $(shell test -x /usr/sbin/selinuxenabled && selinuxenabled && echo -Z)
|
||||||
PACKAGES ?= $(shell go list -tags "${BUILDTAGS}" ./... | grep -v github.com/projectatomic/libpod/vendor | grep -v e2e)
|
PACKAGES ?= $(shell go list -tags "${BUILDTAGS}" ./... | grep -v github.com/projectatomic/libpod/vendor | grep -v e2e)
|
||||||
|
|
||||||
COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true)
|
COMMIT_NO ?= $(shell git rev-parse HEAD 2> /dev/null || true)
|
||||||
GIT_COMMIT := $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}")
|
GIT_COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),"${COMMIT_NO}-dirty","${COMMIT_NO}")
|
||||||
BUILD_INFO := $(shell date +%s)
|
BUILD_INFO ?= $(shell date +%s)
|
||||||
ISODATE := $(shell date --iso-8601)
|
LDFLAGS_PODMAN ?= $(LDFLAGS) -X main.gitCommit=$(GIT_COMMIT) -X main.buildInfo=$(BUILD_INFO)
|
||||||
|
ISODATE ?= $(shell date --iso-8601)
|
||||||
LIBSECCOMP_COMMIT := release-2.3
|
LIBSECCOMP_COMMIT := release-2.3
|
||||||
|
|
||||||
# If GOPATH not specified, use one in the local directory
|
# If GOPATH not specified, use one in the local directory
|
||||||
@ -47,10 +48,6 @@ endif
|
|||||||
|
|
||||||
GOMD2MAN ?= $(shell command -v go-md2man || echo '$(GOBIN)/go-md2man')
|
GOMD2MAN ?= $(shell command -v go-md2man || echo '$(GOBIN)/go-md2man')
|
||||||
|
|
||||||
BASE_LDFLAGS := -X main.gitCommit=${GIT_COMMIT} -X main.buildInfo=${BUILD_INFO}
|
|
||||||
LDFLAGS := -ldflags '${BASE_LDFLAGS}'
|
|
||||||
LDFLAGS_PODMAN := -ldflags '${BASE_LDFLAGS}'
|
|
||||||
|
|
||||||
BOX="fedora_atomic"
|
BOX="fedora_atomic"
|
||||||
|
|
||||||
all: binaries docs
|
all: binaries docs
|
||||||
@ -85,16 +82,16 @@ fix_gofmt:
|
|||||||
@./hack/verify-gofmt.sh -f
|
@./hack/verify-gofmt.sh -f
|
||||||
|
|
||||||
test/bin2img/bin2img: .gopathok $(wildcard test/bin2img/*.go)
|
test/bin2img/bin2img: .gopathok $(wildcard test/bin2img/*.go)
|
||||||
$(GO) build $(LDFLAGS) -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/bin2img
|
$(GO) build -ldflags '$(LDFLAGS)' -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/bin2img
|
||||||
|
|
||||||
test/copyimg/copyimg: .gopathok $(wildcard test/copyimg/*.go)
|
test/copyimg/copyimg: .gopathok $(wildcard test/copyimg/*.go)
|
||||||
$(GO) build $(LDFLAGS) -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/copyimg
|
$(GO) build -ldflags '$(LDFLAGS)' -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/copyimg
|
||||||
|
|
||||||
test/checkseccomp/checkseccomp: .gopathok $(wildcard test/checkseccomp/*.go)
|
test/checkseccomp/checkseccomp: .gopathok $(wildcard test/checkseccomp/*.go)
|
||||||
$(GO) build $(LDFLAGS) -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/checkseccomp
|
$(GO) build -ldflags '$(LDFLAGS)' -tags "$(BUILDTAGS) containers_image_ostree_stub" -o $@ $(PROJECT)/test/checkseccomp
|
||||||
|
|
||||||
podman: .gopathok API.md cmd/podman/varlink/ioprojectatomicpodman.go
|
podman: .gopathok API.md cmd/podman/varlink/ioprojectatomicpodman.go
|
||||||
$(GO) build -i $(LDFLAGS_PODMAN) -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman
|
$(GO) build -i -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman
|
||||||
|
|
||||||
python-podman:
|
python-podman:
|
||||||
$(MAKE) -C contrib/python python-podman
|
$(MAKE) -C contrib/python python-podman
|
||||||
|
Reference in New Issue
Block a user