forked from Minki/linux
0c00c3fb4e
The current build framework fails to cope with header file removal. The reason is that the removed header file stays in the .cmd file target rule and forces the build to fail. This issue is fixed and explained in the following patches. Adding a new build test that simulates header removal. Signed-off-by: Jiri Olsa <jolsa@kernel.org> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1443004442-32660-3-git-send-email-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
70 lines
1.1 KiB
Bash
Executable File
70 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
function test_ex {
|
|
make -C ex V=1 clean > ex.out 2>&1
|
|
make -C ex V=1 >> ex.out 2>&1
|
|
|
|
if [ ! -x ./ex/ex ]; then
|
|
echo FAILED
|
|
exit -1
|
|
fi
|
|
|
|
make -C ex V=1 clean > /dev/null 2>&1
|
|
rm -f ex.out
|
|
}
|
|
|
|
function test_ex_suffix {
|
|
make -C ex V=1 clean > ex.out 2>&1
|
|
|
|
# use -rR to disable make's builtin rules
|
|
make -rR -C ex V=1 ex.o >> ex.out 2>&1
|
|
make -rR -C ex V=1 ex.i >> ex.out 2>&1
|
|
make -rR -C ex V=1 ex.s >> ex.out 2>&1
|
|
|
|
if [ -x ./ex/ex ]; then
|
|
echo FAILED
|
|
exit -1
|
|
fi
|
|
|
|
if [ ! -f ./ex/ex.o -o ! -f ./ex/ex.i -o ! -f ./ex/ex.s ]; then
|
|
echo FAILED
|
|
exit -1
|
|
fi
|
|
|
|
make -C ex V=1 clean > /dev/null 2>&1
|
|
rm -f ex.out
|
|
}
|
|
|
|
function test_ex_include {
|
|
make -C ex V=1 clean > ex.out 2>&1
|
|
|
|
# build with krava.h include
|
|
touch ex/krava.h
|
|
make -C ex V=1 CFLAGS=-DINCLUDE >> ex.out 2>&1
|
|
|
|
if [ ! -x ./ex/ex ]; then
|
|
echo FAILED
|
|
exit -1
|
|
fi
|
|
|
|
# build without the include
|
|
rm -f ex/krava.h ex/ex
|
|
make -C ex V=1 >> ex.out 2>&1
|
|
|
|
if [ ! -x ./ex/ex ]; then
|
|
echo FAILED
|
|
exit -1
|
|
fi
|
|
|
|
make -C ex V=1 clean > /dev/null 2>&1
|
|
rm -f ex.out
|
|
}
|
|
|
|
echo -n Testing..
|
|
|
|
test_ex
|
|
test_ex_suffix
|
|
test_ex_include
|
|
|
|
echo OK
|