# $HeadURL$ $LastChangedRevision$ ifndef METHOD_MAKEFILE_SERVICE_RECIPES METHOD_MAKEFILE_SERVICE_RECIPES = 1 # Variables (needed by method-*.mk in pass #1 and the file-*.mk in pass #0) MAKEFILE_SERVICE_RECIPES = $(PCMS_STATE_PREFIX)/makefiles/service-recipes.mk MAKEFILE_NOSERVICE_RECIPES = $(PCMS_STATE_PREFIX)/makefiles/noservice-recipes.mk MAKEFILE_SERVICE_FILES = $(PCMS_STATE_PREFIX)/makefiles/service-files.mk MAKEFILE_NOSERVICE_FILES = $(PCMS_STATE_PREFIX)/makefiles/noservice-files.mk # Generate all recipes and recipe list (but they not be used by pass #0) ifeq ($(PCMS_PASS_NUM),1) all: all.service all.noservice # Check symbols we'll use in recipes below. # (none) all.service: force-execution-each-time msg --progname=$(PROGNAME) --debug=$(VERBOSELEVEL) debug 10 "$@: generating $(MAKEFILE_SERVICE_RECIPES) ..." mkdir -p $(dir $(MAKEFILE_SERVICE_RECIPES)) { \ echo '%.service:'; \ echo ' rm -f $$*.noservice'; \ echo ' [ $$$$(systemctl is-enabled $$*) = enabled ] || systemctl enable $$*'; \ echo ' [ $$$$(systemctl is-active $$*) = active ] || systemctl start $$*'; \ echo ' touch $$@'; \ echo; \ } > $(MAKEFILE_SERVICE_RECIPES) msg --progname=$(PROGNAME) --debug=$(VERBOSELEVEL) debug 10 "$@: generating $(MAKEFILE_SERVICE_FILES) ..." mkdir -p $(dir $(MAKEFILE_SERVICE_FILES)) echo "SERVICE_FILES = $(filter %.service,$^)" > $(MAKEFILE_SERVICE_FILES) all.noservice: force-execution-each-time msg --progname=$(PROGNAME) --debug=$(VERBOSELEVEL) debug 10 "$@: generating $(MAKEFILE_NOSERVICE_RECIPES) ..." mkdir -p $(dir $(MAKEFILE_NOSERVICE_RECIPES)) { \ echo '%.noservice:'; \ echo ' rm -f $$*.service'; \ echo ' [ $$$$(systemctl is-active $$*) = inactive ] || systemctl stop $$*'; \ echo ' [ $$$$(systemctl is-enabled $$*) = disabled ] || systemctl disable $$*'; \ echo ' touch $@'; \ echo; \ } > $(MAKEFILE_NOSERVICE_RECIPES) msg --progname=$(PROGNAME) --debug=$(VERBOSELEVEL) debug 10 "$@: generating $(MAKEFILE_NOSERVICE_FILES) ..." mkdir -p $(dir $(MAKEFILE_NOSERVICE_FILES)) echo "NOSERVICE_FILES = $(filter %.noservice,$^)" > $(MAKEFILE_NOSERVICE_FILES) # Stop descent %.service: ; %.noservice: ; # method-*.mk does nothing in pass #0; see the associated file-*mk. else ifeq ($(PCMS_PASS_NUM),0) # But, since the associated file-*.mk doesn't know what the recipe targets # depend on, tell pass #0 to acquaint itself with how to make *those* here. # (none) # But, as a courtesy, we can load the recipes and recipe list ... include $(MAKEFILE_SERVICE_RECIPES) include $(MAKEFILE_SERVICE_FILES) include $(MAKEFILE_NOSERVICE_RECIPES) include $(MAKEFILE_NOSERVICE_FILES) # ... but it's up to the associated file-*.mk to demand that # $(SERVICE_FILES) or $(NOSERVICE_FILES) be built. endif # PCMS_PASS_NUM endif # METHOD_MAKEFILE_SERVICE_RECIPES