2021-03-17 12:30:44 +00:00
|
|
|
# Copyright (c) 2017-2021, NVIDIA CORPORATION. All rights reserved.
|
|
|
|
#
|
|
|
|
# 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.
|
2019-10-22 21:36:22 +00:00
|
|
|
|
|
|
|
DOCKER ?= docker
|
|
|
|
MKDIR ?= mkdir
|
2020-05-14 19:27:34 +00:00
|
|
|
DIST_DIR ?= $(CURDIR)/dist
|
2019-10-22 21:36:22 +00:00
|
|
|
|
2020-05-14 19:27:34 +00:00
|
|
|
LIB_NAME := nvidia-container-toolkit
|
2021-04-29 10:16:44 +00:00
|
|
|
LIB_VERSION := 1.5.0
|
2020-09-16 11:45:31 +00:00
|
|
|
LIB_TAG ?=
|
2019-10-22 21:36:22 +00:00
|
|
|
|
2021-05-18 09:24:55 +00:00
|
|
|
GOLANG_VERSION := 1.16.3
|
2020-07-24 11:40:24 +00:00
|
|
|
GOLANG_PKG_PATH := github.com/NVIDIA/nvidia-container-toolkit/pkg
|
2020-04-12 00:18:00 +00:00
|
|
|
|
2020-05-14 19:27:34 +00:00
|
|
|
# By default run all native docker-based targets
|
|
|
|
docker-native:
|
2021-03-17 12:30:44 +00:00
|
|
|
include $(CURDIR)/docker/docker.mk
|
2020-04-12 00:18:00 +00:00
|
|
|
|
|
|
|
binary:
|
2020-05-14 19:27:34 +00:00
|
|
|
go build -ldflags "-s -w" -o "$(LIB_NAME)" $(GOLANG_PKG_PATH)
|
2021-03-17 13:13:04 +00:00
|
|
|
|
|
|
|
# Define the check targets for the Golang codebase
|
|
|
|
MODULE := .
|
|
|
|
.PHONY: check fmt assert-fmt ineffassign lint misspell vet
|
|
|
|
check: assert-fmt lint misspell vet
|
|
|
|
fmt:
|
|
|
|
go list -f '{{.Dir}}' $(MODULE)/... \
|
|
|
|
| xargs gofmt -s -l -w
|
|
|
|
|
|
|
|
assert-fmt:
|
|
|
|
go list -f '{{.Dir}}' $(MODULE)/... \
|
|
|
|
| xargs gofmt -s -l > fmt.out
|
|
|
|
@if [ -s fmt.out ]; then \
|
|
|
|
echo "\nERROR: The following files are not formatted:\n"; \
|
|
|
|
cat fmt.out; \
|
|
|
|
rm fmt.out; \
|
|
|
|
exit 1; \
|
|
|
|
else \
|
|
|
|
rm fmt.out; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
ineffassign:
|
|
|
|
ineffassign $(MODULE)/...
|
|
|
|
|
|
|
|
lint:
|
|
|
|
# We use `go list -f '{{.Dir}}' $(GOLANG_PKG_PATH)/...` to skip the `vendor` folder.
|
|
|
|
go list -f '{{.Dir}}' $(MODULE)/... | xargs golint -set_exit_status
|
|
|
|
|
|
|
|
misspell:
|
|
|
|
misspell $(MODULE)/...
|
|
|
|
|
|
|
|
vet:
|
|
|
|
go vet $(MODULE)/...
|
|
|
|
|
2021-06-07 11:20:58 +00:00
|
|
|
COVERAGE_FILE := coverage.out
|
2021-03-17 13:13:04 +00:00
|
|
|
test:
|
2021-06-07 11:20:58 +00:00
|
|
|
go test -coverprofile=$(COVERAGE_FILE) $(MODULE)/...
|
|
|
|
|
|
|
|
coverage: test
|
|
|
|
go tool cover -func=$(COVERAGE_FILE)
|