[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: autotest, automake & non-recursive makes
From: |
Paolo Bonzini |
Subject: |
Re: autotest, automake & non-recursive makes |
Date: |
Sun, 27 Oct 2013 08:29:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 26/09/2013 18:16, Diab Jerius ha scritto:
> # The `:;' works around a Bash 3.2 bug when the output is not writable.
> %D%/package.m4: $(top_srcdir)/configure.ac
> :;{ \
> echo '# Signature of the current package.' && \
> echo 'm4_define([AT_PACKAGE_NAME],' && \
> echo ' [$(PACKAGE_NAME)])' && \
> echo 'm4_define([AT_PACKAGE_TARNAME],' && \
> echo ' [$(PACKAGE_TARNAME)])' && \
> echo 'm4_define([AT_PACKAGE_VERSION],' && \
> echo ' [$(PACKAGE_VERSION)])' && \
> echo 'm4_define([AT_PACKAGE_STRING],' && \
> echo ' [$(PACKAGE_STRING)])' && \
> echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \
> echo ' [$(PACKAGE_BUGREPORT)])'; \
> echo 'm4_define([AT_PACKAGE_URL],' && \
> echo ' [$(PACKAGE_URL)])'; \
> } > $@
>
> EXTRA_DIST += %D%/testsuite.at %D%/package.m4 %D%/$(TESTSUITE)
> DISTCLEANFILES += %D%/atconfig %D%/testsuite.log
>
> TESTSUITE = testsuite
>
> check-local: %D%/atconfig %D%/$(TESTSUITE)
> cd %D%; \
> if test -f '$(TESTSUITE)' ; then d=; else d='$(abs_top_srcdir)/%D%/' ; fi
> ;\
> $(SHELL) $$d'$(TESTSUITE)' AUTOTEST_PATH='$(abs_builddir)/%D%'
> $(TESTSUITEFLAGS)
>
> installcheck-local: %D%/atconfig %D%/$(TESTSUITE)
> cd %D%; \
> if test -f '$(TESTSUITE)' ; then d=; else d='$(abs_top_srcdir)/%D%/' ; fi
> ;\
> $(SHELL) $$d'$(TESTSUITE)' AUTOTEST_PATH='$(abs_builddir)/%D%'
> $(TESTSUITEFLAGS)
>
> clean-local:
> test ! -f '%D%/$(TESTSUITE)' || $(SHELL) '%D%/$(TESTSUITE)' --clean
>
> AUTOM4TE = $(SHELL) $(top_srcdir)/build-aux/missing --run autom4te
> AUTOTEST = $(AUTOM4TE) --language=autotest
>
> %D%/$(TESTSUITE): %D%/testsuite.at %D%/package.m4
> $(AUTOTEST) -I '$(srcdir)' -I '%D%' -o address@hidden address@hidden
> mv address@hidden $@
We were doing something similar in msitools (https://wiki.gnome.org/msitools).
The main differences are:
(1) Generating package.m4 from configure, like
AC_CONFIG_FILES([tests/package.m4.tmp:tests/package.m4.in],
[$srcdir/build-aux/move-if-change tests/package.m4.tmp
$srcdir/tests/package.m4
cp $srcdir/tests/package.m4 tests/package.m4.tmp])
$ cat tests/package.m4.in
# Signature of the current package.
m4_define([AT_PACKAGE_NAME], address@hidden@])
m4_define([AT_PACKAGE_TARNAME], address@hidden@])
m4_define([AT_PACKAGE_VERSION], address@hidden@])
m4_define([AT_PACKAGE_STRING], address@hidden@])
m4_define([AT_PACKAGE_BUGREPORT], address@hidden@])
m4_define([AT_PACKAGE_URL], address@hidden@])
(2) check-local and installcheck-local are simpler:
check-local: $(srcdir)/tests/testsuite atconfig atlocal
$(SHELL) $(srcdir)/tests/testsuite AUTOTEST_PATH=. $(TESTSUITEFLAGS)
installcheck-local: $(srcdir)/tests/testsuite atconfig atlocal
$(SHELL) $(srcdir)/tests/testsuite AUTOTEST_PATH=$(bindir)
$(TESTSUITEFLAGS)
(Your check-local seems ok, installcheck-local seems the same as check-local
so it doesn't look right to me).
(3) clean-local is simply using "-":
clean-local:
-$(SHELL) $(srcdir)/tests/testsuite --clean
Paolo
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: autotest, automake & non-recursive makes,
Paolo Bonzini <=