1#!/bin/sh
2# SPDX-License-Identifier: GPL-2.0
3
4function test_ex {
5	make -C ex V=1 clean > ex.out 2>&1
6	make -C ex V=1 >> ex.out 2>&1
7
8	if [ ! -x ./ex/ex ]; then
9	  echo FAILED
10	  exit -1
11	fi
12
13	make -C ex V=1 clean > /dev/null 2>&1
14	rm -f ex.out
15}
16
17function test_ex_suffix {
18	make -C ex V=1 clean > ex.out 2>&1
19
20	# use -rR to disable make's builtin rules
21	make -rR -C ex V=1 ex.o >> ex.out 2>&1
22	make -rR -C ex V=1 ex.i >> ex.out 2>&1
23	make -rR -C ex V=1 ex.s >> ex.out 2>&1
24
25	if [ -x ./ex/ex ]; then
26	  echo FAILED
27	  exit -1
28	fi
29
30	if [ ! -f ./ex/ex.o -o ! -f ./ex/ex.i -o ! -f ./ex/ex.s ]; then
31	  echo FAILED
32	  exit -1
33	fi
34
35	make -C ex V=1 clean > /dev/null 2>&1
36	rm -f ex.out
37}
38
39function test_ex_include {
40	make -C ex V=1 clean > ex.out 2>&1
41
42	# build with krava.h include
43	touch ex/krava.h
44	make -C ex V=1 CFLAGS=-DINCLUDE >> ex.out 2>&1
45
46	if [ ! -x ./ex/ex ]; then
47	  echo FAILED
48	  exit -1
49	fi
50
51	# build without the include
52	rm -f ex/krava.h ex/ex
53	make -C ex V=1 >> ex.out 2>&1
54
55	if [ ! -x ./ex/ex ]; then
56	  echo FAILED
57	  exit -1
58	fi
59
60	make -C ex V=1 clean > /dev/null 2>&1
61	rm -f ex.out
62}
63
64echo -n Testing..
65
66test_ex
67test_ex_suffix
68test_ex_include
69
70echo OK
71