Add proper permissions for executable files
[time-slider.git] / Makefile
index d9fddb2..c8270e3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,19 +1,27 @@
-include VERSION
+ifeq ($(wildcard .git),)
+       include VERSION
+else
+       VERSION=$(shell git describe)
+endif
+MAINVER=$(shell echo $(VERSION) | cut -f1 -d'-')
+RELEASE=$(shell echo $(VERSION) | cut -f2- -d'-' | sed -e 's/-/./g')
 
 mkinstalldirs = /usr/bin/mkdir -p
-INSTALL = /usr/sbin/install
-INSTALL_DATA = ${INSTALL} -u root -g bin -m 644 -f
-INSTALL_PROGRAM = ${INSTALL} -u root -g bin -f
-INSTALL_SCRIPT = ${INSTALL} -f
+INSTALL = /usr/bin/install
+INSTALL_DATA = ${INSTALL} -m 644 -t
+INSTALL_PROGRAM = ${INSTALL} -m 755 -t
+INSTALL_SCRIPT = ${INSTALL} -t
 RM = /usr/bin/rm -f
 RMRF = /usr/bin/rm -Rf
 RMDIR = /usr/bin/rmdir
+RPM = /usr/bin/rpm
+RPMBUILD = /usr/bin/rpmbuild
 # Use python 2.6 if PYTHON environent is not set
 ifeq ($(strip $(PYTHON)),)
 PYTHON = /usr/bin/python2
 endif
 
-SUBDIRS = po data
+SUBDIRS = po data rpm
 
 DISTFILES = Authors \
                        VERSION \
@@ -31,6 +39,7 @@ clean:
        $(RM) usr/share/time-slider/lib/plugin/*.pyc
        $(RM) usr/share/time-slider/lib/plugin/rsync/*.pyc
        $(RM) usr/share/time-slider/lib/plugin/zfssend/*.pyc
+       $(RM) rpm/time-slider.spec
 
 all:
        for subdir in $(SUBDIRS); do \
@@ -55,6 +64,8 @@ install:
        $(INSTALL_DATA) $(DESTDIR)/etc/dbus-1/system.d etc/dbus-1/system.d/time-slider.conf
        $(mkinstalldirs) $(DESTDIR)/etc/xdg/autostart
        $(INSTALL_DATA) $(DESTDIR)/etc/xdg/autostart etc/xdg/autostart/*.desktop
+       $(mkinstalldirs) $(DESTDIR)/usr/lib/systemd/system
+       $(INSTALL_DATA) $(DESTDIR)/usr/lib/systemd/system etc/systemd/system/*.service
        $(mkinstalldirs) $(DESTDIR)/lib/svc/method
        $(INSTALL_SCRIPT) $(DESTDIR)/lib/svc/method lib/svc/method/time-slider
        $(INSTALL_SCRIPT) $(DESTDIR)/lib/svc/method lib/svc/method/time-slider-plugin
@@ -98,6 +109,12 @@ install:
                  $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/time_slider $$file; \
                fi; \
        done
+       $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/time_slider/linux
+       for file in usr/share/time-slider/lib/time_slider/linux/*.py; do \
+               if test -f $$file ; then \
+                 $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/time_slider/linux $$file; \
+               fi; \
+       done
        $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/plugin
        for file in usr/share/time-slider/lib/plugin/*.py; do \
                if test -f $$file ; then \
@@ -131,6 +148,7 @@ uninstall:
        done
        $(RM) $(DESTDIR)/etc/dbus-1/system.d/time-slider.conf
        $(RM) $(DESTDIR)/etc/xdg/autostart/time-slider-notify.desktop
+       $(RM) $(DESTDIR)/usr/lib/systemd/system/time-sliderd.service
        $(RM) $(DESTDIR)/lib/svc/method/time-slider
        $(RM) $(DESTDIR)/lib/svc/method/time-slider-plugin
        $(RM) $(DESTDIR)/lib/svc/method/time-slider-rsync
@@ -150,3 +168,53 @@ uninstall:
        $(RM) $(DESTDIR)/var/svc/manifest/application/time-slider.xml
        $(RM) $(DESTDIR)/var/svc/manifest/application/time-slider-plugin.xml
        $(RM) $(DESTDIR)/var/svc/manifest/system/filesystem/auto-snapshot.xml
+
+
+rpm-local:
+       @(if test ! -x "${RPMBUILD}"; then \
+               echo -e "\n" \
+       "*** Required util ${RPMBUILD} missing.  Please install the\n" \
+       "*** package for your distribution which provides ${RPMBUILD},\n" \
+       "*** re-run configure, and try again.\n"; \
+               exit 1; \
+       fi; \
+       mkdir -p $(rpmbuild)/TMP && \
+       mkdir -p $(rpmbuild)/BUILD && \
+       mkdir -p $(rpmbuild)/RPMS && \
+       mkdir -p $(rpmbuild)/SRPMS && \
+       mkdir -p $(rpmbuild)/SPECS && \
+       cp rpm/$(rpmspec) $(rpmbuild)/SPECS && \
+       mkdir -p $(rpmbuild)/SOURCES && \
+       cp time-slider-$(VERSION).tar.bz2 $(rpmbuild)/SOURCES)
+
+srpm: dist
+       @(dist=`$(RPM) --eval %{?dist}`; \
+       rpmpkg=time-slider-$(MAINVER)-0.$(RELEASE)$$dist*src.rpm; \
+       rpmspec=time-slider.spec; \
+       rpmbuild=`mktemp -t -d time-slider-build-$$USER-XXXXXXXX`; \
+       $(MAKE) \
+               rpmbuild="$$rpmbuild" \
+               rpmspec="$$rpmspec" \
+               rpm-local || exit 1; \
+       $(RPMBUILD) \
+               --define "_tmppath $$rpmbuild/TMP" \
+               --define "_topdir $$rpmbuild" \
+               $(def) -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \
+       cp $$rpmbuild/SRPMS/$$rpmpkg . || exit 1; \
+       rm -R $$rpmbuild)
+
+rpm: srpm
+       @(dist=`$(RPM) --eval %{?dist}`; \
+       rpmpkg=time-slider-$(MAINVER)-0.$(RELEASE)$$dist*src.rpm; \
+       rpmspec=time-slider.spec; \
+       rpmbuild=`mktemp -t -d time-slider-build-$$USER-XXXXXXXX`; \
+       $(MAKE) \
+               rpmbuild="$$rpmbuild" \
+               rpmspec="$$rpmspec" \
+               rpm-local || exit 1; \
+       ${RPMBUILD} \
+               --define "_tmppath $$rpmbuild/TMP" \
+               --define "_topdir $$rpmbuild" \
+               $(def) --rebuild $$rpmpkg || exit 1; \
+       cp $$rpmbuild/RPMS/*/* . || exit 1; \
+       rm -R $$rpmbuild)