build: Fix Makefile
authorAmitay Isaacs <amitay@ozlabs.org>
Thu, 2 Jul 2020 07:40:44 +0000 (17:40 +1000)
committerMartin Schwenke <martin@meltin.net>
Thu, 13 Aug 2020 00:49:05 +0000 (10:49 +1000)
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
Makefile

index 24c0fc38471d15c07aa34f6ea7515759f6ead976..8b520d11c62045206bec670a5dd0e00351ea5ce3 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,57 +1,50 @@
-version        = $(shell git describe | sed -e 's|autocluster-||' -e 's|-|_|g')
-rpm_top_dir = $(shell rpmbuild --showrc | \
-               sed -n -e 's|^.*: _topdir[[:space:]]*||p')
-rpm_dir = $(rpm_top_dir)/RPMS/noarch
-tarball        = autocluster-$(version).tar.gz
-rpm    = autocluster-$(version)-1.noarch.rpm
-
+version    := $(shell git describe 2>/dev/null | sed -e 's|autocluster-||' -e 's|-|_|g')
+rpm_top_dir = $(shell rpmbuild -E '%_topdir')
+rpm_dir     = $(rpm_top_dir)/RPMS/noarch
+tarball     = autocluster-$(version).tar.gz
+rpm         = autocluster-$(version)-1.noarch.rpm
 
 prefix = /usr/local
 datadir        = ${prefix}/share/autocluster
 bindir = ${prefix}/bin
-DESTDIR        =
 
 datas  = COPYING defaults.yml ansible vagrant
 hacks  = autocluster.hack
-genpkg = debian/changelog autocluster.spec ChangeLog
+genpkg  = debian/changelog autocluster.spec ChangeLog
 
-all:   $(hacks)
+all: $(hacks)
 
-autocluster.hack:      autocluster.py Makefile
+autocluster.hack: autocluster.py
        sed -e "s|^INSTALL_DIR = .*|INSTALL_DIR = '$(datadir)'|" $< > $@
 
-install:       all
+install: all
        mkdir -p $(DESTDIR)$(datadir)
        cp -a $(datas) $(DESTDIR)$(datadir)/
        mkdir -p $(DESTDIR)$(bindir)
        install -m 755 autocluster.hack $(DESTDIR)$(bindir)/autocluster
 
-.autocluster.version:
-       echo $(version) >$@.new
-       if cmp -s $@ $@.new ; then rm -f $@.new ; else mv -f $@.new $@ ; fi
-
-debian/changelog:      debian/changelog.in .autocluster.version Makefile
-       sed -e "s/@@DATE@@/$$(date '+%a, %e %b %Y %T %z')/" -e "s/@@VERSION@@/$(version)/" $< > $@ || rm -f $@
+debian/changelog: debian/changelog.in always
+       sed -e "s/@@DATE@@/$$(date '+%a, %e %b %Y %T %z')/" -e "s/@@VERSION@@/$(version)/" $< > $@
 
-autocluster.spec:      autocluster.spec.in Makefile .autocluster.version
-       sed -e "s/@@VERSION@@/$(version)/" $< > $@ || rm -f $@
+autocluster.spec: autocluster.spec.in always
+       sed -e "s/@@VERSION@@/$(version)/" $< > $@
 
-ChangeLog:     .autocluster.version
-               git log > $@ || rm -f $@
+ChangeLog: always
+       git log > ChangeLog
 
-dist:  $(tarball)
+dist: tarball
 
-$(tarball):    .autocluster.version $(genpkg)
+tarball: $(genpkg)
        t=autocluster-$(version) && \
        git archive --prefix=$${t}/ HEAD > $${t}.tar && \
        tar r --transform s@^@$${t}/@ -f $${t}.tar $(genpkg) && \
        gzip -f $${t}.tar
 
-rpm:   $(rpm)
-
-$(rpm):        $(tarball)
+rpm: tarball
        rpmbuild -tb $(tarball)
        mv $(rpm_dir)/$(rpm) $(rpm)
 
 clean:
        rm -f $(hacks) $(genpkg)
+
+.PHONY: all install dist tarball rpm clean always