1#! /bin/sh 2# dryrun.test - check whether the --dry-run mode works properly 3 4# Test script header. 5need_prefix=yes 6if test -z "$srcdir"; then 7 srcdir=`echo "$0" | sed 's%/[^/]*$%%'` 8 test "$srcdir" = "$0" && srcdir=. 9 test "${VERBOSE+set}" != "set" && VERBOSE=yes 10fi 11. $srcdir/defs || exit 1 12 13if test -f ../mdemo/Makefile; then : 14else 15 echo "You must run mdemo-conf.test before running $0" 1>&2 16 exit 77 17fi 18 19# Change to our build directory. 20cd ../mdemo || exit 1 21 22echo "= Running $make clean in ../mdemo" 23$make clean || exit 1 24 25eval `$libtool --config | grep "^objdir="` 26 27# create `before' and `after' in a directory deep within objdir, 28# so that their creation and removal does not modify even a timestamp 29# in the output of `ls -l . $objdir' 30for d in $objdir $objdir/temp $objdir/temp/temp; do 31 test -d $d || mkdir $d 32done 33before=$d/before 34after=$d/after 35 36# Create a new libtool script that will enter dry run if the environment 37# variable force_dry_run is set 38rm -f $objdir/libtool.new 39sed 's/^run=$/run=${force_dry_run+:}/' < libtool > $objdir/libtool.new 40chmod +x $objdir/libtool.new 41mv libtool $objdir/libtool 42mv $objdir/libtool.new libtool 43 44# main.o is not compiled with libtool, but it depends on it, so make 45# sure it is up-to-date. libfoo2.la is linked with libsub.la, so make 46# sure it exists, otherwise libtool will complain. 47$make main.$OBJEXT || exit 1 48 49echo "= Making object files in ../mdemo (dry run)" 50ls -l . $objdir | grep -v total > $before 51force_dry_run=yes $make foo1.lo foo2.lo sub.lo || exit $? 52ls -l . $objdir | grep -v total > $after 53cmp $before $after > /dev/null || exit 1 54# Now really make them 55echo "= Making object files in ../mdemo" 56$make foo1.lo foo2.lo libsub.la || exit 1 57 58echo "= Making libraries in ../mdemo (dry run)" 59ls -l . $objdir | grep -v total > $before 60force_dry_run=yes $make foo1.la libfoo2.la || exit $? 61ls -l . $objdir | grep -v total > $after 62cmp $before $after > /dev/null || exit 1 63# Now really make them 64echo "= Making libraries in ../mdemo" 65$make foo1.la libfoo2.la || exit 1 66 67echo "= Making programs in ../mdemo (dry run)" 68ls -l . $objdir | grep -v total > $before 69force_dry_run=yes $make mdemo$EXEEXT mdemo_static$EXEEXT 1>&2 || exit $? 70ls -l . $objdir | grep -v total > $after 71cmp $before $after > /dev/null || exit 1 72# Now really make them 73echo "= Making programs in ../mdemo" 74$make mdemo$EXEEXT mdemo_static$EXEEXT || exit 1 75 76echo "= Running $make install in ../mdemo (dry run)" 77# Libtool does not create these directories 78mkdir $prefix/bin 79mkdir $prefix/lib 80ls -l . $objdir | grep -v total > $before 81ls -lR $prefix | grep -v total >> $before 82force_dry_run=yes $make install 1>&2 || exit 1 83ls -l . $objdir | grep -v total > $after 84ls -lR $prefix | grep -v total >> $after 85cmp $before $after > /dev/null || exit 1 86# Now really run it 87echo "= Running $make install in ../mdemo" 88$make install || exit 1 89 90echo "= Running $make uninstall in ../mdemo (dry run)" 91# Libtool does not uninstall the programs, remove them first 92rm -f $prefix/bin/mdemo$EXEEXT $prefix/bin/mdemo_static$EXEEXT 93ls -l . $objdir | grep -v total > $before 94ls -lR $prefix | grep -v total >> $before 95force_dry_run=yes $make uninstall 1>&2 || exit $? 96ls -l . $objdir | grep -v total > $after 97ls -lR $prefix | grep -v total >> $after 98cmp $before $after > /dev/null || exit 1 99# Now really run it 100echo "= Running $make uninstall in ../mdemo" 101$make uninstall || exit 1 102 103rm -f $before $after libtool 104mv $objdir/libtool libtool 105 106exit 0 107