summaryrefslogtreecommitdiff
path: root/t/aclocal-no-force.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-11-18 01:38:09 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-11-19 12:34:55 +0100
commitab49d2bc115ba121b00ac06229d4044a004f67e9 (patch)
treec18633c26f80a1d9555b4c79dd68bbb2605a0baf /t/aclocal-no-force.sh
parent3e6643af3c1d4ae729c59ed6d2b803767a03e3c3 (diff)
downloadautomake-ab49d2bc115ba121b00ac06229d4044a004f67e9.tar.gz
tests: more explicative names for few aclocal tests
* t/aclocal3.sh: Rename ... * t/aclocal-missing-macros.sh: ... like this. * t/aclocal4.sh: Rename ... * t/aclocal-deps.sh: ... like this. * t/aclocal5.sh: Rename ... * t/aclocal-deps-subdir.sh: ... like this. * t/aclocal6.sh: Rename ... * t/aclocal-remake-misc.sh: ... like this. * t/aclocal7.sh: Rename ... * t/aclocal-no-force.sh: ... like this. * t/acloca8.sh: Rename ... * t/aclocal-no-unused-required.sh: ... like this. * t/acloca9.sh: Rename ... * t/aclocal-I-order-1.sh: ... like this. * t/acloca11.sh: Rename ... * t/aclocal-I-order-2.sh: ... like this, and update heading comments. * t/acloca12.sh: Rename ... * t/aclocal-I-order-3.sh: ... like this, and update heading comments. * t/acloca13.sh: Rename ... * t/aclocal-m4-sinclude.sh: ... like this, and update heading comments. * t/acloca14.sh: Rename ... * t/aclocal-m4-include-are-scanned.sh: ... like this. * t/acloca14.sh: Rename ... * t/aclocal-m4-include-are-scanned-aclocal-amflags.sh: ... like this, and update heading comments. * t/acloca15.sh: Rename ... * t/aclocal-scan-configure-ac-pr319.sh: ... like this. * t/acloca16.sh: Rename ... * t/aclocal-no-extra-scan.sh: ... like this, and enhance slightly. * t/acloca18.sh: Rename ... * t/aclocal-serial.sh: ... like this. * t/acloca19.sh: Rename ... * t/aclocal-pr450.sh: ... like this. * t/acloca20.sh: Rename ... * t/aclocal-no-symlinked-overwrite.sh: ... like this. * t/acloca21.sh: Rename ... * t/aclocal-comments-respected.sh: ... like this. * t/acloca22.sh: Rename ... * t/aclocal-deleted-header.sh: ... like this. * t/acloca22b.sh: Rename ... * t/aclocal-deleted-header-aclocal-amflags.sh: ... like this. * t/acloca23.sh: Rename ... * t/aclocal-underquoted-defun.sh: ... like this. * t/list-of-tests.mk: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/aclocal-no-force.sh')
-rwxr-xr-xt/aclocal-no-force.sh117
1 files changed, 117 insertions, 0 deletions
diff --git a/t/aclocal-no-force.sh b/t/aclocal-no-force.sh
new file mode 100755
index 000000000..9f246143e
--- /dev/null
+++ b/t/aclocal-no-force.sh
@@ -0,0 +1,117 @@
+#! /bin/sh
+# Copyright (C) 2003-2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Make sure aclocal does not overwrite aclocal.m4 needlessly.
+# Also make sure automake --no-force does not overwrite Makefile.in needlessly.
+
+. test-init.sh
+
+cat >> configure.ac << 'END'
+SOME_DEFS
+AC_CONFIG_FILES([sub/Makefile])
+END
+
+mkdir sub
+: > sub/Makefile.am
+
+cat >> Makefile.am << 'END'
+SUBDIRS = sub
+include fragment.inc
+END
+
+: > fragment.inc
+
+mkdir m4
+echo 'AC_DEFUN([SOME_DEFS], [])' > m4/somedefs.m4
+
+# Automake will take aclocal.m4 to be newer if it has the same timestamp
+# as Makefile.in. Avoid the confusing by sleeping.
+AUTOMAKE_after_aclocal ()
+{
+ $sleep
+ $AUTOMAKE --no-force
+}
+
+# aclocal will rewrite aclocal.m4 unless the input files are all older than the
+# existing aclocal.m4 -- sleep to ensure somedefs.m4 has an older timestamp
+# than the aclocal.m4 that the next aclocal call will generate.
+$sleep
+
+$ACLOCAL -I m4
+AUTOMAKE_after_aclocal
+
+touch foo
+$sleep
+$ACLOCAL -I m4
+AUTOMAKE_after_aclocal
+# aclocal.m4 and Makefile.in should not have been updated, so 'foo'
+# should be younger
+is_newest foo aclocal.m4 Makefile.in sub/Makefile.in
+
+$sleep
+$ACLOCAL -I m4 --force
+is_newest aclocal.m4 foo
+# We still use --no-force for automake, but since aclocal.m4 has
+# changed all Makefile.ins should be updated.
+AUTOMAKE_after_aclocal
+is_newest Makefile.in aclocal.m4 foo
+is_newest sub/Makefile.in aclocal.m4 foo
+
+$sleep
+touch m4/somedefs.m4
+$sleep
+$ACLOCAL -I m4
+AUTOMAKE_after_aclocal
+# aclocal.m4 should have been updated, although its contents haven't
+# changed.
+is_newest aclocal.m4 m4/somedefs.m4
+is_newest Makefile.in m4/somedefs.m4
+is_newest sub/Makefile.in m4/somedefs.m4
+
+$sleep
+touch fragment.inc
+$sleep
+$ACLOCAL -I m4
+AUTOMAKE_after_aclocal
+# Only ./Makefile.in should change.
+is_newest Makefile.in fragment.inc
+is_newest fragment.inc aclocal.m4
+is_newest fragment.inc sub/Makefile.in
+
+grep README Makefile.in && exit 1
+
+$sleep
+: > README
+$sleep
+$AUTOMAKE --no-force
+# Even if no dependency change, the content changed.
+is_newest Makefile.in README
+is_newest README sub/Makefile.in
+
+grep README Makefile.in
+
+: > sub/Makefile.in
+$sleep
+touch foo
+$sleep
+$ACLOCAL -I m4
+$AUTOMAKE --no-force
+# Only sub/Makefile.in should change.
+is_newest foo aclocal.m4
+is_newest foo Makefile.in
+is_newest sub/Makefile.in foo
+
+: