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