From a5edf3d61c28f0c9702dd012bf8d0623310e19c5 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini Date: Fri, 6 Jul 2012 22:17:59 +0200 Subject: [PATCH] test runner: work correctly in VPATH setups Due to a "feature" of AC_CONFIG_FILES, because 't/ax/test-runner.in' is in a subdirectory, the '@srcdir@' value that is AC_SUBST'd in it gets tweaked to contain as much '..' components as are the directory components of 't/ax/test-runner'. Because our build system operates in a non-recursive setup, this substitution is wrong; for example, the final 't/ax/test-runner' build in a VPATH builds where the source directory is ".." contains the line: : ${srcdir='../../../t/ax'} instead of the expected (and correct): : ${srcdir='../t/ax'} We solve the issue by building 't/ax/test-runner' with a Makefile recipe instead of config.status substitutions; this is already done for other testsuite-related files, like 'defs-static'. * configure.ac (AC_CONFIG_FILES): Don't build 't/ax/test-runner' anymore. * Makefile.am (t/ax/test-runner): New rule. (EXTRA_DIST): Add 't/ax/test-runner.in'. (CLEANFILES, noinst_SCRIPTS): Add 't/ax/test-runner'. Signed-off-by: Stefano Lattarini --- Makefile.am | 11 +++++++++++ configure.ac | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am index f55f6fb..7169eee 100644 --- a/Makefile.am +++ b/Makefile.am @@ -400,6 +400,17 @@ defs-static: defs-static.in Makefile EXTRA_DIST += defs-static.in CLEANFILES += defs-static +t/ax/test-runner: t/ax/test-runner.in Makefile + $(AM_V_at)rm -f $@ $@-t + $(AM_V_GEN)in=t/ax/test-runner.in \ + && $(MKDIR_P) t/ax \ + && $(do_subst) <$(srcdir)/t/ax/test-runner.in >$@-t \ + && chmod a+x $@-t + $(generated_file_finalize) +EXTRA_DIST += t/ax/test-runner.in +CLEANFILES += t/ax/test-runner +noinst_SCRIPTS = t/ax/test-runner + # If two test scripts have the same basename, they will end up sharing # the same log file, leading to all sort of undefined and undesired # behaviours. diff --git a/configure.ac b/configure.ac index 10fa93d..7d30762 100644 --- a/configure.ac +++ b/configure.ac @@ -559,7 +559,6 @@ AC_SUBST([EXEEXT]) ## ---------------------- ## AC_CONFIG_FILES([Makefile]) -AC_CONFIG_FILES([t/ax/test-runner], [chmod +x t/ax/test-runner]) AC_CONFIG_LINKS([GNUmakefile:GNUmakefile]) AC_CONFIG_LINKS([defs:defs]) -- 2.7.4