#   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.


#Windows specific settings.
WHALE = "+"
ONI = "-"

# amd64 supports go test -race
ifeq ($(GOARCH),amd64)
	TESTFLAGS_RACE= -race
endif

WINDOWS_SHIM=bin/containerd-shim-runhcs-v1.exe
BINARIES := $(addsuffix .exe,$(BINARIES)) $(WINDOWS_SHIM)

$(WINDOWS_SHIM): script/setup/install-runhcs-shim go.mod
	DESTDIR=$(CURDIR)/bin $<

bin/%.exe: cmd/% FORCE
	$(BUILD_BINARY)
