+COMMIT ?= $(shell git rev-parse HEAD)
+BUILD_STAMP ?= $(shell git log -1 --format='%ct')
+BUILD_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
+
+BUILD_HOST ?= $(shell hostname)
+BUILD_USER ?= $(shell id -un)
+
+GO ?= go
+
+GOVPP_PKG := git.fd.io/govpp.git
+LDFLAGS = \
+ -X ${GOVPP_PKG}/version.version=$(VERSION) \
+ -X ${GOVPP_PKG}/version.commitHash=$(COMMIT) \
+ -X ${GOVPP_PKG}/version.buildStamp=$(BUILD_STAMP) \
+ -X ${GOVPP_PKG}/version.buildBranch=$(BUILD_BRANCH) \
+ -X ${GOVPP_PKG}/version.buildUser=$(BUILD_USER) \
+ -X ${GOVPP_PKG}/version.buildHost=$(BUILD_HOST)
+ifeq ($(NOSTRIP),)
+LDFLAGS += -w -s
+endif
+
+GO_BUILD_TAGS ?= novpp
+
+GO_BUILD_ARGS = -ldflags "$(LDFLAGS)"
+ifneq ($(GO_BUILD_TAGS),)
+GO_BUILD_ARGS += -tags="${GO_BUILD_TAGS}"
+endif
+ifneq ($(GO_NOTRIM),0)
+GO_BUILD_ARGS += -trimpath
+endif
+ifeq ($(V),1)
+GO_BUILD_ARGS += -v
+endif
+
+VPP_VERSION = $(shell dpkg-query -f '\${Version}' -W vpp)
+
+VPP_IMG ?= ligato/vpp-base:latest
+BINAPI_DIR ?= ./binapi
+
+bin:
+ mkdir -p bin
+
+build: ## Build all
+ @echo "# building ${VERSION}"
+ $(GO) build ${GO_BUILD_ARGS} ./...
+
+cmd: bin ## Build commands
+ $(GO) build ${GO_BUILD_ARGS} -o bin ./cmd/...