File: Makefile

package info (click to toggle)
golang-github-containers-common 0.56.0%2Bds1-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,852 kB
  • sloc: makefile: 126; sh: 62
file content (117 lines) | stat: -rw-r--r-- 2,844 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
GO ?= go
GO_BUILD=$(GO) build
BUILDTAGS := containers_image_openpgp,systemd,exclude_graphdriver_devicemapper
DESTDIR ?=
PREFIX := /usr/local
CONFIGDIR := ${PREFIX}/share/containers

define go-build
	CGO_ENABLED=0 \
	GOOS=$(1) GOARCH=$(2) $(GO) build -tags "$(3)" ./...
endef

ifeq ($(shell uname -s),Linux)
define go-build-c
	CGO_ENABLED=1 \
	GOOS=$(1) GOARCH=$(2) $(GO) build -tags "$(3)" ./...
endef
else
define go-build-c
endef
endif

.PHONY:
build-cross:
	$(call go-build-c,linux) # attempt to build without tags
	$(call go-build-c,linux,,${BUILDTAGS})
	$(call go-build,linux,386,${BUILDTAGS})
	$(call go-build-c,linux) # attempt to build without tags
	$(call go-build,linux,386,${BUILDTAGS})
	$(call go-build,linux,arm,${BUILDTAGS})
	$(call go-build,linux,arm64,${BUILDTAGS})
	$(call go-build,linux,ppc64le,${BUILDTAGS})
	$(call go-build,linux,s390x,${BUILDTAGS})
	$(call go-build,darwin,amd64,${BUILDTAGS})
	$(call go-build,windows,amd64,${BUILDTAGS})
	$(call go-build,windows,386,${BUILDTAGS})

.PHONY: all
all: build-amd64 build-386

.PHONY: build
build: build-amd64 build-386

.PHONY: build-amd64
build-amd64:
	GOARCH=amd64 $(GO_BUILD) -tags $(BUILDTAGS) ./...

.PHONY: build-386
build-386:
ifneq ($(shell uname -s), Darwin)
	GOARCH=386 $(GO_BUILD) -tags $(BUILDTAGS) ./...
endif

.PHONY: bin/netavark-testplugin
bin/netavark-testplugin:
	$(GO_BUILD) -o $@ ./libnetwork/netavark/testplugin/

.PHONY: netavark-testplugin
netavark-testplugin: bin/netavark-testplugin

.PHONY: docs
docs:
	$(MAKE) -C docs

.PHONY: validate
validate: build/golangci-lint
	./build/golangci-lint run
	./tools/validate_seccomp.sh ./pkg/seccomp

vendor-in-container:
	podman run --privileged --rm --env HOME=/root -v `pwd`:/src -w /src golang make vendor

.PHONY: vendor
vendor:
	$(GO) mod tidy
	$(GO) mod vendor
	$(GO) mod verify

.PHONY: install.tools
install.tools: build/golangci-lint .install.md2man

build/golangci-lint: VERSION=v1.53.3
build/golangci-lint:
	curl -fsSL https://raw.githubusercontent.com/golangci/golangci-lint/$(VERSION)/install.sh | sh -s -- -b ./build $(VERSION)

.install.md2man:
	$(GO) install github.com/cpuguy83/go-md2man/v2@latest

.PHONY: install
install:
	install -d ${DESTDIR}/${CONFIGDIR}
	install -m 0644 pkg/config/containers.conf ${DESTDIR}/${CONFIGDIR}/containers.conf

	$(MAKE) -C docs install

.PHONY: test
test: test-unit

.PHONY: test-unit
test-unit: netavark-testplugin
	go test --tags $(BUILDTAGS) -v ./libimage
	go test --tags $(BUILDTAGS) -v ./libnetwork/...
	go test --tags $(BUILDTAGS) -v ./pkg/...
	go test --tags remote,seccomp,$(BUILDTAGS) -v ./pkg/...

.PHONY: codespell
codespell:
	codespell -L ro,hastable,shouldnot -w

clean: ## Clean artifacts
	$(MAKE) -C docs clean
	find . -name \*~ -delete
	find . -name \#\* -delete

.PHONY: seccomp.json
seccomp.json: $(sources)
	$(GO) run ./cmd/seccomp/generate.go