Example loadable plugin
Source
branch=`(git symbolic-ref -q HEAD > /dev/null && echo 1) || (git tag -l --points-at HEAD| grep "."| grep -q -v "-" && echo 2) || echo 1`; \
.ONESHELL:
PACKAGE=zabbix-agent2-plugin-example
TOPDIR := $(CURDIR)
ifeq ($(OS),Windows_NT)
SHELL := cmd
TOPDIR := $(subst /,\,$(CURDIR))
PACKAGE:=$(PACKAGE).exe
WINDRES = windres.exe
ifneq ("$(shell findstr ZABBIX_RC_NUM $(TOPDIR)\windres\resource.h)","")
ifeq ("$(WINDRES_FLAGS)","")
WINDRES_FLAGS := \
-D ZABBIX_LICENSE_YEARS='\"$(word 3,$(shell findstr Copyright $(TOPDIR)\main.go | findstr 2001-20))\"' \
-D ZABBIX_VERSION_MAJOR=$(lastword $(shell findstr VERSION_MAJOR $(TOPDIR)\main.go | findstr =)) \
-D ZABBIX_VERSION_MINOR=$(lastword $(shell findstr VERSION_MINOR $(TOPDIR)\main.go | findstr =)) \
-D ZABBIX_VERSION_PATCH=$(lastword $(shell findstr VERSION_PATCH $(TOPDIR)\main.go | findstr =)) \
-D ZABBIX_VERSION_RC='\"$(lastword $(shell findstr VERSION_RC $(TOPDIR)\main.go | findstr =))\"' \
-D ZABBIX_VERSION_RC_NUM=1000
endif
endif
RFLAGS := $(RFLAGS) --input-format=rc -O coff
ifeq ("$(ARCH)", "")
ARCH := $(PROCESSOR_ARCHITECTURE)
endif
endif
ifeq ("$(ARCH)", "x86")
GOARCH := 386
RFLAGS := $(RFLAGS) --target=pe-i386
else
GOARCH := amd64
RFLAGS := $(RFLAGS) --target=pe-x86-64
endif
DISTFILES = \
ChangeLog \
go.mod \
go.sum \
LICENSE \
main.go \
Makefile \
example.conf \
README.md
DIST_SUBDIRS = \
plugin \
windres \
vendor
.build_rc:
ifneq ("$(WINDRES)","")
$(WINDRES) $(TOPDIR)\windres\resource.rc $(WINDRES_FLAGS) $(RFLAGS) \
-D VER_FILEDESCRIPTION_STR='\"$(PACKAGE)\"' \
-D _WINDOWS -o "$(TOPDIR)\$(PACKAGE).syso"
endif
build: .build_rc
set GOARCH=$(GOARCH)
go build -o "$(TOPDIR)/$(PACKAGE)"