install nodemanager with systemd unit files instead of initscripts
[nodemanager.git] / Makefile
index c84241d..694ae92 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,22 @@
 # autoconf compatible variables
 datadir := /usr/share
 bindir := /usr/bin
+initdir=/etc/init.d
+systemddir := /usr/lib/systemd/system
 
+####################
+# call with either WITH_SYSTEMD=true or WITH_INIT=true
+ifneq "$(WITH_SYSTEMD)" ""
+use_sytemd=true
+else
+ifneq "$(WITH_INIT)" ""
+use_systemd=""
+else # if not set then try to guess
+use_systemd=$(bash -c 'type -p systemctl')
+endif
+endif
+
+####################
 lib: forward_api_calls
        python setup-lib.py build
 
@@ -23,12 +38,37 @@ forward_api_calls: forward_api_calls.c
        $(CC) -Wall -Os -o $@ $?
        strip $@
 
-install-lib:
+#################### install
+install-lib: install-miscell install-startup
        python setup-lib.py install \
                --install-purelib=$(DESTDIR)/$(datadir)/NodeManager \
                --install-platlib=$(DESTDIR)/$(datadir)/NodeManager \
                --install-scripts=$(DESTDIR)/$(bindir)
+
+# might be better in setup.py ?
+install-miscell:
        install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
+       install -d -m 755 $(DESTDIR)/var/lib/nodemanager
+       install -D -m 644 logrotate/nodemanager $(DESTDIR)/etc/logrotate.d/nodemanager
+       install -D -m 755 sshsh $(DESTDIR)/bin/sshsh
+       mkdir -p $(DESTDIR)/$(datadir)/NodeManager/sliver-initscripts
+       rsync -av sliver-initscripts/ $(DESTDIR)/$(datadir)/sliver-initscripts/
+       chmod 755 $(DESTDIR)/$(datadir)/sliver-initscripts/
+
+ifneq "$use_systemd" ""
+install-startup: install-systemd
+else
+install-startup: install-init
+endif
+
+install-init:
+       mkdir -p $(DESTDIR)$(initdir)
+       chmod 755 initscripts/*
+       rsync -av initscripts/ $(DESTDIR)$(initdir)/
+
+install-systemd:
+       mkdir -p $(DESTDIR)/$(systemddir)
+       rsync -av systemd/ $(DESTDIR)/$(systemddir)
 
 install-vs:
        python setup-vs.py install \
@@ -44,21 +84,7 @@ install-lxc:
                --install-scripts=$(DESTDIR)/$(bindir)
        install -m 444 README $(DESTDIR)/$(datadir)/NodeManager
 
-install-scripts: 
-       mkdir -p $(DESTDIR)/$(datadir)/NodeManager/sliver-initscripts
-       rsync -av sliver-initscripts/ $(DESTDIR)/$(datadir)/sliver-initscripts/
-       chmod 755 $(DESTDIR)/$(datadir)/sliver-initscripts/
-
-       mkdir -p $(DESTDIR)/etc/init.d
-       chmod 755 initscripts/*
-       rsync -av initscripts/ $(DESTDIR)/etc/init.d/
-
-       install -d -m 755 $(DESTDIR)/var/lib/nodemanager
-
-       install -D -m 644 logrotate/nodemanager $(DESTDIR)/etc/logrotate.d/nodemanager
-       install -D -m 755 sshsh $(DESTDIR)/bin/sshsh
-
-
+#################### clean
 clean:
        python setup-lib.py clean
        python setup-vs.py clean
@@ -113,7 +139,7 @@ else
        @echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        +$(RSYNC) --exclude sshsh $(LXC_EXCLUDES) --delete-excluded ./ $(NODEURL)/usr/share/NodeManager/
        +$(RSYNC) ./sshsh $(NODEURL)/bin/
-#      +$(RSYNC) ./initscripts/nm $(NODEURL)/etc/init.d/nm
+#      +$(RSYNC) ./initscripts/ $(NODEURL)/etc/init.d/
        +$(RSYNC) ./systemd/ $(NODEURL)/usr/lib/systemd/system/
 #      ssh -i $(NODE).key.rsa root@$(NODE) service nm restart
 endif