summaryrefslogtreecommitdiff
path: root/maint.mk
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2011-03-07 06:27:42 -0500
committerMark H Weaver <mhw@netris.org>2011-03-09 17:06:05 -0500
commitdd36ce77cd899c7b179026603e751e3bb47b2943 (patch)
treed2f26243f1b6bbb025dea3919ce47f7bc29993cc /maint.mk
parentdf1297956211b7353155c9b54d7e9c22d05ce493 (diff)
downloadguile-dd36ce77cd899c7b179026603e751e3bb47b2943.tar.gz
Update Gnulib; add new modules; remove `round' module.
This updates Gnulib to v0.0-4951-g6ff7b70. * m4/gnulib-cache.m4: Add floor, ceil, frexp, and ldexp. Add wchar as an explicit dependency; it had been present as an indirect dependency before, but no longer. Remove round, which I had requested earlier, but turned out to be unnecessary.
Diffstat (limited to 'maint.mk')
-rw-r--r--maint.mk26
1 files changed, 19 insertions, 7 deletions
diff --git a/maint.mk b/maint.mk
index 606d42ed1..90c22cfed 100644
--- a/maint.mk
+++ b/maint.mk
@@ -126,8 +126,13 @@ syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
$(srcdir)/$(ME) $(_cfg_mk)))
.PHONY: $(syntax-check-rules)
-local-checks-available = \
- $(syntax-check-rules)
+ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0)
+local-checks-available += $(syntax-check-rules)
+else
+local-checks-available += no-vc-detected
+no-vc-detected:
+ @echo "No version control files detected; skipping syntax check"
+endif
.PHONY: $(local-checks-available)
# Arrange to print the name of each syntax-checking rule just before running it.
@@ -773,17 +778,22 @@ sc_prohibit_cvs_keyword:
# perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ...
# but that would be far less efficient, reading the entire contents
# of each file, rather than just the last two bytes of each.
+# In addition, while the code below detects both blank lines and a missing
+# newline at EOF, the above detects only the former.
#
# This is a perl script that is expected to be the single-quoted argument
# to a command-line "-le". The remaining arguments are file names.
-# Print the name of each file that ends in two or more newline bytes.
+# Print the name of each file that ends in exactly one newline byte.
+# I.e., warn if there are blank lines (2 or more newlines), or if the
+# last byte is not a newline. However, currently we don't complain
+# about any file that contains exactly one byte.
# Exit nonzero if at least one such file is found, otherwise, exit 0.
# Warn about, but otherwise ignore open failure. Ignore seek/read failure.
#
# Use this if you want to remove trailing empty lines from selected files:
# perl -pi -0777 -e 's/\n\n+$/\n/' files...
#
-detect_empty_lines_at_EOF_ = \
+require_exactly_one_NL_at_EOF_ = \
foreach my $$f (@ARGV) \
{ \
open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \
@@ -793,12 +803,14 @@ detect_empty_lines_at_EOF_ = \
defined $$p and $$p = sysread F, $$last_two_bytes, 2; \
close F; \
$$c = "ignore read failure"; \
- $$p && $$last_two_bytes eq "\n\n" and (print $$f), $$fail=1; \
+ $$p && ($$last_two_bytes eq "\n\n" \
+ || substr ($$last_two_bytes,1) ne "\n") \
+ and (print $$f), $$fail=1; \
} \
END { exit defined $$fail }
sc_prohibit_empty_lines_at_EOF:
- @perl -le '$(detect_empty_lines_at_EOF_)' $$($(VC_LIST_EXCEPT)) \
- || { echo '$(ME): the above files end with empty line(s)' \
+ @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \
+ || { echo '$(ME): empty line(s) or no newline at EOF' \
1>&2; exit 1; } || :; \
# Make sure we don't use st_blocks. Use ST_NBLOCKS instead.