ifneq ($(SUB_VERSION), )
VERSION := $(firstword $(subst -, ,$(SUB_VERSION)))
SUB_VERSION := $(word 2,$(subst -, ,$(SUB_VERSION)))
- else
+ endif
+ ifeq ($(SUB_VERSION), )
SUB_VERSION := $(shell git rev-parse --short HEAD)
ifeq ($(SUB_VERSION), )
SUB_VERSION := unknown-dev
# Release or Debug mode
ifeq ($(filter 1,$(RELEASE) $(REL)),)
- GORELEASE=
+ GO_LDFLAGS=
+ # disable compiler optimizations and inlining
+ GO_GCFLAGS=-N -l
BUILD_MODE="Debug mode"
else
# optimized code without debug info
- GORELEASE= -s -w
+ GO_LDFLAGS=-s -w
+ GO_GCFLAGS=
BUILD_MODE="Release mode"
endif
build: tools/syncthing/copytobin
@echo "### Build XDS agent (version $(VERSION), subversion $(SUB_VERSION)) - $(BUILD_MODE)";
- @cd $(ROOT_SRCDIR); $(BUILD_ENV_FLAGS) go build $(VERBOSE_$(V)) -i -o $(LOCAL_BINDIR)/xds-agent$(EXT) -ldflags "$(GORELEASE) -X main.AppVersion=$(VERSION) -X main.AppSubVersion=$(SUB_VERSION)" .
+ @cd $(ROOT_SRCDIR); $(BUILD_ENV_FLAGS) go build $(VERBOSE_$(V)) -i -o $(LOCAL_BINDIR)/xds-agent$(EXT) -ldflags "$(GORELEASE) -X main.AppVersion=$(VERSION) -X main.AppSubVersion=$(SUB_VERSION)" -gcflags "$(GO_GCFLAGS)" .
package: clean tools/syncthing vendor build
@mkdir -p $(PACKAGE_DIR)/xds-agent
GOOS=windows GOARCH=amd64 RELEASE=1 make -f $(ROOT_SRCDIR)/Makefile package
@echo "# Build darwin amd64..."
GOOS=darwin GOARCH=amd64 RELEASE=1 make -f $(ROOT_SRCDIR)/Makefile package
+ make -f $(ROOT_SRCDIR)/Makefile clean
test: tools/glide
go test --race $(shell $(LOCAL_TOOLSDIR)/glide novendor)