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>
6 GIT-VERSION-FILE
: .FORCE-GIT-VERSION-FILE
8 -include GIT-VERSION-FILE
12 test_units
:= $(wildcard test/test_
*.rb
)
15 $(RUBY
) -w
-I
$(lib
) $@
-v
18 @
(for i in
$$(git ls-files
'*.rb'| grep
-v
'^setup\.rb$$'); \
19 do
$(RUBY
) -d
-W2
-c
$$i; done
) | grep
-v
'^Syntax OK$$' ||
:
22 coverage
: export COVERAGE
=1
26 $(RUBY
) .
/test/covshow.rb
28 pkggem
:= pkg
/$(pkg
)-$(VERSION
).gem
29 pkgtgz
:= pkg
/$(pkg
)-$(VERSION
).
tar.gz
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
37 install-gem
: $(pkggem
)
38 gem
install --local
$(CURDIR
)/$<
40 $(pkggem
): .gem-manifest
41 VERSION
=$(VERSION
) gem build
$(pkg
).gemspec
45 pkg_extra
:= GIT-VERSION-FILE lib
/dtas
/version.rb NEWS
49 -$(MAKE
) -C Documentation
/ gem-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
63 for i in
$(pkg_extra
); do echo
$$i; done
) | \
65 cmp
$@
+ $@ || mv
$@
+ $@
; rm -f
$@
+
66 $(pkgtgz
): distdir
= pkg
/$(pkg
)-$(VERSION
)
67 $(pkgtgz
): .tgz-manifest
71 tar cf
- $$(cat .tgz-manifest
) |
(cd
$(distdir
) && tar xf
-)
72 cd pkg
&& tar cf
- $(pkg
)-$(VERSION
) | gzip
-9 > $(@F
)+
75 package
: $(pkgtgz
) $(pkggem
)
77 # Install symlinks to ~/bin (which is hopefuly in PATH) which point to
79 # prefix + bindir matches git.git Makefile:
81 bindir = $(prefix)/bin
84 dtas
=$(CURDIR
)/dtas.sh
&& cd
$(bindir) && \
85 for x in
$(CURDIR
)/bin
/* $(CURDIR
)/script
/*; do \
86 ln
-sf
"$$dtas" $$(basename "$$x"); \
89 .PHONY
: all .FORCE-GIT-VERSION-FILE
test $(test_units
) NEWS
90 .PHONY
: check-warnings fix-perms