cbff0b494f 2023-08-18 1: SCRIPTS:=${:!find /etc/mrc -name '*.service.mk'!:S/^\/etc\/mrc\///:S/.service.mk$//}
cbff0b494f 2023-08-18 2:
cbff0b494f 2023-08-18 3: .include "starter.mk"
cbff0b494f 2023-08-18 4:
cbff0b494f 2023-08-18 5: # Create service targets
cbff0b494f 2023-08-18 6: .for service in ${SCRIPTS}
cbff0b494f 2023-08-18 7: . include "${service}.service.mk"
cbff0b494f 2023-08-18 8:
cbff0b494f 2023-08-18 9: # Set DAEMON defaults
cbff0b494f 2023-08-18 10: DAEMON_${service}_CWD?= /
cbff0b494f 2023-08-18 11: DAEMON_${service}_ENABLE?= no
cbff0b494f 2023-08-18 12: DAEMON_${service}_USER?= root
cbff0b494f 2023-08-18 13: DAEMON_${service}_GROUP?= wheel
cbff0b494f 2023-08-18 14:
cbff0b494f 2023-08-18 15: . if !defined(DAEMON_${service}_COMMAND)
cbff0b494f 2023-08-18 16: . warning MRC> Service [${service}] defunct: no COMMAND specified
cbff0b494f 2023-08-18 17: . else
cbff0b494f 2023-08-18 18:
cbff0b494f 2023-08-18 19: # Service creation targets
cbff0b494f 2023-08-18 20: . if !target(${service})
1f0bd9b2f0 2025-02-22 21: ${service}: ${service}_exit ${_SERVICE} ${service}_after
cbff0b494f 2023-08-18 22: . endif
1f0bd9b2f0 2025-02-22 23: #
1f0bd9b2f0 2025-02-22 24: # Service part that runs after daemonization, we are just turning them
1f0bd9b2f0 2025-02-22 25: # to macros and making sure they exist
1f0bd9b2f0 2025-02-22 26: ${service}_after: .USE
cbff0b494f 2023-08-18 27:
cbff0b494f 2023-08-18 28: # Service status targets
cbff0b494f 2023-08-18 29: . if !target(${service}_status)
cbff0b494f 2023-08-18 30: ${service}_status: ${_SERVICE_STATUS}
cbff0b494f 2023-08-18 31: . endif
cbff0b494f 2023-08-18 32:
cbff0b494f 2023-08-18 33: # Service exit targets
cbff0b494f 2023-08-18 34: . if !target(${service}_exit)
cbff0b494f 2023-08-18 35: ${service}_exit: ${_SERVICE_EXIT} ${DAEMON_${service}_DEPS:S/$/_exit/}
cbff0b494f 2023-08-18 36: . endif
cbff0b494f 2023-08-18 37:
cbff0b494f 2023-08-18 38: DAEMON_EXIT: ${service}_exit
cbff0b494f 2023-08-18 39: . endif
cbff0b494f 2023-08-18 40: .endfor
cbff0b494f 2023-08-18 41:
cbff0b494f 2023-08-18 42: .MAIN: ${SCRIPTS} ${TARGETS}
cbff0b494f 2023-08-18 43:
cbff0b494f 2023-08-18 44: .PHONY: ${SCRIPTS} ${OTHER_TARGETS} ${TARGETS}
cbff0b494f 2023-08-18 45:
cbff0b494f 2023-08-18 46: .undef SCRIPTS