Make: build with debug symbols in func tests or if DEBUG=1; drop BUILD_VENDOR_FLAGS (#2443)
This commit is contained in:
parent
25868f27de
commit
b562103024
10 changed files with 33 additions and 14 deletions
29
Makefile
29
Makefile
|
@ -64,7 +64,7 @@ bool = $(if $(filter $(call lc, $1),1 yes true),1,0)
|
|||
|
||||
#--------------------------------------
|
||||
#
|
||||
# Define MAKE_FLAGS and LD_OPTS for the sub-makefiles in cmd/ and plugins/
|
||||
# Define MAKE_FLAGS and LD_OPTS for the sub-makefiles in cmd/
|
||||
#
|
||||
|
||||
MAKE_FLAGS = --no-print-directory GOARCH=$(GOARCH) GOOS=$(GOOS) RM="$(RM)" WIN_IGNORE_ERR="$(WIN_IGNORE_ERR)" CP="$(CP)" CPR="$(CPR)" MKDIR="$(MKDIR)"
|
||||
|
@ -92,7 +92,6 @@ ifeq ($(PKG_CONFIG),)
|
|||
endif
|
||||
|
||||
ifeq ($(RE2_CHECK),)
|
||||
# we could detect the platform and suggest the command to install
|
||||
RE2_FAIL := "libre2-dev is not installed, please install it or set BUILD_RE2_WASM=1 to use the WebAssembly version"
|
||||
else
|
||||
# += adds a space that we don't want
|
||||
|
@ -101,6 +100,7 @@ LD_OPTS_VARS += -X '$(GO_MODULE_NAME)/pkg/cwversion.Libre2=C++'
|
|||
endif
|
||||
endif
|
||||
|
||||
# Build static to avoid the runtime dependency on libre2.so
|
||||
ifeq ($(call bool,$(BUILD_STATIC)),1)
|
||||
BUILD_TYPE = static
|
||||
EXTLDFLAGS := -extldflags '-static'
|
||||
|
@ -109,10 +109,19 @@ BUILD_TYPE = dynamic
|
|||
EXTLDFLAGS :=
|
||||
endif
|
||||
|
||||
export LD_OPTS=-ldflags "-s -w $(EXTLDFLAGS) $(LD_OPTS_VARS)" \
|
||||
-trimpath -tags $(GO_TAGS)
|
||||
# Build with debug symbols, and disable optimizations + inlining, to use Delve
|
||||
ifeq ($(call bool,$(DEBUG)),1)
|
||||
STRIP_SYMBOLS :=
|
||||
DISABLE_OPTIMIZATION := -gcflags "-N -l"
|
||||
else
|
||||
STRIP_SYMBOLS := -s -w
|
||||
DISABLE_OPTIMIZATION :=
|
||||
endif
|
||||
|
||||
ifneq (,$(TEST_COVERAGE))
|
||||
export LD_OPTS=-ldflags "$(STRIP_SYMBOLS) $(EXTLDFLAGS) $(LD_OPTS_VARS)" \
|
||||
-trimpath -tags $(GO_TAGS) $(DISABLE_OPTIMIZATION)
|
||||
|
||||
ifeq ($(call bool,$(TEST_COVERAGE)),1)
|
||||
LD_OPTS += -cover
|
||||
endif
|
||||
|
||||
|
@ -135,8 +144,18 @@ ifneq (,$(RE2_CHECK))
|
|||
else
|
||||
$(info Fallback to WebAssembly regexp library. To use the C++ version, make sure you have installed libre2-dev and pkg-config.)
|
||||
endif
|
||||
|
||||
ifeq ($(call bool,$(DEBUG)),1)
|
||||
$(info Building with debug symbols and disabled optimizations)
|
||||
endif
|
||||
|
||||
ifeq ($(call bool,$(TEST_COVERAGE)),1)
|
||||
$(info Test coverage collection enabled)
|
||||
endif
|
||||
|
||||
$(info )
|
||||
|
||||
|
||||
.PHONY: all
|
||||
all: clean test build
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ BIN_PREFIX = $(PREFIX)"/usr/local/bin/"
|
|||
all: clean build
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: install
|
||||
install: install-conf install-bin
|
||||
|
|
|
@ -22,7 +22,7 @@ SYSTEMD_PATH_FILE = "/etc/systemd/system/crowdsec.service"
|
|||
all: clean test build
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(CROWDSEC_BIN)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(CROWDSEC_BIN)
|
||||
|
||||
test:
|
||||
$(GOTEST) $(LD_OPTS) -v ./...
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-dummy$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-email$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-http$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-sentinel$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-slack$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -10,7 +10,7 @@ GOBUILD = $(GO) build
|
|||
BINARY_NAME = notification-splunk$(EXT)
|
||||
|
||||
build: clean
|
||||
$(GOBUILD) $(LD_OPTS) $(BUILD_VENDOR_FLAGS) -o $(BINARY_NAME)
|
||||
$(GOBUILD) $(LD_OPTS) -o $(BINARY_NAME)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
|
@ -77,7 +77,7 @@ bats-update-tools:
|
|||
# Build and installs crowdsec in a local directory. Rebuilds if already exists.
|
||||
bats-build: bats-environment
|
||||
@$(MKDIR) $(BIN_DIR) $(LOG_DIR) $(PID_DIR) $(BATS_PLUGIN_DIR)
|
||||
@TEST_COVERAGE=$(TEST_COVERAGE) DEFAULT_CONFIGDIR=$(CONFIG_DIR) DEFAULT_DATADIR=$(DATA_DIR) $(MAKE) build
|
||||
@$(MAKE) build DEBUG=1 TEST_COVERAGE=$(TEST_COVERAGE) DEFAULT_CONFIGDIR=$(CONFIG_DIR) DEFAULT_DATADIR=$(DATA_DIR)
|
||||
@install -m 0755 cmd/crowdsec/crowdsec cmd/crowdsec-cli/cscli $(BIN_DIR)/
|
||||
@install -m 0755 cmd/notification-*/notification-* $(BATS_PLUGIN_DIR)/
|
||||
|
||||
|
|
Loading…
Reference in a new issue