Add proper permissions for executable files
[time-slider.git] / Makefile
1 ifeq ($(wildcard .git),)
2         include VERSION
3 else
4         VERSION=$(shell git describe)
5 endif
6 MAINVER=$(shell echo $(VERSION) | cut -f1 -d'-')
7 RELEASE=$(shell echo $(VERSION) | cut -f2- -d'-' | sed -e 's/-/./g')
8
9 mkinstalldirs = /usr/bin/mkdir -p
10 INSTALL = /usr/bin/install
11 INSTALL_DATA = ${INSTALL} -m 644 -t
12 INSTALL_PROGRAM = ${INSTALL} -m 755 -t
13 INSTALL_SCRIPT = ${INSTALL} -t
14 RM = /usr/bin/rm -f
15 RMRF = /usr/bin/rm -Rf
16 RMDIR = /usr/bin/rmdir
17 RPM = /usr/bin/rpm
18 RPMBUILD = /usr/bin/rpmbuild
19 # Use python 2.6 if PYTHON environent is not set
20 ifeq ($(strip $(PYTHON)),)
21 PYTHON = /usr/bin/python2
22 endif
23
24 SUBDIRS = po data rpm
25
26 DISTFILES = Authors \
27                         VERSION \
28                         ChangeLog \
29                         Makefile \
30                         py-compile.py \
31                         $(SUBDIRS) \
32                         lib \
33                         usr \
34                         var \
35                         etc
36
37 clean:
38         $(RM) usr/share/time-slider/lib/time_slider/*.pyc
39         $(RM) usr/share/time-slider/lib/plugin/*.pyc
40         $(RM) usr/share/time-slider/lib/plugin/rsync/*.pyc
41         $(RM) usr/share/time-slider/lib/plugin/zfssend/*.pyc
42         $(RM) rpm/time-slider.spec
43
44 all:
45         for subdir in $(SUBDIRS); do \
46           cd $$subdir; make; cd ..;\
47         done
48         echo $(VERSION)
49
50 dist: clean all
51         $(RMRF) time-slider-$(VERSION)
52         mkdir time-slider-$(VERSION)
53         cp -pR $(DISTFILES) time-slider-$(VERSION)
54         /usr/bin/tar cf - time-slider-$(VERSION) | bzip2 > time-slider-$(VERSION).tar.bz2
55         $(RMRF) time-slider-$(VERSION)
56
57 install:
58         for subdir in $(SUBDIRS); do \
59           cd $$subdir; \
60           make DESTDIR=$(DESTDIR) GETTEXT_PACKAGE=time-slider install; \
61           cd ..;\
62         done
63         $(mkinstalldirs) $(DESTDIR)/etc/dbus-1/system.d
64         $(INSTALL_DATA) $(DESTDIR)/etc/dbus-1/system.d etc/dbus-1/system.d/time-slider.conf
65         $(mkinstalldirs) $(DESTDIR)/etc/xdg/autostart
66         $(INSTALL_DATA) $(DESTDIR)/etc/xdg/autostart etc/xdg/autostart/*.desktop
67         $(mkinstalldirs) $(DESTDIR)/usr/lib/systemd/system
68         $(INSTALL_DATA) $(DESTDIR)/usr/lib/systemd/system etc/systemd/system/*.service
69         $(mkinstalldirs) $(DESTDIR)/lib/svc/method
70         $(INSTALL_SCRIPT) $(DESTDIR)/lib/svc/method lib/svc/method/time-slider
71         $(INSTALL_SCRIPT) $(DESTDIR)/lib/svc/method lib/svc/method/time-slider-plugin
72         $(INSTALL_SCRIPT) $(DESTDIR)/lib/svc/method lib/svc/method/time-slider-rsync
73         $(mkinstalldirs) $(DESTDIR)/usr/bin
74         $(INSTALL_PROGRAM) $(DESTDIR)/usr/bin usr/bin/time-slider-setup
75         $(mkinstalldirs) $(DESTDIR)/usr/lib/time-slider/plugins/rsync
76         $(mkinstalldirs) $(DESTDIR)/usr/lib/time-slider/plugins/zfssend
77         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib usr/lib/time-sliderd
78         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib usr/lib/time-slider-delete
79         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib usr/lib/time-slider-notify
80         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib usr/lib/time-slider-snapshot
81         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib usr/lib/time-slider-version
82         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib/time-slider/plugins/zfssend usr/lib/time-slider/plugins/zfssend/zfssend
83         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib/time-slider/plugins/rsync usr/lib/time-slider/plugins/rsync/rsync-trigger
84         $(INSTALL_PROGRAM) $(DESTDIR)/usr/lib/time-slider/plugins/rsync usr/lib/time-slider/plugins/rsync/rsync-backup
85         $(mkinstalldirs) $(DESTDIR)/usr/share/applications
86         $(INSTALL_DATA) $(DESTDIR)/usr/share/applications usr/share/applications/time-slider.desktop
87         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/16x16/apps
88         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/16x16/apps usr/share/icons/hicolor/16x16/apps/time-slider-setup.png
89         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/24x24/apps
90         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/24x24/apps usr/share/icons/hicolor/24x24/apps/time-slider-setup.png
91         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps
92         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/32x32/apps usr/share/icons/hicolor/32x32/apps/time-slider-setup.png
93         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/36x36/apps
94         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/36x36/apps usr/share/icons/hicolor/36x36/apps/time-slider-setup.png
95         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/48x48/apps
96         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/48x48/apps usr/share/icons/hicolor/48x48/apps/time-slider-setup.png
97         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/72x72/apps
98         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/72x72/apps usr/share/icons/hicolor/72x72/apps/time-slider-setup.png
99         $(mkinstalldirs) $(DESTDIR)/usr/share/icons/hicolor/96x96/apps
100         $(INSTALL_DATA) $(DESTDIR)/usr/share/icons/hicolor/96x96/apps usr/share/icons/hicolor/96x96/apps/time-slider-setup.png
101         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/glade
102         $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/glade usr/share/time-slider/glade/time-slider-delete.glade
103         $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/glade usr/share/time-slider/glade/time-slider-setup.glade
104         $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/glade usr/share/time-slider/glade/time-slider-snapshot.glade
105         $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/glade usr/share/time-slider/glade/time-slider-version.glade
106         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/time_slider
107         for file in usr/share/time-slider/lib/time_slider/*.py; do \
108                 if test -f $$file ; then \
109                   $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/time_slider $$file; \
110                 fi; \
111         done
112         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/time_slider/linux
113         for file in usr/share/time-slider/lib/time_slider/linux/*.py; do \
114                 if test -f $$file ; then \
115                   $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/time_slider/linux $$file; \
116                 fi; \
117         done
118         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/plugin
119         for file in usr/share/time-slider/lib/plugin/*.py; do \
120                 if test -f $$file ; then \
121                   $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/plugin $$file; \
122                 fi; \
123         done
124         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/plugin/rsync
125         for file in usr/share/time-slider/lib/plugin/rsync/*.py; do \
126                 if test -f $$file ; then \
127                   $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/plugin/rsync $$file; \
128                 fi; \
129         done
130         $(mkinstalldirs) $(DESTDIR)/usr/share/time-slider/lib/plugin/zfssend
131         for file in usr/share/time-slider/lib/plugin/zfssend/*.py; do \
132                 if test -f $$file ; then \
133                   $(INSTALL_DATA) $(DESTDIR)/usr/share/time-slider/lib/plugin/zfssend $$file; \
134                 fi; \
135         done
136         $(mkinstalldirs) $(DESTDIR)/var/svc/manifest/application
137         $(INSTALL_DATA) $(DESTDIR)/var/svc/manifest/application var/svc/manifest/application/time-slider.xml
138         $(INSTALL_DATA) $(DESTDIR)/var/svc/manifest/application var/svc/manifest/application/time-slider-plugin.xml
139         $(mkinstalldirs) $(DESTDIR)/var/svc/manifest/system/filesystem
140         $(INSTALL_DATA) $(DESTDIR)/var/svc/manifest/system/filesystem var/svc/manifest/system/filesystem/auto-snapshot.xml
141         $(PYTHON) py-compile.py
142         
143 uninstall:
144         for subdir in $(SUBDIRS); do \
145           cd $$subdir; \
146           make DESTDIR=$(DESTDIR) GETTEXT_PACKAGE=time-slider uninstall; \
147           cd ..;\
148         done
149         $(RM) $(DESTDIR)/etc/dbus-1/system.d/time-slider.conf
150         $(RM) $(DESTDIR)/etc/xdg/autostart/time-slider-notify.desktop
151         $(RM) $(DESTDIR)/usr/lib/systemd/system/time-sliderd.service
152         $(RM) $(DESTDIR)/lib/svc/method/time-slider
153         $(RM) $(DESTDIR)/lib/svc/method/time-slider-plugin
154         $(RM) $(DESTDIR)/lib/svc/method/time-slider-rsync
155         $(RM) $(DESTDIR)/usr/bin/time-slider-setup
156         $(RM) $(DESTDIR)/usr/lib/time-sliderd
157         $(RM) $(DESTDIR)/usr/lib/time-slider-delete
158         $(RM) $(DESTDIR)/usr/lib/time-slider-notify
159         $(RM) $(DESTDIR)/usr/lib/time-slider-snapshot
160         $(RM) $(DESTDIR)/usr/lib/time-slider-version
161         $(RM) $(DESTDIR)/usr/lib/time-slider-zfssend
162         $(RM) $(DESTDIR)/usr/lib/time-slider-rsync
163         $(RMRF) $(DESTDIR)/usr/lib/time-slider/plugins/rsync
164         $(RMRF) $(DESTDIR)/usr/lib/time-slider/plugins/zfssend
165         $(RM) $(DESTDIR)/usr/share/applications/time-slider.desktop
166         $(RM) $(DESTDIR)/usr/share/icons/hicolor/*/apps/time-slider-setup.png
167         $(RMRF) $(DESTDIR)/usr/share/time-slider
168         $(RM) $(DESTDIR)/var/svc/manifest/application/time-slider.xml
169         $(RM) $(DESTDIR)/var/svc/manifest/application/time-slider-plugin.xml
170         $(RM) $(DESTDIR)/var/svc/manifest/system/filesystem/auto-snapshot.xml
171
172
173 rpm-local:
174         @(if test ! -x "${RPMBUILD}"; then \
175                 echo -e "\n" \
176         "*** Required util ${RPMBUILD} missing.  Please install the\n" \
177         "*** package for your distribution which provides ${RPMBUILD},\n" \
178         "*** re-run configure, and try again.\n"; \
179                 exit 1; \
180         fi; \
181         mkdir -p $(rpmbuild)/TMP && \
182         mkdir -p $(rpmbuild)/BUILD && \
183         mkdir -p $(rpmbuild)/RPMS && \
184         mkdir -p $(rpmbuild)/SRPMS && \
185         mkdir -p $(rpmbuild)/SPECS && \
186         cp rpm/$(rpmspec) $(rpmbuild)/SPECS && \
187         mkdir -p $(rpmbuild)/SOURCES && \
188         cp time-slider-$(VERSION).tar.bz2 $(rpmbuild)/SOURCES)
189
190 srpm: dist
191         @(dist=`$(RPM) --eval %{?dist}`; \
192         rpmpkg=time-slider-$(MAINVER)-0.$(RELEASE)$$dist*src.rpm; \
193         rpmspec=time-slider.spec; \
194         rpmbuild=`mktemp -t -d time-slider-build-$$USER-XXXXXXXX`; \
195         $(MAKE) \
196                 rpmbuild="$$rpmbuild" \
197                 rpmspec="$$rpmspec" \
198                 rpm-local || exit 1; \
199         $(RPMBUILD) \
200                 --define "_tmppath $$rpmbuild/TMP" \
201                 --define "_topdir $$rpmbuild" \
202                 $(def) -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \
203         cp $$rpmbuild/SRPMS/$$rpmpkg . || exit 1; \
204         rm -R $$rpmbuild)
205
206 rpm: srpm
207         @(dist=`$(RPM) --eval %{?dist}`; \
208         rpmpkg=time-slider-$(MAINVER)-0.$(RELEASE)$$dist*src.rpm; \
209         rpmspec=time-slider.spec; \
210         rpmbuild=`mktemp -t -d time-slider-build-$$USER-XXXXXXXX`; \
211         $(MAKE) \
212                 rpmbuild="$$rpmbuild" \
213                 rpmspec="$$rpmspec" \
214                 rpm-local || exit 1; \
215         ${RPMBUILD} \
216                 --define "_tmppath $$rpmbuild/TMP" \
217                 --define "_topdir $$rpmbuild" \
218                 $(def) --rebuild $$rpmpkg || exit 1; \
219         cp $$rpmbuild/RPMS/*/* . || exit 1; \
220         rm -R $$rpmbuild)