1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/build/pymake/tests/automatic-variables.mk Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,79 @@ 1.4 +$(shell \ 1.5 +mkdir -p src/subd; \ 1.6 +mkdir subd; \ 1.7 +touch dummy; \ 1.8 +sleep 2; \ 1.9 +touch subd/test.out src/subd/test.in2; \ 1.10 +sleep 2; \ 1.11 +touch subd/test.out2 src/subd/test.in; \ 1.12 +sleep 2; \ 1.13 +touch subd/host_test.out subd/host_test.out2; \ 1.14 +sleep 2; \ 1.15 +touch host_prog; \ 1.16 +) 1.17 + 1.18 +VPATH = src 1.19 + 1.20 +all: prog host_prog prog dir/ 1.21 + test "$@" = "all" 1.22 + test "$<" = "prog" 1.23 + test "$^" = "prog host_prog dir" 1.24 + test "$?" = "prog host_prog dir" 1.25 + test "$+" = "prog host_prog prog dir" 1.26 + test "$(@D)" = "." 1.27 + test "$(@F)" = "all" 1.28 + test "$(<D)" = "." 1.29 + test "$(<F)" = "prog" 1.30 + test "$(^D)" = ". . ." 1.31 + test "$(^F)" = "prog host_prog dir" 1.32 + test "$(?D)" = ". . ." 1.33 + test "$(?F)" = "prog host_prog dir" 1.34 + test "$(+D)" = ". . . ." 1.35 + test "$(+F)" = "prog host_prog prog dir" 1.36 + @echo TEST-PASS 1.37 + 1.38 +dir/: 1.39 + test "$@" = "dir" 1.40 + test "$<" = "" 1.41 + test "$^" = "" 1.42 + test "$(@D)" = "." 1.43 + test "$(@F)" = "dir" 1.44 + mkdir $@ 1.45 + 1.46 +prog: subd/test.out subd/test.out2 1.47 + test "$@" = "prog" 1.48 + test "$<" = "subd/test.out" 1.49 + test "$^" = "subd/test.out subd/test.out2" # ^ 1.50 + test "$?" = "subd/test.out subd/test.out2" # ? 1.51 + cat $< 1.52 + test "$$(cat $<)" = "remade" 1.53 + test "$$(cat $(word 2,$^))" = "" 1.54 + 1.55 +host_prog: subd/host_test.out subd/host_test.out2 1.56 + @echo TEST-FAIL No need to remake 1.57 + 1.58 +%.out: %.in dummy 1.59 + test "$@" = "subd/test.out" 1.60 + test "$*" = "subd/test" # * 1.61 + test "$<" = "src/subd/test.in" # < 1.62 + test "$^" = "src/subd/test.in dummy" # ^ 1.63 + test "$?" = "src/subd/test.in" # ? 1.64 + test "$+" = "src/subd/test.in dummy" # + 1.65 + test "$(@D)" = "subd" 1.66 + test "$(@F)" = "test.out" 1.67 + test "$(*D)" = "subd" 1.68 + test "$(*F)" = "test" 1.69 + test "$(<D)" = "src/subd" 1.70 + test "$(<F)" = "test.in" 1.71 + test "$(^D)" = "src/subd ." # ^D 1.72 + test "$(^F)" = "test.in dummy" 1.73 + test "$(?D)" = "src/subd" 1.74 + test "$(?F)" = "test.in" 1.75 + test "$(+D)" = "src/subd ." # +D 1.76 + test "$(+F)" = "test.in dummy" 1.77 + printf "remade" >$@ 1.78 + 1.79 +%.out2: %.in2 dummy 1.80 + @echo TEST_FAIL No need to remake 1.81 + 1.82 +.PHONY: all