#
# Makefile to run al tests for Vim
#

VimProg ?= ../vim

Scripts = test1.out test2.out test3.out test4.out test5.out test6.out
		test7.out test8.out test9.out test10.out test11.out
		test12.out  test13.out test14.out test15.out test17.out
		test18.out test19.out test20.out test21.out test22.out
		test23.out test24.out test25.out test26.out test27.out
		test28.out test29.out test30.out test31.out test32.out
		test33.out test34.out test35.out test36.out test37.out
		test38.out test39.out test40.out test41.out test42.out
		test43.out test44.out test45.out test46.out test47.out
		test48.out test49.out

ScriptsGUI = test16.out

# Build "nongui" when no target was specified.
nongui:	newlog $Scripts
	:print
	:cat test.log
	:print ALL DONE

# Build "ngui" when specified.
gui:	newlog $Scripts $ScriptsGUI
	:print
	:cat test.log
	:print ALL DONE

$Scripts $ScriptsGUI: $VimProg

clean:
	:del {r}{force} *.out test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X*

# test1 is special, it checks for features
test1.out: test1.in
	:del {force} test1.failed tiny.vim small.vim mbyte.vim mzscheme.vim
	:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in test1.in
	@if os.system("diff test.out test1.ok") != 0:
		:error test1 FAILED - Something basic is wrong
	:move {force} test.out test1.out
	:del {r}{force} X*

:rule %.out : %.in
	:del {force} $(match).failed test.ok
	:copy $(match).ok test.ok
	:sys {i} $VimProg -u unix.vim -U NONE --noplugin -s dotest.in $(match).in
	@if os.system("diff test.out " + match + ".ok") != 0:
		:print $match FAILED >>test.log
		:move {force} test.out $(match).failed
	@else:
		:move {force} test.out $(match).out
	:del {r}{force} X* test.ok

newlog:
	:print Test results: >! test.log
