splitfx: support tshift directive
[dtas.git] / GNUmakefile
blob9019b314dd5a4dbcbff9648c114c5c2c599f7785
1 # Copyright (C) 2013-2021 all contributors <dtas-all@nongnu.org>
2 # License: GPL-3.0+ <https://www.gnu.org/licenses/gpl-3.0.txt>
3 all::
4 pkg = dtas
5 RUBY = ruby
6 GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
7 @./GIT-VERSION-GEN
8 -include GIT-VERSION-FILE
9 lib := lib
11 all:: test
12 test_units := $(wildcard test/test_*.rb)
13 test: $(test_units)
14 $(test_units):
15 $(RUBY) -w -I $(lib) $@ -v
17 check-warnings:
18 @(for i in $$(git ls-files '*.rb'| grep -v '^setup\.rb$$'); \
19 do $(RUBY) -d -W2 -c $$i; done) | grep -v '^Syntax OK$$' || :
21 check: test
22 coverage: export COVERAGE=1
23 coverage:
24 > coverage.dump
25 $(MAKE) check
26 $(RUBY) ./test/covshow.rb
28 pkggem := pkg/$(pkg)-$(VERSION).gem
29 pkgtgz := pkg/$(pkg)-$(VERSION).tar.gz
31 fix-perms:
32 git ls-tree -r HEAD | awk '/^100644 / {print $$NF}' | xargs chmod 644
33 git ls-tree -r HEAD | awk '/^100755 / {print $$NF}' | xargs chmod 755
35 gem: $(pkggem)
37 install-gem: $(pkggem)
38 gem install --local $(CURDIR)/$<
40 $(pkggem): .gem-manifest
41 VERSION=$(VERSION) gem build $(pkg).gemspec
42 mkdir -p pkg
43 mv $(@F) $@
45 pkg_extra := GIT-VERSION-FILE lib/dtas/version.rb NEWS
46 NEWS:
47 rake -s $@
48 gem-man:
49 -$(MAKE) -C Documentation/ gem-man
50 tgz-man:
51 -$(MAKE) -C Documentation/ install-man mandir=$(CURDIR)/man
52 .PHONY: tgz-man gem-man
54 .gem-manifest: .manifest gem-man
55 (ls man/*.?; cat .manifest) | LC_ALL=C sort > $@+
56 cmp $@+ $@ || mv $@+ $@; rm -f $@+
57 .tgz-manifest: .manifest tgz-man
58 (ls man/*/*; cat .manifest) | LC_ALL=C sort > $@+
59 cmp $@+ $@ || mv $@+ $@; rm -f $@+
60 .manifest: NEWS fix-perms
61 rm -rf man
62 (git ls-files; \
63 for i in $(pkg_extra); do echo $$i; done) | \
64 LC_ALL=C sort > $@+
65 cmp $@+ $@ || mv $@+ $@; rm -f $@+
66 $(pkgtgz): distdir = pkg/$(pkg)-$(VERSION)
67 $(pkgtgz): .tgz-manifest
68 @test -n "$(distdir)"
69 $(RM) -r $(distdir)
70 mkdir -p $(distdir)
71 tar cf - $$(cat .tgz-manifest) | (cd $(distdir) && tar xf -)
72 cd pkg && tar cf - $(pkg)-$(VERSION) | gzip -9 > $(@F)+
73 mv $@+ $@
75 package: $(pkgtgz) $(pkggem)
77 # Install symlinks to ~/bin (which is hopefuly in PATH) which point to
78 # this source tree.
79 # prefix + bindir matches git.git Makefile:
80 prefix = $(HOME)
81 bindir = $(prefix)/bin
82 symlink-install :
83 mkdir -p $(bindir)
84 dtas=$(CURDIR)/dtas.sh && cd $(bindir) && \
85 for x in $(CURDIR)/bin/* $(CURDIR)/script/*; do \
86 ln -sf "$$dtas" $$(basename "$$x"); \
87 done
89 .PHONY: all .FORCE-GIT-VERSION-FILE test $(test_units) NEWS
90 .PHONY: check-warnings fix-perms