1999-04-06 Alexandre Oliva <oliva@dcc.unicamp.br>
+ * tests/dryrun.test: We cannot rely on setting LIBTOOL, because
+ automake may use sub-makes, and the setting will not be propagated
+ to them on some makes. Instead, create a dry version of libtool
+ and switch between it and the original one before and after dry
+ runs.
+ * tests/Makefile.am (CLEANFILES): Added libtool-*, created by
+ dryrun.test.
+
* tests/dryrun.test: Use cmp instead of diff.
(before, after): Create them within ../tests.
(libtool): Set to `/bin/sh ./libtool' by default, but use LIBTOOL,
before=../tests/before
after=../tests/after
-libtool=${LIBTOOL-${SHELL-/bin/sh}\ ${top_builddir-.}/libtool}
+normal=../tests/libtool-normal
+dry=../tests/libtool-dry
+stat=
echo "= Running $make clean in ../mdemo"
$make clean || exit 1
$make main.o || exit 1
-mkdir .libs
-rm -f $before $after
+
+eval `$libtool --config | grep "^objdir="`
+
+mkdir $objdir
+rm -f $before $after $normal $dry
+sed 's/run=/run=:/' < libtool > $dry
+chmod +x $dry
echo "= Making object files in ../mdemo"
-ls -l . .libs > $before
-$make LIBTOOL="$libtool -n" foo1.lo foo2.lo || exit 1
-ls -l . .libs > $after
+ls -l . $objdir > $before
+mv libtool $normal && mv $dry libtool
+$make foo1.lo foo2.lo || stat=$?
+mv libtool $dry && mv $normal libtool
+test -n "$stat" && exit $stat
+ls -l . $objdir > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
$make foo1.lo foo2.lo || exit 1
echo "= Making libraries in ../mdemo"
-ls -l . .libs > $before
-$make LIBTOOL="$libtool -n" foo1.la libfoo2.la || exit 1
-ls -l . .libs > $after
+ls -l . $objdir > $before
+mv libtool $normal && mv $dry libtool
+$make foo1.la libfoo2.la || stat=$?
+mv libtool $dry && mv $normal libtool
+test -n "$stat" && exit $stat
+ls -l . $objdir > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
$make foo1.la libfoo2.la || exit 1
echo "= Making programs in ../mdemo"
-ls -l . .libs > $before
-$make LIBTOOL="$libtool -n" mdemo mdemo.static || exit 1
-ls -l . .libs > $after
+ls -l . $objdir > $before
+mv libtool $normal && mv $dry libtool
+$make mdemo mdemo.static || stat=$?
+mv libtool $dry && mv $normal libtool
+test -n "$stat" && exit $stat
+ls -l . $objdir > $after
cmp $before $after > /dev/null || exit 1
# Now really make them
$make mdemo mdemo.static || exit 1
# Libtool does not create these directories
mkdir $prefix/bin
mkdir $prefix/lib
-ls -l . .libs > $before
+ls -l . $objdir > $before
ls -lR $prefix >> $before
-$make LIBTOOL="$libtool -n" install || exit 1
-ls -l . .libs > $after
+mv libtool $normal && mv $dry libtool
+$make install || stat=$?
+mv libtool $dry && mv $normal libtool
+test -n "$stat" && exit $stat
+ls -l . $objdir > $after
ls -lR $prefix >> $after
cmp $before $after > /dev/null || exit 1
# Now really run it
$make install || exit 1
echo "= Running $make uninstall in ../mdemo"
-ls -l . .libs > $before
+ls -l . $objdir > $before
ls -lR $prefix >> $before
# Libtool does not uninstall the programs, save them
cp $prefix/bin/mdemo mdemo.sav
cp $prefix/bin/mdemo.static mdemo.static.sav
-$make LIBTOOL="$libtool -n" uninstall || exit 1
+mv libtool $normal && mv $dry libtool
+$make uninstall || stat=$?
+mv libtool $dry && mv $normal libtool
+test -n "$stat" && exit $stat
# Restore them
mv mdemo.sav $prefix/bin/mdemo
mv mdemo.static.sav $prefix/bin/mdemo.static
-ls -l . .libs > $after
+ls -l . $objdir > $after
ls -lR $prefix >> $after
cmp $before $after > /dev/null || exit 1
# Now really run it
$make uninstall || exit 1
-rm -f $before $after
+rm -f $before $after $dry
exit 0