diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 55 |
1 files changed, 33 insertions, 22 deletions
@@ -1,6 +1,6 @@ GO ?= go DESTDIR ?= -EPOCH_TEST_COMMIT ?= 90e3c9002b2293569e0cec168a30ecb962b00034 +EPOCH_TEST_COMMIT ?= 5df8178c995fe6422f0fed258cd65f6cbcf26f2e HEAD ?= HEAD CHANGELOG_BASE ?= HEAD~ CHANGELOG_TARGET ?= HEAD @@ -49,14 +49,22 @@ SELINUXOPT ?= $(shell test -x /usr/sbin/selinuxenabled && selinuxenabled && echo 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}) -BUILD_INFO ?= $(shell date +%s) +DATE_FMT = %s +ifdef SOURCE_DATE_EPOCH + BUILD_INFO ?= $(shell date -u -d "@$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u -r "$(SOURCE_DATE_EPOCH)" "+$(DATE_FMT)" 2>/dev/null || date -u "+$(DATE_FMT)") + ISODATE ?= $(shell date -d "@$(SOURCE_DATE_EPOCH)" --iso-8601) +else + BUILD_INFO ?= $(shell date "+$(DATE_FMT)") + ISODATE ?= $(shell date --iso-8601) +endif LIBPOD := ${PROJECT}/libpod +GCFLAGS ?= all=-trimpath=${PWD} +ASMFLAGS ?= all=-trimpath=${PWD} LDFLAGS_PODMAN ?= $(LDFLAGS) \ -X $(LIBPOD).gitCommit=$(GIT_COMMIT) \ -X $(LIBPOD).buildInfo=$(BUILD_INFO) \ -X $(LIBPOD).installPrefix=$(PREFIX) \ -X $(LIBPOD).etcDir=$(ETCDIR) -ISODATE ?= $(shell date --iso-8601) #Update to LIBSECCOMP_COMMIT should reflect in Dockerfile too. LIBSECCOMP_COMMIT := release-2.3 @@ -132,16 +140,16 @@ test/goecho/goecho: .gopathok $(wildcard test/goecho/*.go) $(GO) build -ldflags '$(LDFLAGS)' -o $@ $(PROJECT)/test/goecho podman: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman - $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman + $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman podman-remote: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on remote environment - $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS) remoteclient" -o bin/$@ $(PROJECT)/cmd/podman + $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS) remoteclient" -o bin/$@ $(PROJECT)/cmd/podman podman-remote-darwin: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on remote OSX environment - GOOS=darwin $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@ $(PROJECT)/cmd/podman + GOOS=darwin $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@ $(PROJECT)/cmd/podman podman-remote-windows: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman for a remote windows environment - GOOS=windows $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@.exe $(PROJECT)/cmd/podman + GOOS=windows $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@.exe $(PROJECT)/cmd/podman local-cross: $(CROSS_BUILD_TARGETS) ## Cross local compilation @@ -149,7 +157,7 @@ bin/podman.cross.%: .gopathok TARGET="$*"; \ GOOS="$${TARGET%%.*}" \ GOARCH="$${TARGET##*.}" \ - $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags '$(BUILDTAGS_CROSS)' -o "$@" $(PROJECT)/cmd/podman + $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags '$(BUILDTAGS_CROSS)' -o "$@" $(PROJECT)/cmd/podman clean: ## Clean artifacts rm -rf \ @@ -220,8 +228,11 @@ localintegration: varlink_generate test-binaries ginkgo remoteintegration: varlink_generate test-binaries ginkgo-remote -localsystem: .install.ginkgo - ginkgo -v -noColor test/system/ +localsystem: + if timeout -v 1 true; then PODMAN=./bin/podman bats test/system/; else echo "Skipping localsystem: 'timeout -v' unavailable'"; fi + +remotesystem: + @echo "remotesystem - unimplemented" system.test-binary: .install.ginkgo $(GO) test -c ./test/system @@ -321,11 +332,12 @@ uninstall: GIT_CHECK_EXCLUDE="./vendor" $(GOBIN)/git-validation -v -run DCO,short-subject,dangling-whitespace -range $(EPOCH_TEST_COMMIT)..$(HEAD) .PHONY: install.tools - install.tools: .install.gitvalidation .install.gometalinter .install.md2man .install.ginkgo ## Install needed tools -.install.vndr: .gopathok - $(GO) get -u github.com/LK4D4/vndr +define go-get + env GO111MODULE=off \ + $(GO) get -u ${1} +endef .install.ginkgo: .gopathok if [ ! -x "$(GOBIN)/ginkgo" ]; then \ @@ -334,12 +346,12 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man .ins .install.gitvalidation: .gopathok if [ ! -x "$(GOBIN)/git-validation" ]; then \ - $(GO) get -u github.com/vbatts/git-validation; \ + $(call go-get,github.com/vbatts/git-validation); \ fi .install.gometalinter: .gopathok if [ ! -x "$(GOBIN)/gometalinter" ]; then \ - $(GO) get -u github.com/alecthomas/gometalinter; \ + $(call go-get,github.com/alecthomas/gometalinter); \ cd $(FIRST_GOPATH)/src/github.com/alecthomas/gometalinter; \ git checkout e8d801238da6f0dfd14078d68f9b53fa50a7eeb5; \ $(GO) install github.com/alecthomas/gometalinter; \ @@ -348,7 +360,7 @@ install.tools: .install.gitvalidation .install.gometalinter .install.md2man .ins .install.md2man: .gopathok if [ ! -x "$(GOBIN)/go-md2man" ]; then \ - $(GO) get -u github.com/cpuguy83/go-md2man; \ + $(call go-get,github.com/cpuguy83/go-md2man); \ fi .install.ostree: .gopathok @@ -385,12 +397,11 @@ build-all-new-commits: # Validate that all the commits build on top of $(GIT_BASE_BRANCH) git rebase $(GIT_BASE_BRANCH) -x make -vendor: .install.vndr - $(GOPATH)/bin/vndr \ - -whitelist "github.com/varlink/go" \ - -whitelist "github.com/onsi/ginkgo" \ - -whitelist "github.com/onsi/gomega" \ - -whitelist "gopkg.in/fsnotify.v1" +vendor: + export GO111MODULE=on \ + $(GO) mod tidy && \ + $(GO) mod vendor && \ + $(GO) mod verify .PHONY: \ .gopathok \ |