File: Makefile

package info (click to toggle)
continuity 0.4.5~ds1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 712 kB
  • sloc: makefile: 50
file content (74 lines) | stat: -rw-r--r-- 2,129 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#   Copyright The containerd Authors.

#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at

#       http://www.apache.org/licenses/LICENSE-2.0

#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.

# Set an output prefix, which is the local directory if not specified
PREFIX?=$(shell pwd)

PKG=github.com/containerd/continuity

PACKAGES=$(shell go list -mod=vendor ./... | grep -v /vendor/)
TEST_REQUIRES_ROOT_PACKAGES=$(filter \
    ${PACKAGES}, \
    $(shell \
    for f in $$(git grep -l testutil.RequiresRoot | grep -v Makefile); do \
        d="$$(dirname $$f)"; \
        [ "$$d" = "." ] && echo "${PKG}" && continue; \
        echo "${PKG}/$$d"; \
    done | sort -u) \
    )

.PHONY: clean all lint build test binaries
.DEFAULT: default

all: AUTHORS clean lint build test binaries

AUTHORS: .mailmap .git/HEAD
	 git log --format='%aN <%aE>' | sort -fu > $@

${PREFIX}/bin/continuity:
	@echo "+ $@"
	@(cd cmd/continuity && go build -mod=mod -o $@  ${GO_GCFLAGS} .)

generate:
	go generate -mod=vendor $(PACKAGES)

lint:
	@echo "+ $@"
	@golangci-lint run
	@(cd cmd/continuity && golangci-lint --config=../../.golangci.yml run)

build:
	@echo "+ $@"
	@go build -mod=vendor -v ${GO_LDFLAGS} $(PACKAGES)

test:
	@echo "+ $@"
	@go test -mod=vendor $(PACKAGES)

root-test:
	@echo "+ $@"
	@go test -exec sudo ${TEST_REQUIRES_ROOT_PACKAGES} -test.root -test.v

test-compile:
	@echo "+ $@"
	@for pkg in $(PACKAGES); do go test -mod=vendor -c $$pkg; done

binaries: ${PREFIX}/bin/continuity
	@echo "+ $@"
	@if [ x$$GOOS = xwindows ]; then echo "+ continuity -> continuity.exe"; mv ${PREFIX}/bin/continuity ${PREFIX}/bin/continuity.exe; fi

clean:
	@echo "+ $@"
	@rm -rf "${PREFIX}/bin/continuity" "${PREFIX}/bin/continuity.exe"