END
cat > Makefile.am <<'END'
-bin_PROGRAMS = foo
-foo_VALAFLAGS = --profile=posix
+bin_PROGRAMS = foo bar
+AM_VALAFLAGS = --profile=posix
foo_SOURCES = hello.vala
+bar_VALAFLAGS = $(AM_VALAFLAGS) -H zardoz.h
+bar_SOURCES = $(foo_SOURCES)
END
cat > hello.vala <<'END'
../configure || Exit 77
$MAKE
test -f ../foo_vala.stamp
+test -f ../bar_vala.stamp
grep foofoofoo ../hello.c
+test -f ../zardoz.h
$MAKE distcheck
# Rebuild rules work also in VPATH builds.
+
cat > ../hello.vala <<'END'
int main ()
{
$MAKE
test -f ../foo_vala.stamp
+test -f ../bar_vala.stamp
grep barbarbar ../hello.c
# Rebuild rules are not uselessly triggered.
$MAKE -q
$MAKE -n | grep '\.stamp' && Exit 1
+# Cleanup rules work also in VPATH builds.
+$MAKE clean
+test -f ../foo_vala.stamp
+test -f ../bar_vala.stamp
+grep barbarbar ../hello.c
+$MAKE maintainer-clean
+# FIXME: Generated C files and stamp files doesn't get correctly
+# FIXME: cleaned in a VPATH build.
+#test ! -f ../hello.c
+#test ! -f ../foo_vala.stamp
+#test ! -f ../bar_vala.stamp
+
:
$MAKE
# Test rebuild rules.
+
rm -f src/zardoz.h
$MAKE -C src zardoz.h
+test -f src/zardoz.h
+rm -f src/zardoz.c
+$MAKE -C src
+test -f src/zardoz.c
+
+echo am--error > src/zardoz.h
+echo am--error > src/zardoz.c
+$sleep
+touch src/zardoz.vala
+$MAKE
+grep 'am--error' src/zardoz.[ch] && Exit 1
+
+# Check the distribution.
$MAKE distcheck
$MAKE distclean
+
+# Tru a VPATH setup.
+
mkdir build
cd build
../configure
$MAKE distcheck
# Test rebuild rules from builddir.
+
+rm -f ../src/zardoz.h
+$MAKE -C src ../../src/zardoz.h
+test -f ../src/zardoz.h
+
rm -f ../src/zardoz.c
$MAKE
grep 'Zardoz!' ../src/zardoz.c
-sed 's/Zardoz!/FooBar!/' ../src/zardoz.c > t
-mv -f t ../src/zardoz.c
+
+$sleep
+sed 's/Zardoz!/FooBar!/' ../src/zardoz.vala > t
+mv -f t ../src/zardoz.vala
$MAKE
grep 'FooBar!' ../src/zardoz.c
grep 'Zardoz!' ../src/zardoz.c && Exit 1