190075Sobrien## See sim/Makefile.am. 290075Sobrien## 390075Sobrien## Copyright (C) 1997-2024 Free Software Foundation, Inc. 490075Sobrien## 590075Sobrien## This program is free software; you can redistribute it and/or modify 690075Sobrien## it under the terms of the GNU General Public License as published by 790075Sobrien## the Free Software Foundation; either version 3 of the License, or 890075Sobrien## (at your option) any later version. 990075Sobrien## 1090075Sobrien## This program is distributed in the hope that it will be useful, 1190075Sobrien## but WITHOUT ANY WARRANTY; without even the implied warranty of 1290075Sobrien## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1390075Sobrien## GNU General Public License for more details. 1490075Sobrien## 1590075Sobrien## You should have received a copy of the GNU General Public License 1690075Sobrien## along with this program. If not, see <http://www.gnu.org/licenses/>. 1790075Sobrien 1890075Sobrien## Tweak the site.exp so it works with plain `runtest` from user. 1990075SobrienEXTRA_DEJAGNU_SITE_CONFIG = site-sim-config.exp 2090075Sobrien 2190075Sobrien# Custom verbose test variables that automake doesn't provide (yet?). 2290075SobrienAM_V_RUNTEST = $(AM_V_RUNTEST_@AM_V@) 2390075SobrienAM_V_RUNTEST_ = $(AM_V_RUNTEST_@AM_DEFAULT_V@) 2490075SobrienAM_V_RUNTEST_0 = @echo " RUNTEST $(RUNTESTFLAGS) $*"; 2590075SobrienAM_V_RUNTEST_1 = 2690075Sobrien 2790075Sobriensite-sim-config.exp: Makefile 2890075Sobrien $(AM_V_GEN)( \ 2990075Sobrien echo "set SIM_PRIMARY_TARGET \"$(SIM_PRIMARY_TARGET)\""; \ 3090075Sobrien echo "set builddir \"$(builddir)\""; \ 3190075Sobrien echo "set srcdir \"$(srcdir)/testsuite\""; \ 3290075Sobrien $(foreach V,$(SIM_TOOLCHAIN_VARS),echo "set $(V) \"$($(V))\"";) \ 3390075Sobrien ) > $@ 3490075Sobrien 3590075SobrienDO_RUNTEST = \ 3690075Sobrien LC_ALL=C; export LC_ALL; \ 3790075Sobrien EXPECT=${EXPECT} ; export EXPECT ; \ 3890075Sobrien runtest=$(RUNTEST); \ 3990075Sobrien $$runtest $(RUNTESTFLAGS) 4090075Sobrien 4190075Sobrien# Ignore dirs that only contain configuration settings. 4290075Sobriencheck/./config/%.exp: ; @true 4390075Sobriencheck/config/%.exp: ; @true 4490075Sobriencheck/./lib/%.exp: ; @true 4590075Sobriencheck/lib/%.exp: ; @true 4690075Sobrien 4790075Sobriencheck/%.exp: 4890075Sobrien $(AM_V_at)mkdir -p testsuite/$* 4990075Sobrien $(AM_V_RUNTEST)$(DO_RUNTEST) --objdir testsuite/$* --outdir testsuite/$* $*.exp 5090075Sobrien 5190075Sobriencheck-DEJAGNU-parallel: 5290075Sobrien $(AM_V_at)( \ 5390075Sobrien set -- `cd $(srcdir)/testsuite && find . -name '*.exp' -printf '%P\n' | sed 's:[.]exp$$::'`; \ 5490075Sobrien $(MAKE) -k `printf 'check/%s.exp ' $$@`; \ 5590075Sobrien ret=$$?; \ 5690075Sobrien set -- `printf 'testsuite/%s/ ' $$@`; \ 5790075Sobrien $(SHELL) $(srcroot)/contrib/dg-extract-results.sh \ 5890075Sobrien `find $$@ -maxdepth 1 -name testrun.sum 2>/dev/null | sort` > testrun.sum; \ 5990075Sobrien $(SHELL) $(srcroot)/contrib/dg-extract-results.sh -L \ 6090075Sobrien `find $$@ -maxdepth 1 -name testrun.log 2>/dev/null | sort` > testrun.log; \ 6190075Sobrien echo; \ 6290075Sobrien $(SED) -n '/^.*===.*Summary.*===/,$$p' testrun.sum; \ 6390075Sobrien exit $$ret) 6490075Sobrien 6590075Sobriencheck-DEJAGNU-single: 6690075Sobrien $(AM_V_RUNTEST)$(DO_RUNTEST) 6790075Sobrien 6890075Sobrien# If running a single job, invoking runtest once is faster & has nicer output. 6990075Sobriencheck-DEJAGNU: site.exp 7090075Sobrien $(AM_V_at)(set -e; \ 7190075Sobrien EXPECT=${EXPECT} ; export EXPECT ; \ 7290075Sobrien runtest=$(RUNTEST); \ 7390075Sobrien if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ 7490075Sobrien case "$(MAKEFLAGS)" in \ 7590075Sobrien *-j*) $(MAKE) check-DEJAGNU-parallel;; \ 7690075Sobrien *) $(MAKE) check-DEJAGNU-single;; \ 7790075Sobrien esac; \ 7890075Sobrien else \ 7990075Sobrien echo "WARNING: could not find \`runtest'" 1>&2; :;\ 8090075Sobrien fi) 8190075Sobrien 8290075SobrienMOSTLYCLEANFILES += \ 8390075Sobrien site-sim-config.exp testrun.log testrun.sum 8490075Sobrien 8590075Sobrieninclude %D%/common/local.mk 8690075Sobrien