limosek-zaf/Makefile

79 lines
2.7 KiB
Makefile
Raw Normal View History

2016-04-06 14:25:10 +02:00
# Zabbix agent framework makefile
CONTROLFILES=$(foreach p,$(PLUGINS),$(p)/control.zaf)
ZAF_EXPORT_OPTS=$(foreach o,$(ZAF_OPTIONS),$(shell echo $(o)|cut -d '=' -f 1))
DEBIAN_DIR=tmp/deb
DEBIAN_CTRL=$(DEBIAN_DIR)/DEBIAN
DEBIAN_PKG=out/zaf.deb
all: help
help:
@echo make '{deb|ipk|rpm}' '[PLUGINS="/dir/plg1 /dir/plg2] [ZAF_OPTIONS="ZAF_cfg=val ..."] [AGENT_OPTIONS="Z_Server=host ..."]'
2016-04-07 13:14:53 +02:00
deb: deb-clean deb-init deb-deps deb-control deb-scripts deb-cp deb-package
2016-04-06 14:25:10 +02:00
deb-clean:
2016-04-07 13:14:53 +02:00
@rm -rf $(DEBIAN_DIR) $(DEBIAN_PKG)
2016-04-06 14:25:10 +02:00
deb-init:
@mkdir -p tmp out $(DEBIAN_DIR)
deb-deps: $(CONTROLFILES)
@which dpkg >/dev/null && which dpkg-buildpackage >/dev/null && which dch >/dev/null || { echo "You need essential debian developer tools. Please install them:\nsudo apt-get install build-essential devscripts debhelper"; exit 2; }
deb-control:
@mkdir -p $(DEBIAN_CTRL)
@. lib/zaf.lib.sh; \
. lib/ctrl.lib.sh; \
for p in $(PLUGINS); do \
DEPENDS="$$DEPENDS,$$(zaf_ctrl_get_global_option $$p/control.zaf Depends-dpkg | tr ' ' ',')"; \
done; \
zaf_far '{ZAF_VERSION}' "0.1" <files/control.template | zaf_far '{ZAF_DEPENDS}' "$$DEPENDS" >$(DEBIAN_CTRL)/control
2016-04-07 13:14:53 +02:00
deb-scripts:
2016-04-06 14:25:10 +02:00
ifneq ($(PLUGINS),)
@. lib/zaf.lib.sh; \
. lib/ctrl.lib.sh; \
for p in $(PLUGINS); do \
2016-04-07 13:14:53 +02:00
plugins="$$plugins "$$(zaf_ctrl_get_global_option $$p/control.zaf Plugin) ; \
done; \
cat files/postinst.template | zaf_far '{PLUGINS}' "$$plugins" | zaf_far '{ZAF_LIB_DIR}' "/usr/lib/zaf" >$(DEBIAN_CTRL)/postinst
2016-04-06 14:25:10 +02:00
@chmod +x $(DEBIAN_CTRL)/postinst
2016-04-07 13:14:53 +02:00
@cp files/preinst.template $(DEBIAN_CTRL)/preinst
@chmod +x $(DEBIAN_CTRL)/preinst
@cp files/prerm.template $(DEBIAN_CTRL)/prerm
@chmod +x $(DEBIAN_CTRL)/prerm
2016-04-06 14:25:10 +02:00
endif
deb-cp:
@mkdir -p $(DEBIAN_DIR)
2016-04-07 13:14:53 +02:00
@set -e; INSTALL_PREFIX=$(DEBIAN_DIR) ZAF_DEBUG=0 ./install.sh auto $(ZAF_OPTIONS) $(AGENT_OPTIONS)
2016-04-06 14:25:10 +02:00
@. lib/zaf.lib.sh; \
. lib/ctrl.lib.sh; \
for p in $(PLUGINS); do \
plugin=$$(zaf_ctrl_get_global_option $$p/control.zaf Plugin) ; \
2016-04-07 13:14:53 +02:00
mkdir -p $(DEBIAN_DIR)/usr/lib/zaf/prepackaged/$$plugin/; \
cp -R $$p/* $(DEBIAN_DIR)/usr/lib/zaf/prepackaged/$$plugin/; \
2016-04-06 14:25:10 +02:00
done
2016-04-07 13:14:53 +02:00
@cat lib/*lib.sh install.sh >$(DEBIAN_DIR)/usr/lib/zaf/install.sh
@chmod +x $(DEBIAN_DIR)/usr/lib/zaf/install.sh
2016-04-06 14:25:10 +02:00
@rm -rf $(DEBIAN_DIR)/tmp
@cp $(DEBIAN_DIR)/etc/zaf.conf tmp/zaf.conf
2016-04-07 13:14:53 +02:00
@grep -E "$$(echo $(ZAF_EXPORT_OPTS) | tr ' ' '|')=" tmp/zaf.conf >$(DEBIAN_DIR)/etc/zaf.conf
@echo "ZAF_PREPACKAGED_DIR=\"/usr/lib/zaf/prepackaged\"" >>$(DEBIAN_DIR)/etc/zaf.conf
2016-04-06 14:25:10 +02:00
ifneq ($(AGENT_OPTIONS),)
2016-04-07 13:14:53 +02:00
@echo "ZAF_AGENT_OPTIONS=\"$(AGENT_OPTIONS)\"" >>$(DEBIAN_DIR)/etc/zaf.conf
2016-04-06 14:25:10 +02:00
endif
deb-changelog:
2016-04-07 13:14:53 +02:00
@cp files/changelog.template $(DEBIAN_CTRL)/changelog
2016-04-06 14:25:10 +02:00
deb-package:
2016-04-07 13:14:53 +02:00
@dpkg-deb -b $(DEBIAN_DIR) $(DEBIAN_PKG)
2016-04-07 13:20:55 +02:00
@echo "\nCheck configuration:"
@cat $(DEBIAN_DIR)/etc/zaf.conf
@echo
2016-04-06 14:25:10 +02:00