From c4b2a809aa7289fb4b8927a470245753208f5f8e Mon Sep 17 00:00:00 2001 From: Marcelo Aquino Date: Fri, 12 Aug 2016 12:53:14 -0300 Subject: [PATCH] Move init system detection to configure --- Makefile | 16 ++++++++-------- configure | 22 +++++++++++++++++----- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 825d83d..3f74ade 100644 --- a/Makefile +++ b/Makefile @@ -53,11 +53,11 @@ install-gateway: @install -m 0755 $(GATEWAY) $(GATEWAY_DIR) install-initscripts: - if [[ `systemctl` =~ -\.mount ]]; then \ - install -m0644 initscripts/mysgateway.systemd /etc/systemd/system/mysgateway.service && \ - sed -i -e "s|%gateway_dir%|${GATEWAY_DIR}|g" /etc/systemd/system/mysgateway.service && \ - systemctl daemon-reload; \ - elif [[ -f /etc/init.d/cron && ! -h /etc/init.d/cron ]]; then \ - install -m0755 initscripts/mysgateway.sysvinit /etc/init.d/mysgateway && \ - sed -i -e "s|%gateway_dir%|${GATEWAY_DIR}|g" /etc/init.d/mysgateway; \ - fi +ifeq ($(INIT_SYSTEM), systemd) + install -m0644 initscripts/mysgateway.systemd /etc/systemd/system/mysgateway.service + @sed -i -e "s|%gateway_dir%|${GATEWAY_DIR}|g" /etc/systemd/system/mysgateway.service + systemctl daemon-reload +else ifeq ($(INIT_SYSTEM), sysvinit) + install -m0755 initscripts/mysgateway.sysvinit /etc/init.d/mysgateway + @sed -i -e "s|%gateway_dir%|${GATEWAY_DIR}|g" /etc/init.d/mysgateway +endif diff --git a/configure b/configure index ad46759..d686549 100755 --- a/configure +++ b/configure @@ -45,15 +45,17 @@ MySensors options: --my-controller-ip-address= Controller or MQTT broker ip. Use commas instead of points. Example: 127,0,0,1 - --my-port Controller or MQTT broker port. + --my-port= Controller or MQTT broker port. --my-mqtt-client-id= MQTT client id. --my-mqtt-publish-topic-prefix= MQTT publish topic prefix. --my-mqtt-subscribe-topic-prefix= MQTT subscribe topic prefix. - --my-rf24-irq-pin Pin number connected to nRF24L01 IRQ pin. - --my-rx-message-buffer-size Buffer size for incoming messages when using rf24 interrupts. - Default set to 20. + --my-rf24-irq-pin= Pin number connected to nRF24L01 IRQ pin. + For RaspberryPi use BCM numbering. + --my-rx-message-buffer-size= + Buffer size for incoming messages when using rf24 interrupts. + Default is 20. EOF } @@ -188,7 +190,7 @@ function gcc_cpu_flags { echo ${flags} } -params="OS SOC CPUFLAGS CXXFLAGS LDFLAGS PREFIX CXX RF24H_LIB_DIR GATEWAY_DIR" +params="OS SOC CPUFLAGS CXXFLAGS LDFLAGS PREFIX CXX RF24H_LIB_DIR GATEWAY_DIR INIT_SYSTEM" for opt do if [ "$opt" = "-h" ] || [ "$opt" = "--help" ]; then @@ -305,6 +307,16 @@ fi LDFLAGS="-pthread -lrf24-bcm $LDFLAGS" +if [ -x /usr/bin/systemctl ] || [ -x /bin/systemctl ]; then + INIT_SYSTEM=systemd + echo "[OK] init system detected: systemd" +elif [ -f /etc/init.d/cron ] && [ ! -h /etc/init.d/cron ]; then + INIT_SYSTEM=sysvinit + echo "[OK] init system detected: sysvinit" +else + echo "[FAILED] unknown init system" +fi + echo "[SECTION] Saving configuration." echo -n "" > Makefile.inc for param in ${params}; do