build, doc: Add COPYING, clarify license
[autocluster.git] / Makefile
1 version = $(shell git describe | sed -e 's|autocluster-||' -e 's|-|_|g')
2 rpm_top_dir = $(shell rpmbuild --showrc | \
3                 sed -n -e 's|^.*: _topdir[[:space:]]*||p')
4 rpm_dir = $(rpm_top_dir)/RPMS/noarch
5 tarball = autocluster-$(version).tar.gz
6 rpm     = autocluster-$(version)-1.noarch.rpm
7
8
9 prefix  = /usr/local
10 datadir = ${prefix}/share/autocluster
11 bindir  = ${prefix}/bin
12 DESTDIR =
13
14 datas   = COPYING defaults.yml ansible vagrant
15 hacks   = autocluster.hack
16 genpkg  = debian/changelog autocluster.spec ChangeLog
17
18 all:    $(hacks)
19
20 autocluster.hack:       autocluster.py Makefile
21         sed -e "s|^INSTALL_DIR = .*|INSTALL_DIR = '$(datadir)'|" $< > $@
22
23 install:        all
24         mkdir -p $(DESTDIR)$(datadir)
25         cp -a $(datas) $(DESTDIR)$(datadir)/
26         mkdir -p $(DESTDIR)$(bindir)
27         install -m 755 autocluster.hack $(DESTDIR)$(bindir)/autocluster
28
29 .autocluster.version:
30         echo $(version) >$@.new
31         if cmp -s $@ $@.new ; then rm -f $@.new ; else mv -f $@.new $@ ; fi
32
33 debian/changelog:       debian/changelog.in .autocluster.version Makefile
34         sed -e "s/@@DATE@@/$$(date '+%a, %e %b %Y %T %z')/" -e "s/@@VERSION@@/$(version)/" $< > $@ || rm -f $@
35
36 autocluster.spec:       autocluster.spec.in Makefile .autocluster.version
37         sed -e "s/@@VERSION@@/$(version)/" $< > $@ || rm -f $@
38
39 ChangeLog:      .autocluster.version
40                 git log > $@ || rm -f $@
41
42 dist:   $(tarball)
43
44 $(tarball):     .autocluster.version $(genpkg)
45         t=autocluster-$(version) && \
46         git archive --prefix=$${t}/ HEAD > $${t}.tar && \
47         tar r --transform s@^@$${t}/@ -f $${t}.tar $(genpkg) && \
48         gzip -f $${t}.tar
49
50 rpm:    $(rpm)
51
52 $(rpm): $(tarball)
53         rpmbuild -tb $(tarball)
54         mv $(rpm_dir)/$(rpm) $(rpm)
55
56 clean:
57         rm -f $(hacks) $(genpkg)