mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-06 07:49:02 +00:00
125 lines
2.5 KiB
Makefile
125 lines
2.5 KiB
Makefile
#-----------------------------------------------------------------------------#
|
|
# vim: ts=8 sw=8 noexpandtab ft=make
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
THIS_DIR=tests
|
|
PROGS=
|
|
TESTS=
|
|
|
|
# If you modify this, modify all_test_dirs in tools/bootcheck as well.
|
|
SUBDIRS = \
|
|
accumulator \
|
|
analysis \
|
|
analysis_ctgc \
|
|
analysis_excp \
|
|
analysis_external \
|
|
analysis_sharing \
|
|
analysis_table \
|
|
analysis_trail \
|
|
analysis_unused_args \
|
|
benchmarks \
|
|
debugger \
|
|
declarative_debugger \
|
|
dppd \
|
|
exceptions \
|
|
feedback \
|
|
general \
|
|
grade_subdirs \
|
|
hard_coded \
|
|
invalid \
|
|
invalid_make_int \
|
|
invalid_nodepend \
|
|
invalid_onlydepend \
|
|
invalid_options_file \
|
|
invalid_purity \
|
|
invalid_submodules \
|
|
misc_tests \
|
|
mmc_make \
|
|
options_file \
|
|
par_conj \
|
|
purity \
|
|
recompilation \
|
|
string_format \
|
|
structure_reuse \
|
|
submodules \
|
|
tabling \
|
|
term \
|
|
trailing \
|
|
typeclasses \
|
|
valid \
|
|
valid_make_int \
|
|
valid_seq \
|
|
warnings
|
|
|
|
NOT_YET_READY_SUBDIRS = \
|
|
stm
|
|
|
|
TESTS_DIR = .
|
|
include Mmake.common
|
|
|
|
.PHONY: check
|
|
check: runtests
|
|
|
|
.PHONY: runtests
|
|
runtests:
|
|
+@if mmake -k runtests_subdirs; then \
|
|
rm -f $(ERROR_OUTPUT_FILE); \
|
|
else \
|
|
for subdir in $(SUBDIRS); do \
|
|
if test -f $$subdir/$(ERROR_OUTPUT_FILE); then \
|
|
cat $$subdir/$(ERROR_OUTPUT_FILE) \
|
|
>> $(ERROR_OUTPUT_FILE); \
|
|
fi; \
|
|
if test -f $$subdir/FAILED_TESTS; then \
|
|
sed "s@^@$$subdir/@" $$subdir/FAILED_TESTS \
|
|
>> FAILED_TESTS; \
|
|
fi; \
|
|
done; \
|
|
echo SOME TESTS FAILED: see FAILED_TESTS and $(ERROR_OUTPUT_FILE); \
|
|
exit 1; \
|
|
fi
|
|
|
|
RUNTESTS_IN_SUBDIRS=$(SUBDIRS:%=runtests_in_%)
|
|
|
|
.PHONY: runtests_subdirs
|
|
runtests_subdirs: $(RUNTESTS_IN_SUBDIRS)
|
|
|
|
.PHONY: runtests_in_subdirs
|
|
$(RUNTESTS_IN_SUBDIRS): runtests_in_%:
|
|
+if test -d $* ; then \
|
|
cd $* && mmake runtests_dir ; \
|
|
else \
|
|
echo Could not run tests in directory $* ; \
|
|
echo Could not run tests in directory $* >> NOMAKE_DIRS ; \
|
|
fi
|
|
|
|
#-----------------------------------------------------------------------------#
|
|
|
|
realclean: realclean_subdirs
|
|
|
|
realclean_subdirs:
|
|
+succeeded=true; \
|
|
for dir in $(SUBDIRS); do \
|
|
(cd $$dir && mmake realclean) || succeeded=false; \
|
|
done
|
|
case $$succeeded in \
|
|
false) \
|
|
exit 1 \
|
|
;; \
|
|
esac
|
|
|
|
clean: clean_subdirs
|
|
|
|
clean_subdirs:
|
|
+succeeded=true; \
|
|
for dir in $(SUBDIRS); do \
|
|
(cd $$dir && mmake clean) || succeeded=false; \
|
|
done; \
|
|
case $$succeeded in \
|
|
false) \
|
|
exit 1 \
|
|
;; \
|
|
esac
|
|
|
|
#-----------------------------------------------------------------------------#
|