# Build external Go plugin for HomeAgent # Usage: make # build plugin.so # make clean # remove plugin.so # make package # build + create .hmap package PLUGIN_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) PROJECT_ROOT := $(realpath $(PLUGIN_DIR)../..) PLUGIN_NAME := $(notdir $(realpath $(PLUGIN_DIR))) .PHONY: all clean package all: plugin.so plugin.so: cd $(PROJECT_ROOT) && go build -buildmode=plugin -o $(PLUGIN_DIR)plugin.so $(PLUGIN_DIR) clean: rm -f $(PLUGIN_DIR)plugin.so $(PLUGIN_DIR)$(PLUGIN_NAME).hmap package: plugin.so cd $(PLUGIN_DIR) && zip -r $(PLUGIN_NAME).hmap plugin.json plugin.so